Deep Learning HDL Toolbox

FPGA や SoC 上でのディープラーニング ネットワークのプロトタイピングおよび展開

Deep Learning HDL Toolbox™ には、FPGA や SoC 上でディープラーニング ネットワークをプロトタイピングして実装するための関数とツールが用意されています。また、サポート対象の Xilinx® や Intel® FPGA および SoC デバイス上でさまざまなディープラーニング ネットワークを実行するために事前構築済みのビットストリームが提供されています。プロファイリング ツールおよび推定ツールを使用して、設計、性能、リソース使用量の間のトレードオフを探求することで、ディープラーニング ネットワークをカスタマイズすることができます。

Deep Learning HDL Toolbox を使用すると、ディープラーニング ネットワークのハードウェア実装をカスタマイズし、任意の FPGA 上で展開するためのポータブルで論理合成が可能な Verilog® および VHDL® コードを生成できます (HDL Coder™ と Simulink® が必要) 。

詳細を見る:

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

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

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

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

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

コンパイルと展開

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

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

事前構築済みのビットストリームを使用して始める

普及している FPGA 開発キット用の利用可能なビットストリームを使用して、FPGA プログラミングなしでネットワークをプロトタイピングします。

MATLAB での FPGA ベースの推論

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

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

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

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

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

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

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

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

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 を生成します。プロトタイピングと量産展開のために同じディープラーニング プロセッサを再利用します。

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

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

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

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