Deep Learning HDL Toolbox

FPGA でのディープラーニングの推論

エッジ実装向けに、FPGA上でディープラーニング ネットワークをプロトタイピングして実装します。

プログラム可能なディープラーニング プロセッサ

このツールボックスには、スケジューリング ロジックによって制御される汎用的な畳み込みと、全結合層を備えたディープラーニング プロセッサが含まれています。このディープラーニング プロセッサは、Deep Learning Toolbox™ を使用して開発されたネットワークの推論を FPGA ベースで実行します。高帯域幅のメモリインタフェースは、層および重みデータのメモリ転送を高速化します。

ディープラーニング プロセッサには、指定されたネットワークを実行するようプログラムされた、汎用的な畳み込みと全結合処理モジュールが含まれます。

ディープラーニング プロセッサ アーキテクチャ。

コンパイルと展開

ディープラーニング ネットワークを、ディープラーニング プロセッサで実行できるよう命令セットにコンパイルします。FPGA に展開し、デバイス上での実際の性能メトリクスをキャプチャしながら予測を実行します。

ディープラーニング ネットワークを、ディープラーニング プロセッサに展開できるよう命令セットにコンパイルします。

YOLO v2 ネットワークのコンパイルおよび展開。

MATLAB での FPGA ベースの推論

MATLAB から FPGA 上でのディープラーニングの推論を実行します。

展開用のネットワークの作成

Deep Learning Toolbox を使用して、オブジェクトの検出や分類などのタスク用にディープラーニング ネットワークの設計、学習、解析を開始します。また、他のフレームワークから学習済みのネットワークや層をインポートして開始することもできます。

FPGA に学習済みのネットワークを展開

学習済みのネットワークの準備ができたら、deploy コマンドを使用して、イーサネットまたは JTAG インターフェイス経由でディープラーニング プロセッサを FPGA にプログラムします。次に、compile コマンドを使用して、FPGA を再度プログラムすることなく、準備した学習済みのネットワーク用の命令セットを生成します。

MATLAB を使用してボードやインターフェイスを構成し、ネットワークをコンパイルして、FPGA に展開。

MATLAB を使用してボードやインターフェイスを構成し、ネットワークをコンパイルして、FPGA に展開。

MATLAB アプリケーションの一部として FPGA ベースの推論を実行

テストベンチ、前処理および後処理アルゴリズム、FPGA ベースのディープラーニング推論を含むアプリケーション全体を MATLAB® で実行します。MATLAB の単一コマンドである predict コマンドは、FPGA 上で推論を実行し、結果を MATLAB ワークスペースに返します。

MATLAB ループは、イメージをキャプチャし、AlexNet 用にサイズ変更して前処理を行い、FPGA 上でディープラーニング推論を実行してから、結果を後処理して表示します。

FPGA 上でディープラーニング推論を行う MATLAB アプリケーションを実行。

ネットワークのカスタマイズ

ターゲットの FPGA または SoC デバイス上でのアプリケーション固有の要件を満たすように、ディープラーニング・ネットワークを調整します。

FPGA 推論のプロファイリング

FPGA 上で予測を実行しながら層レベルのレイテンシを測定し、性能のボトルネックを発見します。

ディープラーニングの推論のプロファイリング メトリクス。

MATLAB から FPGA 上でのディープラーニング ネットワークの推論をプロファイリング。

ネットワーク設計の調整

プロファイル メトリクスを使用して、Deep Learning Toolbox でネットワーク構成を調整します。たとえば、ディープ ネットワーク デザイナーを使用して、層の追加、層の削除、または新しい接続を作成します。

ディープラーニングの量子化

ディープラーニング ネットワークを固定小数点表現に量子化することで、リソースの使用量を削減します。Model Quantization Library サポート パッケージを使用して、精度とリソース使用量とのトレードオフを解析します。

カスタム RTL 実装の展開

ディープラーニング・プロセッサのカスタム RTL 実装を、HDL Coder を使用して任意の FPGA、ASIC、または SoC デバイスに展開します。

ディープラーニング プロセッサのカスタム構成

並列スレッド数や最大層サイズなど、ディープラーニング プロセッサを実装するためのハードウェア アーキテクチャのオプションを指定します。

論理合成可能な RTL の生成

さまざまな実装ワークフローやデバイスで使用するために、HDL Coder を使用して、ディープラーニング プロセッサから論理合成可能な RTL を生成します。プロトタイピングと量産展開のために同じディープラーニング プロセッサを再利用します。

dlhdl.BuildProcessor クラスは、カスタム ディープラーニング プロセッサから論理合成可能な RTL を生成します。

ディープラーニング プロセッサから論理合成可能な RTL を生成。

統合のための IP コアの生成

HDL Coder がディープラーニング・プロセッサから RTL を生成する場合、SoC リファレンス設計に統合するための標準 AXI インターフェイスを備えた IP コアも生成します。

HDL Coder は、ディープラーニング プロセッサの入力および出力を AXI インターフェイスにマッピングする IP コアを生成します。

I/O と AXI インターフェイス間のマッピングを示すターゲット プラットフォーム インターフェイス テーブル。