Matrix 如何在CUDA中实现密集x块对角矩阵乘法?

Matrix 如何在CUDA中实现密集x块对角矩阵乘法?,matrix,cuda,diagonal,cublas,Matrix,Cuda,Diagonal,Cublas,假设您有一个1500x500大小的密集矩阵,您需要将其与一个500x500大小的块对角矩阵相乘,该矩阵由位于对角线上的十个50x50大小的子矩阵组成: S 0 ... 0 0 0 S 0 0 ... 0 0 ... S 0 0 0 ... 0 S <- each S is 50x50 s0。。。0 0 0秒0 ... 0 0 ... s0 0 0 ... 0 S您可以使用块压缩稀疏行格式,如下所述。您的矩阵类型可能会从其他优化中受益,但现在可以使用此优化 或者,您可以使用按行或

假设您有一个1500x500大小的密集矩阵,您需要将其与一个500x500大小的块对角矩阵相乘,该矩阵由位于对角线上的十个50x50大小的子矩阵组成:

S 0 ... 0 0
0 S     0 0
...
0 0 ... S 0
0 0 ... 0 S  <- each S is 50x50
s0。。。0 0
0秒0
...
0 0 ... s0
0 0 ... 0 S您可以使用块压缩稀疏行格式,如下所述。您的矩阵类型可能会从其他优化中受益,但现在可以使用此优化

或者,您可以使用按行或列块访问密集矩阵,并将块对角线定义为一组较小的密集矩阵(可能重用相同的数据)