它有可能在CUDA文件(不在内核代码中)使用openMP pragmas?在cuda主机代码中使用openMP?
我将结合gpu和cpu计算。但是nvvc编译器以“无法找到未知选项'openmp'”失败,如果我使用openmp选项(linux下)链接porgram
解决方法是仅在c/C++文件中使用openMP-statments。
它有可能在CUDA文件(不在内核代码中)使用openMP pragmas?在cuda主机代码中使用openMP?
我将结合gpu和cpu计算。但是nvvc编译器以“无法找到未知选项'openmp'”失败,如果我使用openmp选项(linux下)链接porgram
解决方法是仅在c/C++文件中使用openMP-statments。
我刚刚发现这个
http://www.cse.buffalo.edu/faculty/miller/Courses/CSE710/heavner.pdf
第25页说:
用gcc: - #包括omp.h
添加-fopenmp
标志
随着nvcc,这应该是-Xcompiler -fopenmp
,因为这需要直接传递给gcc -Xcompiler直接将标志传递给主机编译器
在链接阶段添加-lgomp
标志。
我还没有尝试过...
从NVIDIA的论坛发现了Visual Studio中的解决方案:
的“/ openmp'标志添加额外的C++中的选项CUDA建立规则。我将在稍后尝试Linux解决方案。
我尝试在“其他编译器选项”中编写参数,但它没有工作。
我做什么了Visual Studio 2010和CUDA 4.2:
在项目属性 - >配置属性 - > CUDA C/C++ - >命令行 - >附加选项: -Xcompiler “/ OpenMP的”
这导致生成的构建命令中有两个-Xcompiler参数,但没有导致任何问题并且成功运行。
小心应对和粘贴论据。如果仔细观察-Xcompiler -fopenmp上的破折号与命令行破折号不同。 – Tristan 2013-10-04 22:07:06
破折号现在已修复。 – 2014-05-23 19:44:05