在cuda主机代码中使用openMP?

时间:2010-07-09 10:09:32

标签: c++ cuda openmp

可以在CUDA文件中使用openMP pragma(不在内核代码中)吗?

我将结合使用gpu和cpu计算。但是nvvc编译器失败了,“无法找到未知选项'openmp'”,如果我将porgram与openmp选项链接(在linux下)

一种解决方法是仅在c / c ++文件中使用openMP-statments。

3 个答案:

答案 0 :(得分:15)

我刚发现了这个

http://www.cse.buffalo.edu/faculty/miller/Courses/CSE710/heavner.pdf

第25页说:

使用gcc: - #include omp.h

添加-fopenmp标志

使用nvcc时,这应该是-Xcompiler -fopenmp,因为这需要直接传递给gcc -Xcompiler将标志直接传递给主机编译器

在链接阶段添加-lgomp标志。

我还没试过......

答案 1 :(得分:2)

我尝试在“其他编译器选项”中编写参数,但它不起作用。

我为Visual Studio 2010和CUDA 4.2做了什么:

在项目属性中 - >配置属性 - > CUDA C / C ++ - >命令行 - >其他选项: -Xcompiler“/ openmp”

这会在生成的构建命令中生成两个-Xcompiler参数,但不会导致任何问题并成功运行。

答案 2 :(得分:0)

从nvidia-forum发现的Visual Studio解决方案:

将'/ openmp'标志添加到cuda构建规则中的Extra C ++ Options。我稍后会尝试使用linux解决方案。