提问cublas库与kernel函数的问题

  • 3 replies
  • 555 views
提问cublas库与kernel函数的问题
« 于: 六月 29, 2020, 05:36:56 pm »
新人请问各位,能否在kernel函数内调用cublas库函数或者其他库函数呢,我按照查到的资料编写,程序编译通过但是运行时卡死。如果可以请问应该怎样配置和调用。我的环境是win10+vs2013+cuda9.2,谢谢

Re: 提问cublas库与kernel函数的问题
« 回复 #1 于: 六月 30, 2020, 10:34:26 am »
这是cuda sample 里的一段示例代码:
__global__ void invokeDeviceCublasSgemm(cublasStatus_t* returnValue,
    int n,
    const float* d_alpha,
    const float* d_A,
    const 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;
    }

    /* Perform operation using cublas */
    status =
        cublasSgemm(cnpHandle,
            CUBLAS_OP_N, CUBLAS_OP_N,
            n, n, n,
            d_alpha,
            d_A, n,
            d_B, n,
            d_beta,
            d_C, n);

    cublasDestroy(cnpHandle);

    *returnValue = status;
}

但我在编译这段代码时总是出现Undefined reference to 'cublasCreate_v2' in 'x64/Debug/kernels.cu.obj' (target: sm_50)   这个错误,不知道如何解决   

Re: 提问cublas库与kernel函数的问题
« 回复 #2 于: 七月 02, 2020, 11:15:58 am »
cublas库里面的接口都是CPU端的,其内部有invoke kernel的操作。
cublasHandle,cublasStatus,cublasSgemm等都放到cpu端调。

Re: 提问cublas库与kernel函数的问题
« 回复 #3 于: 七月 31, 2020, 03:26:33 pm »
试试包含头文件 cublas_v2.h