研究課題
本研究では、再構成可能ハードウェアのFPGAを用いた計算加速を対象に、性能最適化が容易なハードウェア高位設計方式および高位合成フレームワークの実現を目指して研究を進めている。申請者が開発を進めている、演算データフローと制御を分離して記述するマルチパラダイム型設計フレームワークのVeriloggenを発展させ、メモリ容量と帯域の制約下での性能最適化を容易に行うためのチューニング・ノブを持つハードウェア設計方式と、開発者のチューニング方針に基づいて効率的な演算回路とメモリシステムを探索するオートチューニング技術を開発する。2020年度は、オートチューニング機能を持つ高位合成コンパイラの基盤となる、Veriloggenのプログラミングモデルおよびコンパイラ実装の拡張を行った。データ転送機能を内包しない計算回路の実装を容易にするために、AXI-Streamインタフェースへの対応を行った。これにより近年の多くのSoC FPGAが搭載するハードマクロのDMAコントローラを活用可能になった。あわせて、ストリーム計算回路とAXI-Streamインターフェースを直接接続するために、ストリーム計算パイプラインの適応型ストール機構を実装した。また、アルゴリズムの性質から、本質的にパイプライン処理ができない演算に対応するために、ストリーム計算の中にマルチサイクルの演算を埋め込むためのプログラミングモデルの拡張を行った。加えて、複雑なメモリアクセスパターンを表現するためのプログラミングモデルの拡張を行った。これらの技術の導入により、複雑なアルゴズムについても、従来よりも高い実効効率で演算回路を稼働させることが可能になる見通しであり、深層学習アクセラレータの自動生成に特化した高位合成コンパイラNNgenにおいて、これらの技術による効率向上の度合いを評価するために、NNgenの開発を進めている。
3: やや遅れている
年度前半は研究環境の立ち上げおよびCOVID-19への対応により、十分に研究開発の時間を確保することができなかった。また、年度当初は本研究費で技術補佐員の雇用を検討していたが、COVID-19の影響により、適任者を見つけることができなかった。加えて、Veriloggenがいくつかの商用システムで利用されるに際して、本コンパイラの検証と修正に時間を要してしまった。そのため、メモリアクセスパターンの記述を容易にするためのプログラミングモデルの拡張は実現できたが、アクセスパターンの解析によるメモリシステムの自動構築技術の実装には至っていない。一方、より幅広いアルゴリズム・アプリケーションの実装に必要となるコンパイラの基本機能の拡張は順調に進めることができた。全体としては、やや遅れていると言える。
2021年度は、アプリケーションの動作記述と最適化アノテーションを分離して記述する、高抽象度な高位設計モデルとそのコンパイラを引き続き開発する。また、メモリシステムの自動最適化および自動生成に関する研究を進める。メモリアクセスパターンからデータ供給部と再利用部を自動合成するためのアイデアは既にあるため、具体的な実現方法の検討を進める。プログラミングモデルの開発およびプロトタイプ実装については、研究代表者が引き続き行うが、コンパイラソフトウェアの詳細実装ソフトウェアの開発については、本研究費で技術補佐員を雇用するなどして加速する。
すべて 2021 2020 その他
すべて 雑誌論文 (1件) (うち査読あり 1件、 オープンアクセス 1件) 学会発表 (3件) (うち国際学会 1件、 招待講演 1件) 備考 (2件)
International Journal of Networking and Computing
巻: Vol.10, No.2 ページ: 84--93
https://github.com/PyHDI/veriloggen
https://github.com/NNgen/nngen