2020 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コードに対する最適化手法の提案および評価を行った。ニューラルネットワーク用ハードウェアを、高位合成を使用して設計する際、連続するレイヤなどに対応するループを融合することで、バッファメモリの削減を見込める。バッファメモリの削減には、スカラリプレイスと呼ばれる最適化が適用できるが、人手で行うには、専門知識を必要とし、時間がかかるため、自動化が重要である。融合されたループでは、一時配列に対して、前段のループで計算された値を格納するための書き込みアクセスの他に、一時配列の初期化を行うための書き込みアクセスが必要となることが多いが、ループ本体に複数の書き込みアクセスが存在する場合に対応できるスカラリプレイスは提案されておらず、自動化が困難であった。そこで、複数の書き込みアクセスに対応するスカラリプレイス手法を提案し、自動化ツールを実装した。これにより、連続するループを融合したコードに対して、バッファメモリを自動で削減することが可能となった。さらに、ループ平坦化(多重ループの一重ループ化)における回路面積の削減手法を提案した。ニューラルネットワークの畳み込みレイヤのような多重ループで表現できる処理は、ループ平坦化によって、ループ制御のオーバーヘッド削減によるサイクル数削減が期待できる。ループ処理中には通常、配列アクセスを伴うが、ループ平坦化前後で配列アクセスの添え字を等価にするため、平坦化後のループ変数から、平坦化前の多重ループのループ変数を復元する必要があり、その復元に、乗除算や剰余算が必要になり、特にループ回数が2のべき乗でない場合、回路面積の増大につながる。処理時間を増大することなくループ回数を2のべき乗に変換する方法を提案することで、乗除算や剰余算を省面積なシフトや論理積演算に置き換えることができ、大幅に回路面積を削減できた。
|
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コードのFIFO構成とサイズを調整することで、解決できる見通しが立っており、この解決策は、Vivado HLS向けCコードや、その他HLSツール用のCコードにも適用可能である。また、ニューラルネットワークのレイヤ間のデータの受け渡しでは一時配列が用いられるが、一時配列のサイズ削減により、オンチップメモリの削減が可能になる。スカラリプレイスの人手適用は時間がかかるため、自動化が課題となっていた。今年度開発したスカラリプレイス技術をレイヤのテンプレートCコードに適用することにより、一時配列のサイズ削減を自動で行うことが可能となり、最適化したテンプレートCコードの自動生成の基盤技術となる。加えて、今年度開発したループ平坦化技術を用いることにより、各レイヤについてループ平坦化を適用する際に、面積増大を抑えつつ実行サイクル数を削減できるようになり、ニューラルネットワークアクセラレータ全体に対して、回路面積増大を抑えた実行サイクル数削減を行うことができるようになる。これまでに開発した技術を使用して、今後の研究課題を遂行できると考えている。
|
Strategy for Future Research Activity |
今後は、レイヤテンプレートを改良し、(1) ピンポンバッファを用いる場合と比べてオンチップメモリを削減、(2) 複数レイヤをパイプライン並列実行する際のパイプラインストールの削減、(3) 精度が高いサイクル数見積もり、を可能とするレイヤテンプレートの開発を進める。その際、レイヤテンプレートに対し、開発したループ最適化、メモリアクセス最適化を適用しつつ、最適なデータフロー(ループ順序)の検討を行い、性能評価を通して、最適なレイヤテンプレートを見つける。VGGに加えて、MobileNetなどのニューラルネットワークについてもテンプレート開発を進めるとともに、FPGA実機による評価も進める。これらの成果を、国際会議や、論文誌に投稿して発表する。
|
Causes of Carryover |
参加・発表予定だった国際会議・国内会議がオンライン化されたため。次年度に参加・発表予定の国際会議・国内会議に参加するための費用として使用を計画している。
|