CUDA主机代码的互斥锁?由于使用nvcc重新定义boost_编译器,互斥锁没有解决方案

CUDA主机代码的互斥锁?由于使用nvcc重新定义boost_编译器,互斥锁没有解决方案,boost,cuda,mutex,Boost,Cuda,Mutex,是否有人认为有可能在CUDA主机代码中同步操作?对于CUDA主机代码,我指的是包含在.cu文件中的主机代码,由nvcc预处理,然后在windows上传递给cl.exe 由于nvcc不可避免地对主机代码进行预处理,我无法使用我的首选实现boost::mutex:如果我包含boost内容,我会在boost_编译器makro重新定义时出错。只需将CUDA C代码与其他代码分开即可。让.cu文件包含内核、设备函数、内核调用等。为内核调用创建标题,并在cpp文件中使用这些标题。这也有助于缩短编译时间,因为

是否有人认为有可能在CUDA主机代码中同步操作?对于CUDA主机代码,我指的是包含在.cu文件中的主机代码,由nvcc预处理,然后在windows上传递给cl.exe


由于nvcc不可避免地对主机代码进行预处理,我无法使用我的首选实现boost::mutex:如果我包含boost内容,我会在boost_编译器makro重新定义时出错。

只需将CUDA C代码与其他代码分开即可。让.cu文件包含内核、设备函数、内核调用等。为内核调用创建标题,并在cpp文件中使用这些标题。这也有助于缩短编译时间,因为编译.cu文件的速度很慢。

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