2016-02-28 66 views

回答

4

的应用程序二进制接口描述函数的调用方式如何连接到库等等。例如,它允许有一堆函数调用,例如可以从内核,链接库调用内核。所有这些功能都需要一些寄存器(用于堆栈帧)。 ABI是使现代软件工作的原因,程序员通常不能退出。

您仍然可以关闭abi(并保存一些注册表),但请记住,将外部函数链接为printf()将不再有效。

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

+0

这似乎是在讨论PTX代码的差异,而不是它如何编译。 – einpoklum

+1

在寄存器中增加了关于abi及其成本的一些细节。希望这有助于。有关cuda工具链中abi的实际实施的资源很少。 –

+0

因此基本上+2个寄存器(每个函数?)来维护堆栈帧? – einpoklum