0
我有一個包裝類CudaMatrix
,實現了幾個cuBLAS操作,允許我調用m1.multiply(m2)
運行內部數據指針sgemm
操作。如何在CUDA中實現一個子矩陣的接口?
我想通過子矩陣操作來擴展類,像
CudaMatrix a(100,100);
CudaMatrix b(100,100);
// fill a and b
int i=5, j=15;
CudaSubMatrix sa(a, i, j, i+10, j+10); // sa := a[5:15, 15:25]
i=50, j=60;
CudaSubMatrix sb(b, i, j, i+10, j+10); // sb := b[50:60, 60:70]
CudaMatrix res;
res.copy(sa);
res.multiply(sb) // res = sa*sb
在最後一排,multiply()
需要在子矩陣sb
操作,這樣行不連續的,我無法像以前那樣調用相同的sgemm
操作。
如何實現避免顯式複製數據的子矩陣的高效接口?有沒有我可以查找的開源實現?
我不明白這個問題。 CUBLAS已經具備了在子矩陣上執行操作而不需要額外接口代碼或包裝的所有要求 – talonmies