在Xeon-Phi上运行Haskell

时间:2014-03-07 14:49:52

标签: c haskell llvm icc intel-mic

有没有办法编译Haskell以在Xeon Phi协处理器上运行?

英特尔的一些研究人员最近报道了Haskell Research Compiler (这是不公开的,这使得他们的结果基本上不可复制)并测量Haskell Gap(表明在某些情况下Haskell性能超过C)。它们通过名为Pillar的中间语言(类似于C--)描述编译路径并将其编译为C,以便他们可以使用 icc 创建可执行的目标代码一个披着。

GHC支持编译到LLVM或直接生成本机代码(NCG)。据我所知,目前没有针对Phi的NCG,也没有针对Phi的LLVM后端。有权访问 icc ,通过 C 的路由似乎是可能的,但我不确定它目前有多现实(我认为不再支持GHC中的C代码生成器)对于LLVM IR-to-C后端也是如此,如果我错了,请纠正我。

因此可以想到三条路线:

  1. 未注册模式下编译GHC 并使用-fvia-c进行编译 然后使用 icc

  2. 使用较旧的GHC版本生成C代码,然后使用 icc

  3. 使用较旧的LLVM版本通过GHC LLVM然后生成C LLVM然后使用 icc

  4. 哪种途径最可行(为什么/为什么不)?是否存在其他可能性(由于 pillar2c 等工具尚未公开提供,因此我驳回了Pillar路线)。

    一个相关的问题是关于Phi的x86兼容性 - 似乎不支持SSE / AVX指令,并且如果使用例如编译,则某些目标代码将无法运行。 gcc clang

    更新

    在LLVM会议上与一些英特尔人聊天后,他们似乎不太可能发布他们的Phi LLVM后端。但是,下一代Xeon Phi将支持AVX512。

1 个答案:

答案 0 :(得分:1)

如果你通过C编译你的Haskell,结果是否被限制为不比C快,因为你可以直接编写C代码?您的问题指出,您尝试复制的项目是通过其他语言编译的。

所以我不确定可用的工具是否足够先进,无法做你想做的事,抱歉。