研究課題/領域番号 |
17K12694
|
研究種目 |
若手研究(B)
|
配分区分 | 基金 |
研究分野 |
高性能計算
|
研究機関 | 国立研究開発法人理化学研究所 |
研究代表者 |
Lee Jinpil 国立研究開発法人理化学研究所, 計算科学研究センター, 特別研究員 (30764873)
|
研究期間 (年度) |
2017-04-01 – 2020-03-31
|
研究課題ステータス |
完了 (2019年度)
|
配分額 *注記 |
3,640千円 (直接経費: 2,800千円、間接経費: 840千円)
2019年度: 1,040千円 (直接経費: 800千円、間接経費: 240千円)
2018年度: 1,170千円 (直接経費: 900千円、間接経費: 270千円)
2017年度: 1,430千円 (直接経費: 1,100千円、間接経費: 330千円)
|
キーワード | SIMD並列化 / コンパイラ最適化 / 高性能計算 / OpenMP / 並列化コンパイラ / FPGA / ハイパフォーマンス・コンピューティング |
研究成果の概要 |
本研究では特定のベクトル幅を前提とせずに並列性を表現する中間言語の設計や、それを用いたSIMD命令生成の研究を行う。中間言語を特定のベクトル幅や命令セットと独立させることで様々なアーキテクチャで利用可能になる。その結果、Intelのような固定ベクトル長を持つ命令セットだけでなく、ARMのSVE命令セットやFPGAのようなデータを連続したストリームとして扱うアーキテクチャのSIMDコードを生成することができるようになった。プログラミングモデルとしてOpenMPを採用し、SIMD指示文に対する独自拡張とタスク機能を用いて、処理系の中で提案手法の中間言語に変換することでSIMD化を実現している。
|
研究成果の学術的意義や社会的意義 |
既存のベクトル命令は固定ベクトル長を前提としており、命令セット毎にその幅が異なる。最新のARMやRISC-Vアーキテクチャにはコードにベクトル長を明記せず、ランタイムや実行アーキテクチャによってベクトル幅が決まるアプローチが採用されている。またFPGAのような再構成可能なハードウェア上で計算カーネルを実装するときも性能最適化のためにベクトル化を行うが、ハードウェア資源の制約によってその幅は流動的に変化する。本研究で提案した中間形式を用いることによって、様々なベクトル長を持つアーキテクチャを統一されたアルゴリズムで開発することができるようになる。
|