TeslaK80 GPU的动态并行度抛出错误

时间:2019-06-26 07:19:29

标签: cuda gpu gpgpu gpu-programming dynamic-parallelism

我正在使用TeslaK80 GPU。我正在尝试动态并行性。但是当我使用nvcc进行编译时,我遇到了nvlink错误。我尝试在编译时提供标志,我提供的标志是'-rdc = true','-arch sm_37'(因为teslaK80的计算能力是3.7)和'-lcudadevrt '。 我尝试过的代码在下面,而我给出的编译命令也在下面:

nvcc -arch sm_37 -rdc=true -lcudadevrt dynamic_parallelism.cu -o dynamic_parallelism

这给出了一个错误:

  

nvlink错误:“ / tmp / tmpxft_00000d9d_00000000-17_dynamic_parallelism.o”中对“ cudaGetParameterBufferV2”的未定义引用

     

nvlink错误:“ / tmp / tmpxft_00000d9d_00000000-17_dynamic_parallelism.o”中对“ cudaLaunchDeviceV2”的未定义引用

这是我使用的代码:

__global__ void childKernel() 
{ 
    printf("Hello "); 
} 

__global__ void parentKernel() 
{ 
    // launch child 
    childKernel<<<1,1>>>(); 
    /*if (cudaSuccess != cudaGetLastError()) { 
        return; 
    }

    // wait for child to complete 
    if (cudaSuccess != cudaDeviceSynchronize()) { 
        return; 
    } */

    printf("World!\n"); 
} 

int main() 
{ 
    // launch parent 
    parentKernel<<<1,1>>>(); 
    /*if (cudaSuccess != cudaGetLastError()) { 
        return 1; 
    } 

    // wait for parent to complete 
    if (cudaSuccess != cudaDeviceSynchronize()) { 
        return 2; 
    } */

    return 0; 
}

注意:带注释的块只是错误检查代码,不会影响要测试的动态并行性

0 个答案:

没有答案