我正在開發用於CUDA稀疏矩陣計算的MEX文件。我正在使用CUSP庫。我不知道如何將cusp :: csr_matrix返回給Matlab。例如,我有如何將稀疏矩陣從MEX中的CUSP :: csr_matrix返回給Matlab?
cusp::csr_matrix<mwIndex,double,cusp::host_memory> At(m,n,N);
因此,它是在企業社會責任的格式,其中,可以說,我已經計算矩陣。現在,我必須將它返回到Matlab。事情是這樣的:
plhs[0] = At;
但是,當然,這是行不通的那樣,首先是因爲在上GPU。我想我應該使用At.values和索引方法。但是,如何將它們分配給主機數據?
有人可以建議如何做到這一點嗎? :)
謝謝。另外,我發現,在使用CUSP的情況下,可以使用Thrust。例如,設備向量Xg可以像這樣返回到Matlab數組T:mxArray * T = mxCreateDoubleMatrix(n,1,mxREAL); double * x = mxGetPr(T); thrust :: copy(xg.begin(),xg.end(),x); – 2013-04-09 17:39:05