在CUDA C项目中使用C ++

时间:2011-05-20 11:15:19

标签: c++ c cuda thrust

我正在CUDA C中实现一种排序和流压缩算法。但我刚刚想到,自己以良好的性能实现这些算法并不是那么简单。鉴于我正在使用矩阵,我不能使用CUDPP,所以,虽然我避免使用它,但我将不得不使用推力库(我对C ++一无所知)。

我一直用C语言编程,我真的只是想用C ++来处理推力,所以基本上我想知道我是否可以在C中使用大部分代码然后使用一些C ++代码(我是猜测我将不得不使用“外部”功能)但我想确定它是否在CUDA中可行。

提前致谢。

2 个答案:

答案 0 :(得分:4)

在主机代码方面,推力很容易集成。即使您可能认为您编译的任何.cu文件中的主机端代码都是C,但无论如何都是使用C ++编译器进行编译(大多数CUDA内部都依赖于C ++特性进行编译)。所以你现在实际上是在使用C ++而没有意识到它。

答案 1 :(得分:4)

是的,可能会使您的构建过程复杂化,但在其他方面可以正常工作我们一直使用它将一些CUDA函数包装到C ++类中(然后这是真正的踢脚器)然后用JNI包装以便在Java中使用。如果我们能做到,你就可以做到!有吧!