我看到了一些线程,但是它们似乎与我遇到的问题无关。

我有可以使用的CUDA代码,但是我想并行化与内核代码(以及在内核完成之后)异步运行的for循环。

我似乎有一个链接问题,但错误确实存在。



首先,我想指出的是,我之前曾做过opemMP工作,但在单独的部分中,我使用

CFLAGS = -g -O2 *many flags here* -fopenmp

其他所有信息都有多余的信息,重要的部分是我只需将-fopenmp添加到makefile的标志行中。

但是,由于CUDA非常复杂,因此使用nvcc会使用c++编译器作为其主干(对吗?),我似乎很茫然。当我将-fopenmp添加到
CPPFLAGS =  ... *many cuda flags* -fopenmp

我得到上面陈述的错误。

我什至尝试过
CPPFLAGS =  ... *many cuda flags* -fopenmp -lgomp

还应注意,当我配置项目时,启用CUDA时将禁用GCC标志。

我要去哪里错了?我是否需要将旗帜放在其他地方?我需要放弃吗?

最佳答案

当执行以下操作时,我发现它起作用。

nvcc标志-Xcompiler -fopenmp -fgomp文件

感谢都铎王朝

09-06 23:00