2016-04-27 59 views
1

假設你有大小1500x500的密集矩陣,你需要有一個由大小50×50十子矩陣坐在對角線尺寸500×500的塊對角矩陣相乘:如何在CUDA中實現密集x塊對角矩陣乘法?

S 0 ... 0 0 
0 S  0 0 
... 
0 0 ... S 0 
0 0 ... 0 S <- each S is 50x50 

有時只S是平等的,有時他們不是。

我還沒有簡介,但我覺得像直布里斯班乘法會浪費太多時間與零。有沒有有效的方法來實現這種乘法?

回答

2

here所述,您可以使用塊壓縮稀疏行格式的cuSparse。您的矩陣類型可能受益於其他優化,但現在可以使用此類型。或者,您可以使用cublas<>gemmBatched按行或列的塊訪問密集矩陣,並將塊對角線定義爲一組較小的密集矩陣(可能重複使用相同的數據)。