它有可能在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