nvcc --ptxas-options = -v (использование регистра и памяти) ОШИБКА - PullRequest
1 голос
/ 26 марта 2012

Я хочу скомпилировать мою программу cuda с флагом --ptxas-options = -v nvcc, чтобы добиться использования регистров и памяти, чтобы использовать их в калькуляторе занятости CUDA GPU.

ошибка: идентификатор "atomicAdd" не определен

Я использовал atomicAdd в своем ядре. Как я могу решить эту проблему?

1 Ответ

3 голосов
/ 26 марта 2012

Атомарные операции поддерживаются не всеми поколениями графических процессоров, и целью nvcc по умолчанию является sm_10. Предполагая, что ваш графический процессор поддерживает элементарные операции (подробности о том, какие функции поддерживаются вашим графическим процессором, см. В CUDA C Guide , приложение F.1), вам потребуется целевая архитектура, например, -gencode arch=compute_20,code=\'compute_20,sm_20\' для Ферми и новее. См. Руководство NVCC для получения дополнительной информации о параметрах gencode.

Кстати, действительно ли добавление флага --ptxas-options=-v меняет поведение? Если нет, то название вашего вопроса вводит в заблуждение.

...