鉴于矩阵甲,...,A Ñ和乙,...,B Ñ存储为gpuArray
,我要计算的矩阵Ç我 = A i * B i。如何并行乘以许多gpuArray矩阵?
所有甲我的具有相同的尺寸,并且所有乙我的是相同的(可能不同)的大小。
如何在GPU上快速执行此操作,假设 n非常大,并且矩阵的大小相对较小?是否有可能避免使用CUDA?
鉴于矩阵甲,...,A Ñ和乙,...,B Ñ存储为gpuArray
,我要计算的矩阵Ç我 = A i * B i。如何并行乘以许多gpuArray矩阵?
所有甲我的具有相同的尺寸,并且所有乙我的是相同的(可能不同)的大小。
如何在GPU上快速执行此操作,假设 n非常大,并且矩阵的大小相对较小?是否有可能避免使用CUDA?
如果你有MATLAB R2013b,你可以使用新的gpuArray pagefun
函数。
如果A
和B
是gpuArray
类的,则操作C = A*B
将在GPU上,而不需要你做任何事情都要进行。您不需要编写任何CUDA。结果C
也将是gpuArray
,您可以将其带回本地工作空间中的正常数组D
,其中D = gather(C)
。
谢谢,我为了清晰起见编辑了我的问题 - 我的n很大,每个矩阵的大小都很小。 –
为什么你不能只乘以它们?如果你已经将它们作为gpu数组,那么只需将它们相乘,MATLAB就会处理其他所有事情,除非我不能正确理解你的问题 – MZimmerman6
此外,GPU乘法的需求是什么,MATLAB与常规矩阵的标准乘法相当快速它是 – MZimmerman6
问题是n(矩阵的数量)可能相对较大,并且每个矩阵的维数可能相对较小。所以直接的方法将是连续的n。 –