AIアルゴリズムのハードウェア実装技術
学習済みのDLモデルをFPGAに手軽に実装
高速・高精度なエッジAIシステムをスピーディーに実現
AI技術の1つであるディープラーニングはアクセラレーターと呼ばれる専用ハードウェアで実行することで、精度を維持したまま低コストや省電力を実現できます。また、エッジデバイスへの組み込みにより、通信環境に依存しないリアルタイム性が求められるシステムに最適化できます。しかし、通常ディープラーニングのアルゴリズムをハードウェアの回路データに変換するには、精度を維持するために複雑な設定の調整などに多くの期間を有します。 この課題に対し、コニカミノルタではハードウェアの回路データに変換する過程において、高速・高精度に変換する独自技術を開発しました。その結果、開発効率を高め、現場からのフィードバックを受けてのアルゴリズム更新を迅速に行うことができ、顧客課題を解決するまでのサイクルをより高速に回すことができます。
技術概要
ディープラーニングの学習済みモデルをFPGA(Field Programmable Gate Array)上に手軽に実装するための高位合成コンパイラー「NNgen(エヌエヌジェン)」を東京大学の高前田 伸也准教授と共同で開発し、オープンソースで一般公開しています。 NNgenを使うと、ハードウェアのチューニングに関する深い知識がないエンジニアやデザイナーでも、ディープラーニングの学習済みモデルからFPGAで高速に動作するアクセラレーターを効率的に開発でき、FPGAが搭載されたデバイス機器などのエッジサイドで、AI処理をリアルタイムに実施する製品やサービスが実現できるようになります。 また、NNgenはオープンソースで一般公開されているので、利用者は無償で利用したり、開発に貢献したりできます。
FPGA向け高位合成コンパイラー「NNgen」
AIの中でも、ディープラーニングに大きな注目が集まっており、画像処理や音声処理など様々な分野で劇的な精度向上が実現されてきました。一方でその計算には膨大なコンピューターリソースが必要で、省電力・高性能な専用ハードウェアの重要性が増してきています。 このような専用ハードウェアの一つに、回路構成を変更可能なハードウェア「FPGA」を用いる方法があります。処理内容に応じて回路構成をカスタマイズできるFPGAの特性を生かして、学習済みのディープラーニングモデルに特化した回路構成を採用することで、小型かつ高速なアクセラレーターを実現できる所がメリットです。 NNgenは、用途に応じて構築・学習済みのディープラーニングモデルを高速に処理できる専用アクセラレーターを、FPGA上に手軽にかつ効率的に実装するためのドメイン固有型の拡張可能な高位合成コンパイラです。モデルに特化したハードウェアアクセラレーターのハードウェア記述(Verilog HDL)およびIPコア設定ファイル(IP-XACT)を生成します。 ※NNgenはGitHubで公開されています。
「NNgen」の主な特徴
1.高い抽象度で手軽に実装できる
・一般的な深層学習フレームワークと同様のPythonによるモデル構造記述から自動的にアクセラレーター回路記述を生成
・ONNX入力にも対応
・ハードウェアパラメーターを設定するだけで性能最適化が可能
2.様々な粒度でコンパイラーを機能拡張できる
・コンパイラー・バックエンドには、高前田 伸也准教授が開発したマルチパラダイム型高位合成フレームワーク「Veriloggen」を用いており、カスタムレイヤーの追加などの拡張が可能
3.様々なFPGA環境に対応できるポータビリティ
・学習済みのディープラーニングモデルからVerilog HDLを直接生成
※記載されている会社名、製品名は各社の登録商標または商標です。