首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cuda将数百个矩阵相乘

问使用cuda将数百个矩阵相乘
EN

Stack Overflow用户
提问于 2012-10-24 22:29:26
回答 1查看 1K关注 0票数 5

我正在写一个程序,需要使用CUDA并行乘以数百个矩阵。有没有人能解释一下怎么做这个手术。

我已经看到开普勒体系结构能够实现动态并行。有没有人使用过这个架构?如果有,是哪一块Nvidia显卡?

EN

回答 1

Stack Overflow用户

发布于 2012-10-25 00:04:14

使用CUDA获得快速并行执行矩阵乘法的最简单方法是使用GFOR loop通过ArrayFire CUDA库。下面是一些代码,可以实现您想要的功能:

代码语言:javascript
复制
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会自动高效地平铺计算,以便在图形处理器上执行。所有这些都是在幕后为您优化的。我发现它比自己手写要快得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13051326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档