CUDA设备功能如何工作?

Sag*_*uti 2 cuda nvidia

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

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

Rob*_*lla 5

一个__device__函数可以内联或不内联(一般来说,这也适用于主机函数).

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

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

堆栈是一个每线程堆栈,它存在于称为"本地"内存的逻辑空间中,该内存由同一物理内存中的线程管理,其中称为"全局"内存的逻辑空间存在,即板载GPU DRAM.

关于函数是否内联有细微差别,您可能需要阅读相关的doc 部分.

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