При компиляции кода CUDA вы должны выбрать, для какой архитектуры генерируется ваш код. nvcc
предоставляет два параметра для указания этой архитектуры, в основном:
-
arch
указывает виртуальную атаку, которая может бытьcompute_10
,compute_11
и т.д. -
code
указывает реальную архитектуру, которая может бытьsm_10
,sm_11
и т.д.
Итак, команда вроде этого:
nvcc x.cu -arch=compute_13 -code=sm_13
Будет генерировать код "cubin" для устройств с возможностью вычисления 1,3. Пожалуйста, поправьте меня, если я ошибаюсь. Что я хотел бы знать, каковы значения по умолчанию для этих двух параметров? Какая архитектура по умолчанию используется nvcc, если не указано значение для arch
или code
?