假设你有一个大小为1500x500的密集矩阵,你需要将它与一个大小为500x500的块对角矩阵相乘,它由10个尺寸为50x50的子矩阵组成,位于对角线上:
S 0 ... 0 0
0 S 0 0
...
0 0 ... S 0
0 0 ... 0 S <- each S is 50x50
有时候所有S都是平等的,有时它们不是。
我还没有描述过,但我觉得直接的CUBLAS乘法会浪费太多时间用零。有没有有效的方法来实现这样的乘法?
答案 0 :(得分:2)
您可以将This Tutorial与块压缩稀疏行格式一起使用,如cuSparse所述。您的矩阵类型可能会受益于其他优化,但现在可以使用。
或者,您可以使用here按行或列块访问密集矩阵,并将块对角线定义为一组较小的密集矩阵(可能会重复使用相同的数据)。