このページの本文へ

ここから本文

テクノロジー

技術レポート:アーカイブ

Category:技術レポート:アーカイブ

MMS留学生レポート(完了報告)コンパクト化AIのFPGA実装技術修得

MMS留学生レポート(完了報告)コンパクト化AIのFPGA実装技術修得[PDFファイル]
コンパクト化A1のFPGA実装技術修得
MMS留学生レポート(完了報告)
コンパクト化AIのFPGA実装技術修得第4事業部エンベデッドハードウエア技術部LSI技術課岩河秀知1.まえがき当社国内留学制度により, 2018~2020年度の3年間,三菱電機(株)情報技術総合研究所へ出向し,研究開発を行った。本稿では,出向期間中の研究内容,及び,修得したコンパクト化AIのFPGA実装技術について述べる。2.出向の目的AI椎甜前土,高い認識精度を実現するために膨大な積和演算を実行する必要があり, リアルタイム性等の観点から, FPGAアクセラレーターにて推論処理を行う要求が増えている。今回の研究開発では, AIのFPGA実装関連技術を当社に技術蓄積することを目的とし,表1に示す主要なFPGA向けのAI実装技術修得を行った。その結果,当初計画していた推論分野の技術に加え,その他応用技術も修得した。表1.A[実装技術一覧(x:未収得〇:修得済み)分野技術項目当社技郷参得可否計画実績アーキテクチャのFPGA実装推論処理の高速化 ゜゜ 推論 推論回路の小規模化 ゜゜ コンパクト化 ゜゜゜ ゜ (枝刈り・試子化)その他芯用技術その他(ソフトウエアIP化・自動生成環境の構築など) ゜学習アーキテクチャのFPGA実装などXの開発を行った。これは, AI推論処理を高速かつ,小規模で容易にFPGA実装し,搭載可能なFPGAを選定することを目的としている。FPGAとはFieldProgrammable Gate Arrayの略称であり, HDLなどのプログラム言語を用いて回路をプログラムすることができるという特徴がある。3. 2 FPGA向けAI推論回路開発の現状AI推乱倫回路のFPGA実装千法として, RTL/高{如役計を用いた開発がある。しかし,本設計手法はFPGAデバイスの選定, AI推論機能の回路実装方法,実装アーキテクチャの検討などの高い専門知識が必要とされ,設計難易度が高い。この設計難易度を軽減する手法としてFPGA実装容易化検討が進められている。3. 3 FPGA実装容易化の課題FPGA実装容易化を実現するには以下の課題がある。(1) 高速かつ小規模なAI推論処理を行うアーキテクチャを確立すること。(2)搭載可能なFPGAを選定するための処理性能,回路規模,メモリ量の見積手法を確立すること。(3) 専門知識不要で高速かつ小規模なAI推論回路を設計可能とすること。(4) 要求性能,ネットワーク規模が異なるアプリケーションでも,短期間でAI推論回路を設計すること。(出向先での開発実績では,画像認識アプリで仕様確定~RTL作成まで約40人日)。3.4活動実績FPGA実装容易化の課題を解決するために,以下の活動を行った。(1) FPGA向けパイプライン型(詳細は後述) AI推論回路のアーキテクチャ設計・検討(課題①)(2) (1) の性能見積•FPGA 実装(課題②)(3) (1)のソフトウエアIPの設計(課題③), C/C++ソースコード自動生成環境の構築(課題④)3.活動内容(1)'~(3)' はFPGA向け時分割型(全畳み込み層共通3. 1開発概要の演算器を用いる構成) AI推論回路で(1)~(3)と同様の筆者は,出向先でAI推論回路のFPGA実装容易化技術研究開発を行った。活動実績を表2に示す。表2. 活動実績2019年度上期1 下期2020年度上期1 下期;本稿では,学会発表(1)(2)を行ったパイプライン型AI推論回路について示す。ーNo1 hw ich och2 ich hw och3 hw och ich4 och hw ich5 och ich hw6 ich och hw4.課題と対策4. 1アーキテクチャ設計(課題①)AI推論機能のFPGA実装手法は複数存在し,アプリケーションによって,適正のあるFPGA回路アーキテクチャは異なる。各アーキテクチャにおいて,最適な設計を検討し,高速,かつ,小規模なAI推論処理を行うアーキテクチャを確立する必要がある。そこで,代表的なAI推論回路アーキテクチャであるパイプライン型,共通の演算器を全層で実装する時分割型について調査し,アーキテクチャの設計を行った。図1にアーキテクチャの比較を示す。一- II -重みメモリアーキーすテクチャみリ菫荘喜芯▼一?ユ血や:4皿一月c:.;ユ止入共通演算器メモリ出• 各居を佃別にFPGA設,1を行いバイプ・各唇の積和澳算をすべて共通演算器でラインで実装する。実行する.. 届ごとに演箕並列数が決定可・共通演五器を用いることで届数の大き特徴・内部メモ'J梅成よリパラメータ呈の小いNNに対応可さいNNの実装が容易・外部メモリ1毘成が取れるので大規極NNが実装可• 分岐処理に対応可図1. アーキテクチャ比較以下で説明するパイプライン型アーキテクチャは,外部メモリを使用しない,比較的小規模なニューラルネットワーク(以降NNという)向きのアーキテクチャである。4. 1. 1基本アーキテクチャ図2にパイプライン型アーキテクチャの構成を示す。i 推論器コンパクト化AlのFPGA実装技術修得'(3)枝刈り向け重みポインタヽ\畳み込み層] 畳み込み層二(1)畳み込み計算順序(4)層間はFIFOで接続今、----:-----------------------、r Reg_init_sig ]嘉担パ9杓`n|l ロニ_ Jj‘----------------------------’(2)畳み込み回路構成図3. 畳み込み層のアーキテクチャ詳細(1)(1) 畳み込み計算順序畳み込み処理は,入カチャネル方向(ich),出カチャネル方向(och),空間方向(hw)の3次元に対して積和演算を行う。この3次元の計算順序を変えることで回路規模・メモリ量に影響がある。表3のとおり, No.6 のich=〉och=〉hwの計算順序がメモリ,回路規模とも小規模に実装できることが解り,パイプライン型アーキテクチャに採用した。表3. 畳み込み次元と回路規模・メモリ量への影響推論回路図2.パイプライン型アーキテクチャ構成(1)本アーキテクチャは, NNの各中間層に畳み込み演算モジュールを配置し,並列実行の構成とする。加えて,層間の遅延量を調整するFIFOを実装することで,畳み込み層間でデータ待ち状態を抑制し,高速化を実現する。4. 1.2畳み込み層アーキテクチャ畳み込み囲の詳細について図3に示す。図3のとおり畳み込み層は(1)~(4)から構成されている。図中の(1)~(4)について説明する。演算順序メモリ回路規模⇒ ⇒ ゜ X⇒ ⇒ △ ⇒ ⇒ ゜ ゜ X⇒ ⇒ △ X⇒ ⇒ ゜ X⇒ ⇒ ゜ ゜(2) 畳み込み回路構成畳み込み演算を行う場合,一般的に乗算後にバイアス項加算を行うが,乗算器,累積加算器に加え,加算器が必要となり,大規模化の要因となる。本構成では,バイアス項を初期値とし,入力選択信号(Reg_init_sig)で入力値を選択することで,加算器を追加使用しない構成で小規模な回路を実装することができた。(3)枝刈り向け重みポインタ(コンパクト化)枝刈りは,処理性能向上,回路規模削減メモリ董削疇として,従来は畳み込み層のノードを削減していたが,推論精度への影響が大きい枝を刈る可能性があった。そこで,枝刈りの条件に推論精度に影響のある積和演算を識別する重みポインタを付加することで,処理性能同等時の推論精度向上を図った。図4に重みポインタのイメージを示す。2(1)(6)(3)(2)(4)(5)NoYesNoYes'コンパクト化AlのFPGA実装技術修得通常の畳み込み重みフィルタ特徴マップ□] 技刈り適用の畳み込み特徴マップ重みポインタ1,3,5,7,94.2性能見積手法の検討(課題②)4. 1章で説明したパイプライン型アーキテクチャをFPGAに実装するためには図5の手順で実装する。図4.枝刈り向け重みポインタ図4の例に示すように,通常の畳み込みでは, 1~9の場所全てに対して畳み込み演算を行うが,枝刈り時は1, 3, 5, 7, 9のみ演算を行う。本枝刈り手法は,枝刈り最に伴い格納している内部メモリ量の削減と,推論処理時間の高速化を同時に実現できるアーキテクチャである。また,ここで用いる重みには最子化を適用することで,推論精度が仕様を満たす範囲でビット幅を削減している。これにより,回路規模,内部メモリが削減でき,小規模に回路実装できる。(4) 層間FIFO層間のデータ受け取り待ちを解消するためのFIFOである。畳み込み層間で処理時間に乖離がある場合,デー夕受け取り待ちが発生する。居間FIFOを実装することで,前の畳み込み層が出力した値をFIFOに取り込み,畳み込み演算を継続することができるため,データ受け取り待ちを解消することができる。図5. パイプライン型アーキテクチャ実装フロ一例(1)(1), (2)は4.1章のアーキテクチャ設計と,学習である。(3)~(6)は所望のFPGAに実装するための性能・回路規模見積と推論回路設計である。なお,国内留学では推論技術修得を優先するため,(1), (5)の学習は修得技術の対象外とした。く見積もり結果>日厄瓢コ羅E AAA 410 120% 100% 80%BBB 410 60% 50% 75%回路規模や処理性能情報をフィードバックしてネットワーク仕様と要求性能を調塁4. 1.3アーキテクチャ設計まとめ図6. 見積ツールイメージ(1)以上の基本アーキテクチャ,畳み込み層アーキテクチャの設計を通じて修得した,高速化,小規模化,コンパ性能見積の検討では,図6のとおり見積ツールを作成クト化技術について表4に示す。した。このツールは要求性能・推論器仕様(ネットワーク表4. 高速化・小規模化・コンパクト化修得技術仕様)を入力とすることで,小規模な演算並列数の組合せを決定し,実装可能なFPGA種類を出力することができる。ツール構成は処理性能,乗算器(DSP)・内部メモリ,回路規模(LUT数)見積の3つからなる。商速化各畳み込み庖をモジュール化・並列実行する層間FIFOを用いてデータ受け取り待ち遅延を解消する小規模化繹み込み層の演算並列数に合わせ回路規模を恥薗化する回路規模・層間FIFOが最小となる演算/厠芋(ich=>och=>hw)とするコンパクト化(枝刈り)枝刈り率に応じ重み量を肖臆ける重みポインタ構成とする枝刈り率に応じ処理性能が高速化される重みポインタ構成とするコンパクト化(量子化)絋子化ビット幅に応じて回路規模内部メモリ呈が削減される構成とする4.2. 1処理性能見積以下の式を満たすように要求性能を満足する必要最小限な演算並列数を求める。Max(各層の畳み込み性能) <目標スループット[cycle]4. 2. 2 DSP/内部メモリ見積DSPとは, FPGA内に搭載されている演算処理プロセッ表4に示すとおり,国内留学時の目標であった技術をサーである。DSP数は,畳み込み層の演算並列数と,最子修得し, FPGA実装ガイドラインの作成推論アーキテク化ビット幅から求められる。内部メモリは,重み,重みチャのFPGA実装を実現した。ポインタ,バイアス項の格納に用い,各データの容量と最子化ビット幅,各層の演算並列数から決定する。34. 2. 3 LUT見積推論回路全体のLUT(Look Up Table)は,ツールの最適化により異なってくるため,算出式ではなく畳み込み3x3, lxl(以降Conv3x3, lxl), Max Poolingの層について,何通りかの演算並列数の論理合成結果を元に,各層の演算並列数からLUTを求める。この演算並列数の全層での総和を求めることで推論回路全体のLUTを算出する。4.2.4 性能見積手法の検討まとめ4. 2章まで説明してきた,パイプライン型アーキテクチャの設計,性能見積手法をガイドライン化した。この手法を用いることで,要求性能を満たす高速かつ小規模なAI推論回路を実装できる。4.3高位ソフトウエアIP(課題③)AI推誦訴哨各の実装は,従来のFPGA設計以外の専門知識が必要となり難易度が高い。そこで,専門知識を必要とせず,高速かつ小規模なAI推論回路を設計可能とするために,高位ソフトウエアIPを作成した。これは, VivadoHLS向けのC/C++言語を用いて設計し,任意の演算並列数でConv3x3,lxl, Max-Pooling層を実現する。本IPでは重み,ポインタ,バイアス項などの内部メモリ構成を指定する疑似コードを「#pragma」を用いて実装している。疑似コードの実装例を畳み込み処理を元に以下に示す。【畳み込み処理の疑似コード(2)】//CONV_N:入カチャネル数などのCNNパラメータfor(i ntC =O ;C <C ONV_N; c++){//OP:並列演算数LOOP_UNROLL指定for( into p= O;o p<O P;o p++){/ 積和演算4.3. 1 高位ソフトウエアIPまとめ高位ソフトウエアIPは,演算並列数等をパラメータ化し, 高位合成ツール(VivadoHLS)に所望のCNN(convolutional neural network :畳み込みニューラルネットワーク)パラメータと演算並列数でパイプライン型アーキテクチャを生成することができる。4.4アーキテクチャ自動生成環境構築(課題④)AI推乱葡回路を実装するためには,要求性能,ネットワーク規模が異なるアプリケーションごとに,演算並列数,メモリ構成を決定し,回路実装を行う必要がある。この仕様確定からRTL生成の期間は, FPGA向けAI推論回路の専門家でも, 40人日程度の時間がかかる。専門家以外が設計した場合は,更に期間が必要になり期間短縮する必要がある。そこで,ここまで設計したアコンパクト化A1のFPGA実装技術修得'ーキテクチャ,性能見積手法,高位ソフトウエアIPを組み込んだ,パイプライン型アーキテクチャ自動生成環境を構築した。図7に自動生成環境を示す。入力し重みl ポインタ「了\イアス項性能見積ツール一喜一且馴馴薗'図7. パイプライン型アーキテクチャの自動生成環境この自動生成環境は,性能見積ツールと, AI推論回路の自動生成ツールから構成される。入力はネットワークパラメータと非機能要求(処理性能,回路規模など)であり,出力はVivadoHLS向けのAI推論回路C/C++コードである。ここで,重み,バイアス項,ポインタなどのパラメータを設定することで, C/C++コードが生成される。4.4. 1性能見積ツール性能見積ツールとは, 4.2章で説明した処理性能,回路規模,内部メモリ量の見積手法を用いて,要求性能を満たし,回路規模が小さい演算並列数FIFO段数を見積もるものである。本機能を用いることで,要求性能を満たすために必要な演算並列数(DSP数),回路規模(LUT数),内部メモリ量(BRAM数)を見積もることができ,実装対象となるFPGAを選定するのに必要な情報が得られる。4. 4. 2AI推論回路の自動生成ツールこのツールは, AI推論モジュール生成部と,生成したAI推論モジュールをネットワークパラメータに従い組み合わせるレイア構成決定部から構成される。パイプライン型アーキテクチャ自動生成ツールの概念図を図8に示す。4'コンパクト化AlのFPGA実装技術修得り疇□疇口← 疇表5. Al推論アーキテクチャ修得事項修得技術図8. パイプライン型アーキテクチャ自動生成ツールの概念図(2)AI柑喘戸モジュール生成部では任意の並列数に対応した高位ソフトウエアIP(畳み込み層IP,Pooling層IP)にネットワークパラメータと,演算並列数を設定することで,AI推論モジュール(Conv3x3,Convlxl, Max-Pooling)を生成できる。レイヤ構成決定部では, AI推論モジュール生成部で生成したモジュールをネットワークパラメータに従い組み合わせる。層間はデータ受け取り待ちを解消し,パイプライン実行を可能とするFIFOを挿入する。4. 4. 3AIアーキテクチャ自動生成環境まとめ本自動生成ツールを用いることで,パラメータを設定するだけで,要求仕様を満たす小規模な回路を生成することが可能となった。本ツールを用いることで,性能と回路規模のトレードオフを自動で最適化することができ,実装期間も40人日から1時間以下と今回は大幅に削減することができた。5.成果検討したAI推論アーキテクチャ,見積手法,高位ソフトウエアIP及び,自動生成技術を適用し,以下を実現した。AI椎乱倫アーキテクチャについては関連特許を4件出願性能見積児ソフトウエアIP(2),自動生成環境町こっいては学会にて発表済。(1)仕様確定からRTL設計までの実装期間短縮FPGA向けAI推論回路の専門家が,実装に40人日を要する回路を,専門知識がないユーザーでも1時間以下で饂可能となる開発環境を構築した。(2) FPGAデバイスの自動選定ネットワーク仕様,非機能要求を入力として,実装可能なFPGAを自動選定するツールを開発した。本アーキテクチャは,従来の監視カメラで取得した画像の認識物体検出への適用はもちろん,コスト面でAIの適用が難しかった家電エレベーター,高精度地図などへの適用が考えられる。また,国内留学・出向中に表5に示す技術を修得した。アーキテクチャのFPGA実装推論処理の高速化推論回路の小規模化コンパクト化(枝刈り・量子化)処理性能・回路規模見積高位ソフトウエアIP化アーキテクチャ自動生成国内留学当初に予定していたAIのFPGA実装を当社で受託可能とするための基礎技術(FPGA実装,高速化,小規模化,コンパクト化)に加え,処理性能・回路規模見積,高位ソフトウエアIP化,アーキテクチャ自動生成技術を修得することができた。6.むすび3年間の国内留学・出向を終え,留学の目的である高速かつ,小規模なAI推論回路のFPGA実装技術の修得は達成できた。加えて,高位設計を用いたAI推論回路開発フローについても確立できた。今後は,修得した知見や検討した手法を,実オーダー,勉強会を通じて技術展開することで,当社内でのコンパクト化AIのFPGA実装技術を高めていく所存である。謝辞今回の執筆にあたり,ご指導とご助言を頂いた三菱電機(株)情報技術総合研究所コネクテッドインダストリーシステム技術部LSI設計技術G各位に深く感謝の意を表する。商標(1) Maisartは,三菱電機(株)の登録商標である。(2) Vivado HLSは,米国及びその他各国のXilinx社の商標である。参考文献(1) 山本亮,岩河秀知,小川吉大: FPGA向けDeepNN推論回路の性能と回路規模見積,電子情報通信学会大会(2021)(2) 岩河秀知,山本亮,杉原堅也,小川吉大: FPGA向けIPを用いたAI推論回路生成環境の構築電子情報通信学会大会(2020)5