1

NVIDIA CUDA 的 PTX 优化汇编器ptxas具有以下选项:

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

那是什么ABI?当你禁用它时会发生什么?这似乎导致使用的寄存器更少,嗯......

(受此GTC 2011关于寄存器溢出的演示的启发提出的问题。)

4

1 回答 1

4

应用程序二进制接口描述了如何调用函数如何与库接口等。它允许例如有一个函数调用堆栈,例如能够从内核、链接库调用内核。所有这些功能都需要一些寄存器(管理堆栈帧)。ABI 是现代软件工作的原因,程序员通常不能选择退出它们。

您仍然可以关闭 abi(并保存一些寄存器),但请记住,将外部函数链接为 printf() 将不再起作用。

是有关ABI 和 ptxas的官方 CUDA 文档的链接。它会回答你所有的问题。

于 2016-02-28T22:18:51.643 回答