Каковы значения по умолчанию для параметров архитектуры и кода при использовании nvcc?

При компиляции кода CUDA вы должны выбрать, для какой архитектуры создается ваш код. nvcc предоставляет два параметра для указания этой архитектуры, в основном:

  • arch указывает виртуальную архитектуру, которая может быть compute_10, compute_11 и т. д.
  • code указывает реальную архитектуру, которая может быть sm_10, sm_11 и т. д.

Итак, такая команда:

nvcc x.cu -arch=compute_13 -code=sm_13

Будет генерировать кубический код для устройств с вычислительными возможностями 1.3. Пожалуйста, поправьте меня, если я ошибаюсь. Я хотел бы знать, какие значения по умолчанию для этих двух параметров? Какую архитектуру по умолчанию использует nvcc, если не указано значение для arch или code ?


person Auron    schedule 12.01.2011    source источник
comment
Если вы скомпилируете свой код, используя подробный флаг, вы увидите используемую виртуальную архитектуру по умолчанию.   -  person    schedule 07.05.2015


Ответы (2)


Хорошо, мне наконец удалось обнаружить значения по умолчанию. Моя вина, что я не прочитал всю главу о компиляции GPU в документации NVCC от начала до самого конца. Так,

nvcc x.cu

эквивалентен для

nvcc x.cu –arch=compute_10 -code=sm_10,compute_10

Это значения по умолчанию. Компиляция выполняется по умолчанию для виртуальной архитектуры compute_10, а a.out, полученный в результате компиляции, будет включать код CUBIN для реальной архитектуры sm_10 и код сборки PTX для архитектуры compute_10, которые будут перекомпилированы «как раз вовремя». драйвером CUDA, если ваша архитектура больше sm_10.

person Auron    schedule 13.01.2011
comment
Архитектура по умолчанию теперь зависит от версии CUDA в более новых выпусках. - person Robert Crovella; 08.05.2015

Я полагаю, что значение по умолчанию — compute_10, так как вы не можете использовать какие-либо функции Compute_13, если вы явно не укажете, что это то, что вам нужно. (Предположительно, это указано в документации NVCC, которая поставляется с набором инструментов CUDA, но я не могу найти ссылку в Интернете).

person Edric    schedule 13.01.2011
comment
Я полагаю, вы правы. Я не смог найти эту информацию, когда просматривал документацию NVCC. Я все равно посмотрю еще раз. - person Auron; 13.01.2011
comment
Хм, кажется, значение по умолчанию для -code — это указанное значение в -arch, но я не могу найти, какое значение по умолчанию для -arch. - person Auron; 13.01.2011