Что делает опция --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. Он ответит на все ваши вопросы.