• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2017 年度 実施状況報告書

ベクトル長agnosticなアーキテクチャのためのSIMD IRコード生成技法

研究課題

研究課題/領域番号 17K12694
研究機関国立研究開発法人理化学研究所

研究代表者

Lee Jinpil  国立研究開発法人理化学研究所, 計算科学研究機構, 特別研究員 (30764873)

研究期間 (年度) 2017-04-01 – 2020-03-31
キーワードSIMD並列化 / OpenMP / 並列化コンパイラ
研究実績の概要

本研究の目的はハードウェアのベクトル幅にかかわらずSIMD並列化を行うための中間言語の開発とOpenMPをベースにするプログラミングモデルの提案および処理系の実装である。本年度の研究ではオープンソースコンパイラLLVMをベースにC言語のループ文をデータストリームとしてあらわす中間形式の設計と処理系の開発を行った。対象とするARM SVE命令セットを用いるSIMDプログラミングでは固定ベクトル長を想定しないため、一次元の入力データをwhile文にとる繰り返しによって繰り返して処理する。
本研究で開発したフレームワークはループ文のイテレーション空間やデータの参照パターンを解析し、連続かつ要素毎に独立したアクセスが行われるようにループ変形を行う。この時に参照されるデータは一次元のストリームとして表現されるため、ARM SVEによるSIMD並列化が可能である。本年度はこのフレームワークをプログラミング可能なハードウェアであるFPGAにマッピングする処理系の実装を行った。FPGAの性能向上においてもSIMDベクトル化によるメモリバンド幅の利用効率の改善が性能向上のために重要である。また、既存のCPUのような固有のベクトル幅を持たず、メモリバンド幅が許す限り大きなベクトル幅を実現することが可能である。C言語から独自のデータストリームの中間形式に変換し、FPGA向けハードウェア記述言語に変換を行う処理系を開発した。
また、OpenMPプログラミングの中で明示的なSIMD実装を与える拡張構文の提案を行った。ARM SVEに限らず、CPUのIntrinsic関数で記述されたSIMD実装をOpenMPのSIMDループ文で明示的に呼び出すためのインターフェイスを提案し、コード変換のメカニズムの設計を行った。ARM SVEのシミュレーターによる性能評価を行った。

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

本年度の主な計画はベクトル幅を限定しない中間言語の設計と実装である。ループ文とその中のデータ参照をデータストリームとしてあらわす中間形式を設計し、実装を行うことで予定していた計画を達成することができた。開発を行ったフレームワークではループ文の変形によってSIMD命令が生成可能なデータストリームを生成している。これを従来のLLVMのOpenMP実装で使うことで現在のOpenMP実装を大きく変えず、プロトタイプを実現することが可能である。しかし、現在のプロトタイプはループ文のstrideが1であるなど、いくつかの制限があり、研究計画で書いた通り簡単なループ文のみを対象にしている。
本年度の研究成果はOpenMPの言語仕様や処理系の実装に関する国際学会であるIWOMPに論文発表を行うことで報告している。また、HPC研究会にも研究報告を行った。研究計画で想定していたARMアーキテクチャ以外に最近HPCの分野で注目を集めているFPGAにも適用できることがわかり、その応用を報告している。HPC研究会の結果を元に論文を執筆し、FPGAやアクセラレータに関する国際学会であるHEARTに投稿し、採択された(来年度発表・出版予定)。
ARM SVEの性能評価においてシミュレーターを用いているが、これはまだSVE命令セットをサポートするハードウェアが存在しないためである。そのため、FLOPSや時間などの性能指標を用いず、発行命令数による疑似的な性能評価を行った。ハードウェアの実装はベンダーに依存する部分であるため、SVEをサポートするハードウェアが利用可能になるまで同様の評価を行う。

今後の研究の推進方策

来年度も計画通りに研究を続ける。平成30年度の主な研究計画はOpenMP 4.5仕様に相当するSIMD指示文の実装である。本年度で開発を行った処理系の適用範囲を拡大し、分岐や1以外のstrideを持つループ文からARM SVEやFPGAハードウェアを生成する変換メカニズムや処理系の開発を行う。
OpenMPの処理系の実装においてはIWOMPで提案を行ったSIMD関数呼び出しの実装を行う。論文では言語仕様の定義とコード変換アルゴリズムについて設計を行っており、処理系の実装には至っていない。LLVM処理系をベースにARM SVEのintrinsic関数をOpenMP SIMD指示文で明示的に用いるコード変換を行うように処理系を実装する。
ARM SVEはビットマスクによる選択的な実行をベクトル要素毎に制御することができる。このような機能を利用することでループ文の中に分岐が存在してもベクトル化を行うことが可能である。来年度の研究では中間形式を用いたベクトル化で分岐やstrideが2以上のループ文に関してもSIMDベクトル化を行うようにコード変換を行う解析アルゴリズムを設計する。
FPGAへの適用もARM SVEのSIMD並列化で設計したアルゴリズムを元に機能を改善する。現在はstrideが1のループを対象にするので連続したデータストリームのみを処理できるが、改善されたアルゴリズムでより複雑なループ文をFPGAでハードウェア化できるように改善を行う。前提としてはARM SVEと同様ビットマスクを用いた選択的な実行をデータストリームに対して行うようにハードウェアを生成する。

次年度使用額が生じた理由

研究開発のためのデスクトップPCや周辺機器を購入することで物品に関する予算を消費している。本年度は研究の初年度であるため、処理系の実装や資料調査などを主に行っているため、研究成果となる論文発表のタイミングが遅くなっている。旅費で予想より少ない金額を消費しているため差額が生じている。本年度執筆した二つ目の国際学会であるHEARTの論文の採択が平成30年の4月に行われ、論文発表が6月であるため、その旅費は次年度の旅費で消費する予定がある。
本年度で研究に必要なソフトウェアの基礎構造が開発されている。来年度はその結果を用いて学会参加による論文発表や意見交換を行う予定である。特に同様の研究開発を行っている海外の研究グループ(LLVMによる処理系の開発、ARM SVEの研究などを行うグループ)との共同研究を模索するため、対外活動を活発に行う。
来年度の物品購入は開発環境の周辺機器に用いる。論文発表に関連してポスター作製などに必要であればソフトウェアの購入も検討を行う。

  • 研究成果

    (7件)

すべて 2018 2017 その他

すべて 国際共同研究 (1件) 雑誌論文 (3件) (うち国際共著 2件、 査読あり 1件) 学会発表 (3件) (うち国際学会 1件)

  • [国際共同研究] ARM Ltd.(United Kingdom)

    • 国名
      英国
    • 外国機関名
      ARM Ltd.
  • [雑誌論文] HPC向けストリームプロセッサ生成のためのC言語フロントエンドの開発2018

    • 著者名/発表者名
      李 珍泌、上野 知洋、佐藤 三久、佐野 健太郎
    • 雑誌名

      研究報告ハイパフォーマンスコンピューティング

      巻: 2018-HPC-163 ページ: 1~7

  • [雑誌論文] Extending OpenMP SIMD Support for Target Specific Code and Application to ARM SVE2017

    • 著者名/発表者名
      Lee Jinpil、Petrogalli Francesco、Hunter Graham、Sato Mitsuhisa
    • 雑誌名

      Lecture Notes in Computer Science book series

      巻: 10468 ページ: 62~74

    • DOI

      https://doi.org/10.1007/978-3-319-65578-9_5

    • 査読あり / 国際共著
  • [雑誌論文] アプリに特化したSIMD最適化のためのOpenMP仕様拡張の提案とARM SVEを用いた評価2017

    • 著者名/発表者名
      李 珍泌、Francesco Petrogalli、Graham Hunter、佐藤 三久
    • 雑誌名

      研究報告ハイパフォーマンスコンピューティング

      巻: 2017-HPC-160 ページ: 1~8

    • 国際共著
  • [学会発表] HPC向けストリームプロセッサ生成のためのC言語フロントエンドの開発2018

    • 著者名/発表者名
      李 珍泌、上野 知洋、佐藤 三久、佐野 健太郎
    • 学会等名
      第163回ハイパフォーマンスコンピューティング研究発表会
  • [学会発表] Extending OpenMP SIMD support for target specific code and application to ARM SVE2017

    • 著者名/発表者名
      Jinpil Lee、Francesco Petrogalli、Graham Hunter、Mitsuhisa Sato
    • 学会等名
      13th International Workshop on OpenMP (IWOMP 2017)
    • 国際学会
  • [学会発表] アプリに特化したSIMD最適化のためのOpenMP仕様拡張の提案とARM SVEを用いた評価2017

    • 著者名/発表者名
      李 珍泌、Francesco Petrogalli、Graham Hunter、佐藤 三久
    • 学会等名
      2017年並列/分散/協調処理に関する『秋田』サマー・ワークショップ (SWoPP2017)

URL: 

公開日: 2018-12-17  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi