«Code = sm_X» включает в себя только двоичный (кубиновый) код, или также код PTX, или оба?

Я немного запутался по поводу опции 'code = sm_X' в операторе '-gencode'.

Пример: что делает опция компилятора NVCC

-gencode arch=compute_13,code=sm_13

вставлять в библиотеку?

Только машинный код (код кубина) для графических процессоров с CC 1.3 илитакже код PTX для графических процессоров с CC 1.3?

В «Руководстве по совместимости Maxwell» указано «Только конечные целевые версии, указанные в предложении« code = », будут сохранены в результирующем двоичном файле».

Исходя из этого, я могу сделать вывод, что данная опция компилятора встраивает машинный код только для графических процессоров с CC 1.3 инет Код PTX. Это будет означать, что это будетне можно запустить эту библиотеку, например на плате генерации Максвелла, поскольку в библиотеке нет встроенного кода PTX, из которого машинный код может быть скомпилирован «точно в срок» (JIT).

С другой стороны, в презентации GTC 2013 «Введение в CUDA Toolkit как инструмент для сборки приложений» от NVIDIA говорится, что «-gencode arch = compute_13, code = sm_13» достаточно для всех графических процессоров с CC> = 1,3 и что с этой опцией компилятора для графических процессоров с CC> 1,3 машинный код JIT-редактируется из кода PTX. Таким образом, информация, представленная в руководстве по совместимости Maxwell и этой презентации GTC, на мой взгляд, противоречива.

Ответы на вопрос(1)

Ваш ответ на вопрос