Я использую графический процессор TeslaK80. Я пробую динамический параллелизм.Но когда я компилирую с использованием 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: неопределенная ссылка на 'cudaGetParameterBufferV2' в'/tmp/tmpxft_00000d9d_00000000-17_dynamic_parallelism.o'
Ошибка nvlink: неопределенная ссылка на' cudaLaunchDeviceV2 'в' /tmp/tmpxft_00000d9d_00000000-17_dynamic_parallelism
1010 * 100 *used:
__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;
}
Примечание: закомментированный блок является просто кодом проверки ошибок, который не влияет на динамический параллелизм, предназначенный для проверки