c++ - 用于主机和设备代码的 CUDA 和 C++

标签 c++ c cuda

几周前,我开始将 CUDA 集成到我的 C++ 应用程序中。我一直在做我自己关于集成 CUDA 和 C++ 的研究。但是,我仍然对这个话题感到不舒服。

有人可以根据最新的 Toolkit 3.2 或 4.0 RC 帮助我澄清一些问题吗?

  1. 在Fermi的白皮书中说Fermi完全支持C++。这是否意味着它在主机和设备代码中都支持 C++,还是仅在主机代码中支持?

  2. 我可以在内核代码中使用哪些 C++ 功能?我知道模板是受支持的。类或结构呢?

  3. 我能否将用户定义的类实例(其中包含一些指向设备内存的指针)传递到内核中,并在内核代码中调用其成员函数?类和结构有什么区别吗?

感谢任何帮助!谢谢!

最佳答案

  1. 您的主机已经支持 C++,不是吗?但现在 GeForce 400 系列(代号 Fermi)在设备上支持 C++ 代码。

  2. 也上课,但有一些限制。请参阅 programming guide附录 D了解详情。

  3. 您可以传递类的引用。查看编程指南的 D.6.2 部分。

一般来说,附录 D 显示了支持的 C++ 结构和代码片段。值得一读。

关于c++ - 用于主机和设备代码的 CUDA 和 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5279443/

相关文章:

c++ - C++98 中获取并继续调用当前类不知道的类方法的最简单方法是什么?

c++ - 将char数组中的元素转换为int

c++ - drawScanlineWithDepth - 优化

c++ - 使用 CUDA 在集合中查找最少的数字

CUDA 中的随机数生成器

c++ - 通过作为参数传递的指针更改 int 变量的值?

c++ - 了解 C++11 以来 std::forward 的实现

c - 第二个分离线程不打印消息

c - 这段代码有什么Bug?

cudaStreamSynchronize 与 CudaDeviceSynchronize 与 cudaThreadSynchronize