本研究では特定のベクトル幅を前提とせずに並列性を表現する中間言語の設計や、それを用いたSIMD命令生成の研究を行う。中間言語を特定のベクトル幅や命令セットと独立させることで様々なアーキテクチャで利用可能になる。その結果、Intelのような固定ベクトル長を持つ命令セットだけでなく、ARMのSVE命令セットやFPGAのようなデータを連続したストリームとして扱うアーキテクチャのSIMDコードを生成することができるようになった。プログラミングモデルとしてOpenMPを採用し、SIMD指示文に対する独自拡張とタスク機能を用いて、処理系の中で提案手法の中間言語に変換することでSIMD化を実現している。
|