cuda新手求问,用VS编译的一个小问题

DSQ_17 2015-08-27 11:17:47
	cublasHandle_t cnpHandle;
cublasStatus_t status;
float Sigma_W[d*d];

for (int iters = 0; iters <numIter; iters ++)
{
if (iters/50 == 0)
{
cout<< iters <<endl;
}

status = cublasCreate(&cnpHandle);
if (status != CUBLAS_STATUS_SUCCESS)
{
//*returnValue = status;
cout<<"1"<<endl;
return false;
}

memset(Sigma_W,0,d*d*sizeof(float));
int k = 0;
for (int i = 0; i<d; i++)
{
for( int j=0; j<d; j++)
{
if (i==j)
{
Sigma_W[k] = Zd[i];
}
k++;
}
}
float b = 1;
status = cublasSgemm(cnpHandle, CUBLAS_OP_N, CUBLAS_OP_T, d, d, N, &E_v, X,d , X,d,&b,Sigma_W,d);
cublasDestroy(cnpHandle);
cudaThreadSynchronize();

status = cublasCreate(&cnpHandle);
if (status != CUBLAS_STATUS_SUCCESS)
{
cout<<"2"<<endl;
return false;
}
float *Sigma_W_inv = (float*)malloc(d*d);
int info;
const float *Sigma_Ws[] = {Sigma_W};
float *Sigma_W_invs[] = {Sigma_W_inv};
status = cublasSmatinvBatched(cnpHandle,
d,
Sigma_Ws,
d,
Sigma_W_invs,
d,
&info,
1
);
cublasDestroy(cnpHandle);
cudaThreadSynchronize();

status = cublasCreate(&cnpHandle);
if (status != CUBLAS_STATUS_SUCCESS)
{
//*returnValue = status;
cout<<"3"<<endl;
return false;
}
status = cublasScopy(cnpHandle, d*d, Sigma_W_inv,1,Sigma_W,1);
cublasDestroy(cnpHandle);
cudaThreadSynchronize();

float *E_W_before = (float*)malloc(d*sizeof(float));
status = cublasCreate(&cnpHandle);
if (status != CUBLAS_STATUS_SUCCESS)
{
cout<<"4"<<endl;
//*returnValue = status;
return false;
}
status = cublasScopy(cnpHandle, d, W, 1, E_W_before, 1);
if (status != CUBLAS_STATUS_SUCCESS)
{
cout<<"6"<<endl;
//*returnValue = status;
return false;
}
cublasDestroy(cnpHandle);
cudaThreadSynchronize();

status = cublasCreate(&cnpHandle);
if (status != CUBLAS_STATUS_SUCCESS)
{
cout<<"5"<<endl;
//*returnValue = status;
return false;
}
cublasDestroy(cnpHandle);
cudaThreadSynchronize();


麻烦帮忙看一下。。之前没用CudaThreadSynchronize(),结果一会儿出4一会儿出5.什么问题啊,为什么状态是不成功啊。。谢谢!!
...全文
202 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧