GCC 中的 OpenHMPP
问题的要点是:
您知道有哪些项目旨在为 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 的替代方案更容易找到支持。
The gist of the question is:
Do you know any projects that aim to bring OpenHMPP support to GCC? I could also possibly live with affordable commercial compilers, but it's very unlikely, because I prefer Linux, and I would like the compiler to support non-x86 architectures as well.
And the background story:
I know OpenCL and CUDA people will bash me, but here goes my experience/opinion: I've been pursuing some toy projects to get into many core processing using CUDA and OpenCL. I feel that it's such a mess to set up those development environments (especially under linux and especially if you've the slightest bit of irregularity in your system). Even when you set them up, it's still a mess to run them anywhere other than your development environment. Finally (and probably the most importantly) these languages are very verbose and tiresome. I feel like they're the assembler of many-core processing. Compare them to OpenMP, and you see how they could actually be.
At this point, OpenHMPP comes into the scene. It uses #pragma
statements like OpenMP and it seems to be a very good step in the right direction. However, it's very hard to find compilers for it. CAPS Enterprize and Pathscale do have OpenHMPP support, but they're very expensive (€4000 for CAPS, I couldn't find the price for Pathscale). And correct me if I'm wrong, but CAPS seems to support C, not C++.
So, we return to the gist. It would be like a dream, to have OpenHMPP support in GCC. Do you know of any open-source projects or any affordable alternatives? Maybe even, do you know of alternatives to OpenHMPP that are easier to find support for.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我理解正确的话,您正在寻找简化对加速器设备(可能是 GPU 以及多核 CPU)访问的方法。
这是一个目前正在进行大量学术工作的领域,产生了许多描述此类框架的出版物,但实际上可用的却很少。
事实上,你所说的原因是我研究的基础,它也远未完成或处于可供其他人使用的状态......
我唯一知道的,接近你所寻求的(使用#pragmas来访问加速器),将是来自虚拟 OpenCL 包的 MGP。
所有其他解决方案都需要使用其 API,因此更具侵入性。
我还没有仔细查看 AMP for C++,但如果它加快一些步伐可能会很有趣。
If I understand you correctly, you are looking for ways to simplify access to accelerator devices, which may be GPUs as well as multi-core CPUs.
This is a field with a lot of academic work happening right now, resulting in many publications describing such frameworks, however only few are actually available.
In fact, the reasons you are stating are the basis of my research, which is also far from complete or in a state usable by anyone else...
The only thing I know, that comes close to what you seek (using #pragmas to access accelerators), would be MGP from the Virtual OpenCL package.
All other solutions are more intrusive by requiring the use of their API.
I have not yet had a closer look to AMP for C++, but it might be interesting if it picks up some pace.