Получил «неразрешенный внешний символ» в CUDA при использовании лямбдыC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Получил «неразрешенный внешний символ» в CUDA при использовании лямбды

Сообщение Anonymous »

Я компилировал свой файл .cu с параметром -arch=sm_75 -rdc=true --expt-extended-lambda, переданным в nvcc (v12.4.99, windows, vs 17 2022). Однако я получил ошибку LNK2019: неразрешенный внешний символ:

Код: Выделить всё

LINK : error LNK2019: unresolved external symbol __cudaRegisterLinkedBinary_81293256_4_t_cu_2bebb7d5_7784 referenced in function "void __cdecl __nv_cudaEntityRegisterCallback(void * *)" (?__nv_cudaEntityRegisterCallback@@YAXPEAPEAX@Z)
Код, который я компилировал:

Код: Выделить всё

template  __device__ void exec(F f, uint32_t tid, Args &&...args) {
f(tid, static_cast(args)...);
}

template  __global__ void kernel(F f, Args... args) {
uint32_t tid = blockIdx.x * blockDim.x + threadIdx.x;
exec(f, tid, args...);
}

template  void launch(F f, Args &&...args) {
kernel(f, static_cast(args)...);
}

int main() {
launch([] __device__(uint32_t id, uint32_t v) { printf("%u %u\n", id, v); }, 1u);
return 0;
}
Я думаю, это вызвано -rdc, как я могу это решить?


Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-lambda
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»