當我在cuda中計算`A.transpose * A'時會出現一些問題。計算矩陣A.transpose * A在cuda
假設A是M * N矩陣,並存儲在列優先,我嘗試使用此功能cublasSgemm_v2
這是在CUBLAS的矩陣 - 矩陣相乘API
這樣的:
cublasSgemm_v2(handle,CUBLAS_OP_T,CUBLAS_OP_N,N,N,M,&al,A,N,A,M,&beta,A_result,N)
在調用這個函數之前,我測試矩陣A,它看起來不錯,但它顯示參數8是非法的,我不知道爲什麼。
因此,我決定使用另一個API來計算A.tanspose * A cublas<t>syrk()
。返回的結果存儲在矩陣的下部或上部,這意味着矩陣的其餘部分未被引用,以及如何編寫內核以將元素複製到對稱部分?
另一個問題是我的程序有時會崩潰(可能是三分之一的可能性)在像cudaMalloc或cbulascreate或其他地方的代碼的開始,我只是修改代碼中的一些代碼,並且它之前運行很多次,這可能是什麼原因?
謝謝
請提供其他人可以複製,粘貼,編譯和運行以重現問題的最小代碼。 – JackOLantern