CUDA 运行时 API具有用于从主机端代码处理设备端全局变量的功能cudaGetSymbolAddress()
,使用它们的名称(源代码标识符)作为句柄。cudaGetSymbolSize()
在驱动程序 API 中,我们有cuModuleGetGlobal()
,它可以让我们做同样的事情......除了它需要一个全局符号所在的 CUmodule。如果您正在使用动态编译并加载/添加到模块中的代码那么你就准备好了。但是,如果这些全局变量是您程序的一部分,使用 NVCC 静态编译而不是动态加载呢?
我会假设每个编译的程序都有某种“主模块”或“默认模块”,其中包含内置的全局变量和函数。我能得到它的句柄吗?