我正在写一个程序,需要使用CUDA并行乘以数百个矩阵。有没有人能解释一下怎么做这个手术。
我已经看到开普勒体系结构能够实现动态并行。有没有人使用过这个架构?如果有,是哪一块Nvidia显卡?
发布于 2012-10-25 00:04:14
使用CUDA获得快速并行执行矩阵乘法的最简单方法是使用GFOR loop通过ArrayFire CUDA库。下面是一些代码,可以实现您想要的功能:
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会自动高效地平铺计算,以便在图形处理器上执行。所有这些都是在幕后为您优化的。我发现它比自己手写要快得多。
https://stackoverflow.com/questions/13051326
复制相似问题