我正在编写一个需要使用CUDA并行计算数百个矩阵乘法的程序。有人能解释一下如何执行此操作吗?
我看到Kepler架构支持动态并行计算。有人使用过这种架构吗?如果使用过,使用的是哪款Nvidia显卡?
我正在编写一个需要使用CUDA并行计算数百个矩阵乘法的程序。有人能解释一下如何执行此操作吗?
我看到Kepler架构支持动态并行计算。有人使用过这种架构吗?如果使用过,使用的是哪款Nvidia显卡?
使用CUDA进行快速矩阵乘法并行计算的最简单方法是通过ArrayFire CUDA库,使用GFOR循环。以下是实现您所需功能的一些代码:
int n = 8, int m = 8; // dimensions
int t = 10; // number of different matricies
array A = randu(m,n,t); // many matricies
array B = randu(m,n); // one matrix
array C = zeros(m,n,t); // destination
// multiply C=A*B for all A, at the same time
gfor (array i, A.dims(2)) {
C(span,span,i) = matmul(A(span,span,i), B);
}
print( A );
print( B );
print( C );
ArrayFire会自动将计算有效地平铺到GPU上执行。所有这些都在幕后为您进行了优化。我发现它比我自己手写更快。