c++ - GCC 中的 OpenHMPP

标签 c++ gcc openmp gpgpu

问题的要点是:

您知道任何旨在为 GCC 提供 OpenHMPP 支持的项目吗?我也可以使用负担得起的商业编译器,但这不太可能,因为我更喜欢 Linux,并且我希望编译器也支持非 x86 架构。

背景故事:

我知道 OpenCL 和 CUDA 的人会抨击我,但这是我的经验/观点:我一直在追求一些玩具项目,以使用 CUDA 和 OpenCL 进入许多核心处理。我觉得设置这些开发环境真是一团糟(尤其是在 linux 下,尤其是如果您的系统中有一点点不规则的情况下)。即使您设置了它们,在您的开发环境之外的任何地方运行它们仍然是一团糟。最后(可能也是最重要的)这些语言非常冗长和令人厌烦。我觉得他们是众核处理的汇编程序。将它们与 OpenMP 进行比较,您会发现它们实际上是怎样的。

此时,OpenHMPP进入现场。它使用像 OpenMP 一样的 #pragma 语句,这似乎是朝着正确方向迈出的非常好的一步。但是,很难找到它的编译器。 CAPS Enterprise 和 Pathscale 确实支持 OpenHMPP,但它们非常昂贵(CAPS 为 4000 欧元,我找不到 Pathscale 的价格)。如果我错了,请纠正我,但 CAPS 似乎支持 C,而不是 C++。

那么,我们回归正题。在 GCC 中获得 OpenHMPP 支持就像做梦一样。你知道任何开源项目或任何负担得起的替代品吗?甚至,您是否知道更容易找到支持的 OpenHMPP 替代品。

最佳答案

如果我没理解错的话,您正在寻找方法来简化对加速器设备的访问,这些设备可能是 GPU 也可能是多核 CPU。 这是一个目前有很多学术工作正在进行的领域,因此出现了许多描述此类框架的出版物,但实际上只有少数出版物可用。 事实上,你所说的原因是我研究的基础,我的研究也远未完成或处于任何人都可以使用的状态......

我所知道的唯一接近您所寻求的(使用#pragmas 访问加速器)的是 MGP from the Virtual OpenCL package . 所有其他解决方案都需要使用它们的 API,因此更具侵入性。 我还没有仔细观察 AMP for C++ , 但如果它加快一些步伐,它可能会很有趣。

关于c++ - GCC 中的 OpenHMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065796/

相关文章:

c++ - 为什么英特尔编译器会生成需要 libiomp5mt.dll 的输出,即使我要求静态链接?

c++ - 在该部分期间合并排序的无限循环问题以递归方式调用mergeSort

C++检测用户按下的ENTER键

c++ - poll(2) 在数据准备就绪时不返回

c++ - 为什么可以在g++(gcc)中重新定义gnulib?

c++ - 在 Rcpp 包中加载共享对象

c++ - 找出函数中变量分配类型的方法

c++ - GCC 8.1.0/MinGW64 编译的 OpenMP 程序崩溃寻找 cygwin.s?

c - 创建可执行文件时出现 undefined reference 问题

c - NUMA 处理器上的 OpenMP 内存分配