我看到了一些线程,但是它们似乎与我遇到的问题无关。
我有可以使用的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文件
感谢都铎王朝