Haskell をコンパイルして Xeon Phi コプロセッサで実行する方法はありますか?
Intel の一部の研究者は最近、Haskell Research Compiler (公開されていないため、結果を本質的に再現不可能にする)について報告し、 Haskell Gapを測定しました(場合によっては Haskell のパフォーマンスが C を上回ることを示しています)。彼らはPillarと呼ばれる中間言語 (C-- に類似) を介してコンパイル ルートを記述し、それをC にコンパイルしてから、iccを使用して Phi で実行可能なオブジェクト コードを作成できるようにします。
GHC は LLVM へのコンパイルをサポートするか、ネイティブ コードを直接生成します (NCG)。私が知る限り、利用可能な Phi を対象とする NCG も、Phi の LLVM バックエンドもありません。iccにアクセスすると、 C経由のルートが可能に見えますが、現時点でそれがどれほど現実的かはわかりません (GHC の C コード ジェネレーターはサポートされなくなったと思います。LLVM IR-to-C バックエンドについても同じことが言えます。間違っていたら訂正してください)。
したがって、次の 3 つのルートが思い浮かびます。
未登録モードでGHCをコンパイルし、
-fvia-c
次にiccでコンパイルします。古い GHC バージョンを使用して C コードを生成し、iccを使用します
古いLLVMバージョンを使用してGHC LLVMを経由し、LLVMからCを生成してからiccを使用します
どのルートが最も実行可能ですか (理由/理由)? 他の可能性はありますか ( pillar2cなどのツールは (まだ?) 公開されていないため、Pillar ルートは却下しました)。
関連する質問は、Phi の x86 互換性に関するものです。SSE/AVX 命令がサポートされていないようで、一部のオブジェクト コードをgccやclangでコンパイルすると実行に失敗するようです。
更新:
LLVM カンファレンスで Intel 関係者とチャットした後、彼らが Phi LLVM バックエンドをリリースする可能性は低いようです。ただし、次世代の Xeon Phi は AVX512 をサポートします。