我有一个使用CUDA驱动程序API来构建和执行内核的CUDA应用程序。
它在运行时使用NVRTC将CUDA C ++代码(“程序”)编译为PTX,然后从中创建CUDA模块。当前,它的工作方式是每个程序创建一个CUDA模块。它将需要一些重新架构,才能将多个已编译程序链接到单个CUDA模块中。
在CUDA中仍然可以使用在模块之间共享的恒定内存吗?根据我发现的文档,恒定内存缓冲区需要在模块中使用__constant__
声明进行一次声明,然后可以使用cuModuleGetGlobal
从主机进行引用,但这是针对每个模块的。 / p>
另外,不同的内核位于不同的模块中是否会降低性能?