Что делает опция --abi-compile=yes в CUDA ptxas (что стоит регистров)?

PTID-оптимизатор NVIDIA CUDA, ptxas, имеет следующую опцию:

--abi-compile <yes|no>                              (-abi)                      
        Enable/Disable the compiling of functions using ABI.
        Default value:  'yes'.

Что это за ABI? А что происходит при отключении? Кажется, это приводит к уменьшению количества используемых регистров, хм...

(Вопрос, вдохновленный этой презентацией GTC 2011 о разливе регистра.)

1 ответ

Решение

Двоичный интерфейс приложения описывает, как называются функции, как взаимодействовать с библиотеками и т. Д. Он позволяет, например, иметь стек вызовов функций, позволяющих, например, вызывать ядра из ядер, библиотеки ссылок. Все эти функции стоят некоторых регистров (управление кадром стека). ABI - это то, что заставляет работать современное программное обеспечение, и программисты обычно не могут отказаться от них.

Вы все еще можете отключить abi (и сохранить регистр), но имейте в виду, что связывание внешней функции как printf() больше не будет работать.

Вот ссылка на официальную документацию CUDA об ABI и ptxas. Он ответит на все ваши вопросы.

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