我想用culasasSgetrsBatched函數解決CuBLAS的線性方程。 這裏是我的程序:cublasSgetrs內核中的內存錯誤
__global__ void invokeDeviceCublasSgemm(cublasStatus_t *returnValue,
int n,
const float *d_alpha,
float *d_A,
float *d_B,
const float *d_beta,
float *d_C)
{
cublasHandle_t cnpHandle;
cublasStatus_t status = cublasCreate(&cnpHandle);
if (status != CUBLAS_STATUS_SUCCESS)
{
*returnValue = status;
return;
}
int indice = 0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(i==j)
{
d_A[i*5+j] = 1;
}else
{
d_A[i*5+j] = 0;
}
d_A[i*5+j] = indice++ +1;
}
d_B[i] = i*i+2;
}
//A*At
float alpha = 1.0;
float beta = 0;
int devIpiv = 5;
int info;
cublasSgetrsBatched(cnpHandle,
CUBLAS_OP_N,
5,
1,
&d_A,
5*5,
(&devIpiv),
&d_B,
(#VERSION1)5, or (#VERSION2)1,
&info,
1);
printf("info %d ",info);
cublasDestroy(cnpHandle);
*returnValue = status;
}
這個函數生成的第一個版本cublasSgetrsBatched#VERSION1的
info 0 !!!! device to host memory copy error
我不能複製的數據,但沒有信息錯誤。
在版本2#VERSION2:
info -8
我不明白如何使一個簡單的線性方程此功能工作。
有人可以幫助我嗎?
您可以重新格式化您的代碼,以便我們可以閱讀嗎? – kangshiyin