根据CUBLAS参考,asum函数的结果(实际上我只使用cublasSasum_v2)可以在主机上或在设备上,但是当我尝试在设备上计算它时,我遇到了访问冲突。 我在GTX660上使用cuda5.5。
这是我的代码:
int count = 10;
float *da;
float *db;
cudaMalloc((void**)&da, sizeof(float) * count);
cudaMalloc((void**)&db, sizeof(float));
cudaMemset(da, 0, sizeof(float) * count);
cudaDeviceSynchronize();
cublasHandle_t handle;
cublasCreate_v2(&handle);
cublasSasum_v2(handle, count, da, 1, db);
float ans;
cudaMemcpy(&ans, db, sizeof(float), cudaMemcpyDeviceToHost);
cout << ans << endl;
cublasDestroy_v2(handle);
cudaFree(da);
cudaFree(db);
当我调用cublassSasum_v2时,我遇到了访问冲突。它有什么问题?