在GPU上的一些计算中,我需要缩放矩阵中的行,以便给定行中的所有元素总和为1.
| a1,1 a1,2 ... a1,N | | alpha1*a1,1 alpha1*a1,2 ... alpha1*a1,N | | a2,1 a2,2 ... a2,N | => | alpha2*a2,1 alpha2*a2,2 ... alpha2*a2,N | | . . | | . . | | aN,1 aN,2 ... aN,N | | alphaN*aN,1 alphaN*aN,2 ... alphaN*aN,N |
哪里
alphai = 1.0/(ai,1 + ai,2 + ... + ai,N)
我需要alpha's 的向量,以及缩放的矩阵,我想在尽可能少的blas调用中执行此操作.该代码将在nvidia CUDA硬件上运行.有谁知道有任何聪明的方法来做到这一点?
小智 6
Cublas 5.0引入了类似blas的例程,称为cublas(Type)dgmm,它是矩阵乘以对角矩阵(由向量表示)的乘法.
左侧选项(将缩放行)或右侧选项将缩放列.
有关详细信息,请参阅CUBLAS 5.0文档.
所以在你的问题中,你需要创建一个包含GPU上所有alpha的向量,并使用带左选项的cublasdgmm.
| 归档时间: |
|
| 查看次数: |
2035 次 |
| 最近记录: |