c++ - C++ 中用户定义的 CUDA 代码

标签 c++ cuda

我正在编写一个研究应用程序,它将使用 C++ 和 CUDA 来利用 GPGPU。我想让应用程序的用户能够通过编写将在 GPU 上执行的内核代码来定制程序。

到目前为止,我唯一的想法是将用户代码输出到一个 .cu 文件中,然后调用平台编译器创建一个动态库,然后主机应用程序可以在运行时加载它。这可行吗?即使是,我也非常担心这样做会使我的程序不稳定并且成为跨平台的噩梦。

如有任何想法/替代方案或评论,我们将不胜感激。

最佳答案

理论上是可以的。相反,我会推荐 OpenCL 而不是 Cuda。它不像 Nvidia 平台上的 Cuda 那样优化,但旨在支持运行时编译(每个 OpenCl 运行时驱动程序都包含一个编译器,作为执行内核的第一步,编译它)。

另一个优势是 OpenCL 比 Cuda 更便携,因为 OpenCL 也可以在 ATI(GPU 和 CPU)和 Intel 上运行。

关于c++ - C++ 中用户定义的 CUDA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8107153/

相关文章:

cuda - 本地、全局、常量和共享内存

c - 基于汉明权重的索引

c++ - 内存分配和 Try-Catch block

c++ - 了解对象的构建、生命周期和销毁

c++ - 优先队列,重载少操作

c++ - 伯恩斯坦多项式插值

python - 我无法使用 ctypes cuda 获得输出数字

c++ - float2 和 cuComplex 有什么区别,要使用哪个?

c++ - 单元测试、模拟和 unique_ptr

cuda - 无论如何要打印dim3值 - Cuda中的网格尺寸, block 尺寸?