jev*_*jev 18 c haskell llvm icc intel-mic
有没有办法编译Haskell在Xeon Phi协处理器上运行?
英特尔的一些研究人员最近报道了Haskell研究编译器 (这是不公开的,这使得他们的结果基本上不可复制)并测量了Haskell间隙(显示在某些情况下Haskell性能超过C).它们通过名为Pillar的中间语言(类似于C--)描述编译路径并将其编译为C,以便他们可以使用icc创建可在Phi上执行的目标代码.
GHC支持编译到LLVM或直接生成本机代码(NCG).据我所知,目前没有针对Phi的NCG,也没有针对Phi的LLVM后端.有权访问icc,通过C的路径似乎是可能的,但我不确定它目前有多现实(我认为不再支持GHC中的C代码生成器,LLVM IR-to-C后端也是如此,如我错了请纠正我).
因此,我想到了三条路线:
在未注册模式下编译GHC ,-fvia-c
然后用icc编译
使用较旧的GHC版本生成C代码,然后使用icc
使用较旧的LLVM版本通过GHC LLVM然后从LLVM生成C,然后使用icc
哪条路线最可行(为什么不这样做)?是否还有其他可能性(因为诸如pillar2c之类的工具尚未公开提供,因此我驳回了Pillar路线).
一个相关的问题是关于Phi的x86兼容性 - 似乎不支持SSE/AVX指令,如果使用例如gcc或clang编译,某些目标代码将无法运行.
更新:
在LLVM会议上与一些英特尔人聊天后,他们似乎不太可能发布他们的Phi LLVM后端.然而,下一代Xeon Phi将支持AVX512.
如果你通过 C 编译 Haskell,结果是否会被限制为不比 C 快,因为你可以直接编写 C 代码?您的问题指出您尝试重现的项目是通过不同的语言编译的。
所以我不确定可用的工具是否足够先进来完成您想做的事情,抱歉。