我对以下代码有疑问,在执行对 cublasSrotg 的调用时,它会引发异常:“访问冲突写入位置 0x05200600”,这是“dA”指针的地址。运行调试器时,它似乎跳过了对 cudaMalloc 的调用,但我不知道我做错了什么。
cublasHandle_t handle;
cublasCreate(&handle);
float hA[SIZE] = { 1.0f, 2.0f, 3.0f, 4.0f };
int sizef = sizeof(float);
float* dA;
cudaMalloc((void**)&dA, SIZE * sizef);
cublasSetVector(SIZE, sizef, hA, 1, dA, 1);
float s, c;
cublasSrotg(handle, dA, dA + N, &c, &s);
cublasSrot(handle, N, dA, 1, dA + N, 1, &c, &s);
cublasGetVector(SIZE, sizef, dA, 1, hA, 1);
...