Cuda 在内核中调用cublas

Cuda 在内核中调用cublas,cuda,cublas,Cuda,Cublas,我想并行使用Zgemv __global__ void S_Cphir(cuDoubleComplex *S,cuDoubleComplex *A,cuDoubleComplex *B, int n,int l) { .... cublasZgemv(handle,CUBLAS_OP_N,n,n,&alpha,S+i*n*n,n,A+n*i,1,&beta,B+i*n,1);} void S_Cphir_(cuDoubleComplex *S,cuDoubleCompl

我想并行使用Zgemv

__global__ void S_Cphir(cuDoubleComplex *S,cuDoubleComplex *A,cuDoubleComplex *B, int n,int l)
{
    ....
cublasZgemv(handle,CUBLAS_OP_N,n,n,&alpha,S+i*n*n,n,A+n*i,1,&beta,B+i*n,1);}

void S_Cphir_(cuDoubleComplex *S,cuDoubleComplex *A,cuDoubleComplex *B, int n,int l){
dim3 grid = dim3(1,1,1);
dim3 block = dim3(32,1,1);
S_Cphir<<<grid,block>>>(S,A,B,n,l);}
第一行是工作。但是第二行是错的

In function`__sti____cudaRegisterAll_58_tmpxft_000032b7_00000000_6_time_propagation_cublas_cpp1_ii_0d699356()';tmpxft_000032b7_00000000-3_time_propagation_cublas.cudafe1.cpp:(.text+0x17a4): 
undefined reference to `__cudaRegisterLinkedBinary_58_tmpxft_000032b7_00000000_6_time_propagation_cublas_cpp1_ii_0d699356'
collect2: ld returned 1 exit status
我搜索“cudaRegisterLinkedBinary”,但我什么都没有

我知道nvcc支持在内核中调用cublas。

请使用作为参考。在标准CUDA 5.5安装中,您可以在以下位置找到它:

/usr/local/cuda/samples/7_CUDALibraries/simpleDevLibCUBLAS
参考该目录中的
Makefile
,编译命令应如下所示:

nvcc -arch=sm_35 -rdc=true -o main.v2 time_propagation_cublas.cu -lcublas -lcublas_device -lcudadevrt

谢谢我可以编译。但我仍然无法在内核中并行Zgemv。。。我的意思是我有32个矩阵向量乘法,我想并行进行。我还发现这对示例很有帮助。
nvcc -arch=sm_35 -rdc=true -o main.v2 time_propagation_cublas.cu -lcublas -lcublas_device -lcudadevrt