2

来自内核的 CUDA 设备函数调用(用 定义__device__)是否类似于主机函数,即它是否涉及将返回地址推入堆栈并将变量推入堆栈并在返回时检索?

如果是,那么在这种情况下,哪个内存用于堆栈?(缓存、共享或全局)

4

1 回答 1

5

一个__device__函数可以是内联的,也可以不是内联的(通常来说,宿主函数也是如此)。

如果函数是内联的,则没有堆栈使用。

如果函数未内联,则存在堆栈使用情况。

堆栈是每个线程的堆栈,它位于称为“本地”内存的逻辑空间中,由线程在与称为“全局”内存的逻辑空间所在的同一物理内存中管理,即板载 GPU动态随机存取存储器。

关于函数是否内联存在细微差别,您可能需要阅读相关文档部分

您可以在此处阅读有关本地内存的更多信息(向下滚动到本地内存部分)。

于 2013-10-08T15:38:19.380 回答