CUDA ptxas 的 --abi-compile=yes 选项有什么作用(哪些成本寄存器)?
What does the --abi-compile=yes option of CUDA ptxas do (which costs registers)?
NVIDIA CUDA 的 PTX 优化汇编程序,ptxas
,有以下选项:
--abi-compile <yes|no> (-abi)
Enable/Disable the compiling of functions using ABI.
Default value: 'yes'.
那是什么 ABI?当您禁用它时会发生什么? 似乎 导致使用的寄存器更少,嗯...
(受 this GTC 2011 presentation 启发的有关寄存器溢出的问题。)
一个应用程序二进制接口描述了如何调用函数如何与库接口等。它允许的是例如有一堆函数调用使得能够从内核调用内核,link 库。所有这些功能都会花费一些寄存器(维护堆栈帧)。 ABI 是使现代软件工作的原因,程序员通常不能选择退出它们。
您仍然可以关闭 abi(并保存一些寄存器),但请记住,link将外部函数作为 printf() 将不再起作用。
Here 是关于 ABI 和 ptxas 的 官方 CUDA 文档 的 link。它会回答你所有的问题。
NVIDIA CUDA 的 PTX 优化汇编程序,ptxas
,有以下选项:
--abi-compile <yes|no> (-abi)
Enable/Disable the compiling of functions using ABI.
Default value: 'yes'.
那是什么 ABI?当您禁用它时会发生什么? 似乎 导致使用的寄存器更少,嗯...
(受 this GTC 2011 presentation 启发的有关寄存器溢出的问题。)
一个应用程序二进制接口描述了如何调用函数如何与库接口等。它允许的是例如有一堆函数调用使得能够从内核调用内核,link 库。所有这些功能都会花费一些寄存器(维护堆栈帧)。 ABI 是使现代软件工作的原因,程序员通常不能选择退出它们。
您仍然可以关闭 abi(并保存一些寄存器),但请记住,link将外部函数作为 printf() 将不再起作用。
Here 是关于 ABI 和 ptxas 的 官方 CUDA 文档 的 link。它会回答你所有的问题。