2012-07-19 106 views
0

有人看到可能在CUDA主机代码中同步操作吗?对于CUDA主机代码,我的意思是包含在.cu文件中的主机代码,并由nvcc进行预处理,然后在Windows上传递给cl.exe。CUDA主机代码的互斥锁? boost :: mutex由于BOOST_COMPILER使用nvcc重新定义没有解决方案

由于不可避免的预处理主机代码的nvcc我不能使用我的首选实现boost :: mutex:如果我包括提升的东西我得到BOOST_COMPILER makro重新定义的错误。

回答

1

只需将CUDA C代码与其他代码分开即可。 .cu文件包含您的内核,设备函数,内核调用等。为内核调用制作头文件并将其用在您的cpp文件中。这也可以帮助减少编译时间,因为编译.cu文件很慢。

+1

我已经尝试过了,但对于我的主机代码还有另一个重要的要求:我在CUDA表面上执行操作,它本质上是静态的,必须在全局范围内声明。当我在一个单独的.cpp/.hpp文件中使用它时,cl.exe不知道如何处理它,而且nvcc缺少它。 – morph 2012-07-24 07:41:07