c++ - 在 cuda 主机代码中使用 openMP?

标签 c++ cuda openmp

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

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

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

最佳答案

我刚刚找到了这个

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

第 25 页说:

使用 gcc: -#include omp.h

添加 -fopenmp 标志

对于 nvcc,这应该是 -Xcompiler -fopenmp 因为这需要直接传递给 gcc -Xcompiler 将标志直接传递给宿主编译器

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

我还没试过……

关于c++ - 在 cuda 主机代码中使用 openMP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3211614/

相关文章:

c++ - 运行 intel mkl 示例程序 - 没有这样的文件

c++ - 优化递归函数

c++ - 为什么 cudaMemcpy 花费这么多时间?

c++ - 私有(private)子句中的变量与 OpenMP 中并行区域中定义的变量之间有什么区别吗?

c++ - std::sort 比自定义 OpenMP 并行排序算法快得多

c++ - 在qml中动态添加图片对象

c++ - 使用声明和访问修饰符的嵌套类

c++ - CUDA Thrust reduce_by_key 使用更少的内存

c++ - CUDA : stencil code not working

c++ - 在 openmp 中迭代 std 容器