Создание кода перемещаемого устройства с помощью Nvidia Nsight

Я пытаюсь скомпилировать пример динамического параллелизма на CUDA, и когда я пытаюсь скомпилировать, это дает и сообщение об ошибке,

kernel launch from __device__ or __global__ functions requires separate compilation modes

Позже обнаружил, что я должен установить --relocatable-device-code флаг для true, Но есть ли флаг, чтобы установить, чтобы сделать набор relocatable-device-code в true в Nsight Eclipse?

3 ответа

Если вы не используете проект makefile, вы можете изменить параметры, переданные в nvcc проекта Nsight в следующей позиции, начиная с меню.

Проект - Свойства - Сборка - Настройки - Настройки инструмента - Компилятор NVCC

Поскольку Nsight не предоставляет опцию rdc для проверки, вы можете напрямую изменить 'Commnad' с

nvcc

в

nvcc -rdc=true

или измените "Шаблон командной строки" с

${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS}

в

${COMMAND} ${FLAGS} -rdc=true ${OUTPUT_FLAG} ${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS}

Второй лучше.

Возможно, вы также захотите изменить это для "Все конфигурации", а не только для "Отладка" или "Выпуск".

РЕДАКТИРОВАТЬ

Вы должны следовать инструкциям @RobertCrovella в комментарии. Это официальный путь.

После создания проекта вы также можете внести это изменение, перейдя в Project...Properties...Build...Settings. Здесь вы увидите страницу, аналогичную упомянутой выше, в диалоговом окне "Основные настройки". Аналогичным образом можно изменить "Режим компоновщика устройства" на этой странице с "Компиляция всей программы" на "Отдельная компиляция", чтобы включить генерацию кода перемещаемого устройства после того, как проект уже создан.

Кредит переходит к @robertcrovella. Это был на самом деле ответ, который я искал, поэтому я сделал это отдельным ответом.

Вы можете использовать опцию nvcc "-dc" или "-rdc=true", вы можете указать это как образец.

nvlink, перемещаемый код устройства и статические библиотеки устройств

Другие вопросы по тегам