2019 Fiscal Year Research-status Report
メモリサイズ削減を目指した融合型ニューラルネットワークアクセラレータの開発
Project/Area Number |
19K11885
|
Research Institution | Tokyo City University |
Principal Investigator |
瀬戸 謙修 東京都市大学, 工学部, 講師 (10420241)
|
Project Period (FY) |
2019-04-01 – 2022-03-31
|
Keywords | ニューラルネットワーク / アクセラレータ / オンチップメモリ削減 / 高位合成 |
Outline of Annual Research Achievements |
今年度は、レイヤのテンプレートCコードを作成した。具体的には、畳み込みレイヤ、プーリングレイヤなど、ニューラルネットワークを構成するレイヤのリファレンスコードを作成し、ループ最適化(ループ融合、ループ交換)、メモリアクセス最適化(スカラリプレイス)などの高位合成向けソースコード最適化を拡張しつつ適用するとともに、ストリームインターフェースを活用するコードを作成した。これらのコードに基づき、性能を悪化させることなく、オンチップメモリを削減したレイヤのテンプレートCコード作成方法を検討した。比較のため、従来技術を使用した場合のテンプレートも作成した。また、作成したテンプレートCコードに基づいて、各レイヤを、データフロー型のパイプラインアーキテクチャにより並列実行させるコードを作成し、メモリサイズ削減と高性能化の両立を検討した。ニューラルネットワーク記述から、Cコード生成に必要なレイヤ情報を自動抽出するツールを拡張して、効率よくコード生成する方法を検討した。まず4レイヤからなる、入力サイズを縮小したニューラルネットワークの例題を作成して、研究を進めた。パイプライン動作するニューラルネットワークアクセラレータのサイクル数を簡易的に見積ったり、高速にシミュレーションする方法を検討するとともに、RTLシミュレーションによって、生成したパイプラインアーキテクチャを性能評価する環境を整えた。ニューラルネットワークアクセラレータの高速化、省面積化のためには、精度への影響が小さい重みを削除する方法が重要である。フィルタカーネルレベルで重みをプルーニング(削除)する方法を検討するとともに、レイヤごとにプルーニングする割合を適切に調整して、プルーニングの効果をさらに高める方法を考案した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
レイヤのテンプレートCコード、および、各レイヤを接続して、データフロー型のパイプラインとして並列実行させるCコードは、Xilinx社の高位合成ツールであるVivadoHLS向けのCコードだけでなく、他のHLSツール用にSystemCコードを作成した。また、VivadoHLSと他のHLSツールでは、高位合成の最適化オプションが異なる部分があるため、性能を出せるようテンプレートのチューニングを行った。SystemCではハードウェア構造を記述する機能を持つため、ハードウェア構造の制御が行いやすい利点がある。そのため、SystemCを用いることで、レイヤー接続について、細かな調整が可能である。これにより、認識精度を高めるために複雑な構造をもつニューラルネットワークに対応するための準備ができた。また、エッジ向けの省面積、低電力なニューラルネットワークアクセラレータでは、認識精度を維持したまま、ニューラルネットワークの重みを削減するプルーニング技術が重要であるため、カーネルレベルやチャンネルレベルでプルーニングを行う方法を検討した。ニューラルネットワークの層全体に対して一律な割合で重みを削減するのではなく、層ごとに異なる割合で重みを削減することで、同等の精度のもとで、削減率を高める技術を開発した。さらに、ニューラルネットワークアクセラレータの性能向上のために重要なCコード最適化技術として、多面体モデルによるスケジュール変換に基づいたメモリアクセス最適化技術を考案した。以上の理由により、研究はおおむね順調に進展している。
|
Strategy for Future Research Activity |
大規模なニューラルネットアクセラレータのサイクル数評価をRTLシミュレーションによって行うには膨大な時間がかかるため、引き続き、パイプラインアーキテクチャを踏まえた上で、サイクル数を簡易的に見積もる解析方法を検討し、設計空間探索の研究を進める。また、精度が高く、かつ、コンパクトなニューラルネットワークの構造は、従来の古典的なニューラルネットワークと異なる種類のレイヤー処理や、レイヤー間の接続を持つため、そのような場合に対しても、レイヤーCテンプレートを新規に開発するとともに、データフロー型のパイプラインアーキテクチャで実装するための手法を検討する。VGGなどの古典的なニューラルネットワークについては、国際会議や、論文誌に投稿して発表を進める。
|
Causes of Carryover |
学会発表の費用を必要としていたが、翌年度に発表することになったため。
|