首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于多GPU的并行矩阵乘法

基于多GPU的并行矩阵乘法
EN

Stack Overflow用户
提问于 2016-05-05 04:43:07
回答 1查看 450关注 0票数 0

我已经在我的系统中在不同的pci插槽中安装了两个GPU(2xNvidia Quadro 410)。为了解决这两个GPU上的Martix乘法问题,我如何分割输入矩阵,使每个GPU处理/计算输出矩阵的一部分,然后返回它。就像。对于两个矩阵A,B各为10x10阶,然后计算输出矩阵C= and,这样,在第一GPU和第二GPU计算的另一半(即50到b)中,应计算出100个元素(10×10)中的50个元素。我正在尝试在OpenCL上实现它。但是,任何算法都是受欢迎的,这将帮助我找到解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-05 05:07:33

通常,如果有矩阵X (大小为axb,第一行)和Y(大小为bxc),

代码语言:javascript
复制
X * Y = vcat(X[0:a/2,0:b] * Y, X[a/2:a,0:b] * Y)

在这个伪码中,vcat是垂直级联(将一个矩阵放在另一个矩阵上,例如,4x3矩阵与2x3矩阵连接将产生6x3矩阵),:表示范围,[]表示索引。

vcat的两个参数都可以在不同的GPU上计算,并且可以通过将输出指向输出缓冲区的不同子区域(假设我们有C顺序数组)来实现级联。X的初始分裂也可以通过使用不同的子区域来实现(因为它是沿着一行划分的)。

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

https://stackoverflow.com/questions/37042518

复制
相关文章

相似问题

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