AIアクセラレータ

FPGA用の高位合成コンパイラ「NNgen」

AI アルゴリズムのハードウェア実装最適化

コニカミノルタでは、ディープラーニング(深層学習)の学習済みモデルをFPGA(Field Programmable Gate Array)上に手軽に実装するための高位合成コンパイラ「NNgen(エヌエヌジェン)」を東京大学の高前田 伸也准教授と共同で開発し、オープンソースで一般公開しています。

NNgenを使うと、ハードウェアのチューニングに関する深い知識がないエンジニアやデザイナーでも、ディープラーニングの学習済みモデルから、FPGAで高速に動作するアクセラレータを効率的に開発できます。

その結果、FPGAが搭載されたデバイス機器などのエッジサイドで、AI処理をリアルタイムに実施する製品やサービスが実現できるようになります。

またNNgenはオープンソースで一般公開されているので、利用者は無償で利用したり、開発に貢献したりできます。

NNgenはGitHubで公開されています。

NNgen: ディープラーニングのアクセラレータ向け高位合成コンパイラ

開発経緯と技術概要

AIの中でも、ディープラーニングに大きな注目が集まっています。ディープラーニングにより、画像処理や音声処理など様々な分野で劇的な精度向上が実現されてきました。一方でその計算には膨大なコンピューターリソースが必要で、省電力・高性能な専用ハードウェアの重要性が増してきています。

このような専用ハードウェアの一つに、回路構成を変更可能なハードウェア「FPGA」を用いる方法があります。処理内容に応じて回路構成をカスタマイズできるFPGAの特性を生かして、学習済みのディープラーニングモデルに特化した回路構成を採用することで、小型かつ高速なアクセラレータを実現できる所がメリットです。

NNgenは、用途に応じて構築・学習済みのディープラーニングモデルを高速に処理できる専用アクセラレータを、FPGA上に手軽にかつ効率的に実装するためのドメイン固有型の拡張可能な高位合成コンパイラです。モデルに特化したハードウェアアクセラレータのハードウェア記述(Verilog HDL)およびIPコア設定ファイル(IP-XACT)を生成します。

開発経緯と技術概要

「NNgen」の主な特徴

1.高い抽象度で手軽に実装できる

  • 一般的な深層学習フレームワークと同様のPythonによるモデル構造記述から自動的にアクセラレータ回路記述を生成
  • ONNX入力にも対応
  • ハードウェアパラメータを設定するだけで性能最適化が可能

2.様々な粒度でコンパイラを機能拡張できる

  • コンパイラ・バックエンドには、高前田 伸也准教授が開発したマルチパラダイム型高位合成フレームワーク「Veriloggen」を用いており、カスタムレイヤーの追加などの拡張が可能

3.様々なFPGA環境に対応できるポータビリティ

  • 学習済みのディープラーニングモデルからVerilog HDLを直接生成

※記載されている会社名、製品名は各社の登録商標または商標です。

お悩みの方は、お気軽にご相談ください