Deep Learning HDL Toolbox™ には、FPGA や SoC 上でディープラーニング ネットワークをプロトタイピングして実装するための関数とツールが用意されています。また、サポート対象の Xilinx® や Intel® FPGA および SoC デバイス上でさまざまなディープラーニング ネットワークを実行するために事前構築済みのビットストリームが提供されています。プロファイリング ツールおよび推定ツールを使用して、設計、性能、リソース使用量の間のトレードオフを探求することで、ディープラーニング ネットワークをカスタマイズすることができます。
Deep Learning HDL Toolbox を使用すると、ディープラーニング ネットワークのハードウェア実装をカスタマイズし、任意の FPGA 上で展開するためのポータブルで論理合成が可能な Verilog® および VHDL® コードを生成できます (HDL Coder™ と Simulink® が必要) 。
詳細を見る:
プログラム可能なディープラーニング プロセッサ
このツールボックスには、スケジューリング ロジックによって制御される汎用的な畳み込みと、全結合層を備えたディープラーニング プロセッサが含まれています。このディープラーニング プロセッサは、Deep Learning Toolbox™ を使用して開発されたネットワークの推論を FPGA ベースで実行します。高帯域幅のメモリインタフェースは、層および重みデータのメモリ転送を高速化します。
コンパイルと展開
ディープラーニング ネットワークを、ディープラーニング プロセッサで実行できるよう命令セットにコンパイルします。FPGA に展開し、デバイス上での実際の性能メトリクスをキャプチャしながら予測を実行します。
事前構築済みのビットストリームを使用して始める
普及している FPGA 開発キット用の利用可能なビットストリームを使用して、FPGA プログラミングなしでネットワークをプロトタイピングします。
展開用のネットワークの作成
Deep Learning Toolbox を使用して、オブジェクトの検出や分類などのタスク用にディープラーニング ネットワークの設計、学習、解析を開始します。また、他のフレームワークから学習済みのネットワークや層をインポートして開始することもできます。
FPGA に学習済みのネットワークを展開
学習済みのネットワークの準備ができたら、deploy
コマンドを使用して、イーサネットまたは JTAG インターフェイス経由でディープラーニング プロセッサを FPGA にプログラムします。次に、compile
コマンドを使用して、FPGA を再度プログラムすることなく、準備した学習済みのネットワーク用の命令セットを生成します。
MATLAB アプリケーションの一部として FPGA ベースの推論を実行
テストベンチ、前処理および後処理アルゴリズム、FPGA ベースのディープラーニング推論を含むアプリケーション全体を MATLAB® で実行します。MATLAB の単一コマンドである predict
コマンドは、FPGA 上で推論を実行し、結果を MATLAB ワークスペースに返します。
FPGA 推論のプロファイリング
FPGA 上で予測を実行しながら層レベルのレイテンシを測定し、性能のボトルネックを発見します。
ネットワーク設計の調整
プロファイル メトリクスを使用して、Deep Learning Toolbox でネットワーク構成を調整します。たとえば、ディープ ネットワーク デザイナーを使用して、層の追加、層の削除、または新しい接続を作成します。
ディープラーニングの量子化
ディープラーニング ネットワークを固定小数点表現に量子化することで、リソースの使用量を削減します。Model Quantization Library サポート パッケージを使用して、精度とリソース使用量とのトレードオフを解析します。
ディープラーニング プロセッサのカスタム構成
並列スレッド数や最大層サイズなど、ディープラーニング プロセッサを実装するためのハードウェア アーキテクチャのオプションを指定します。
論理合成可能な RTL の生成
さまざまな実装ワークフローやデバイスで使用するために、HDL Coder を使用して、ディープラーニング プロセッサから論理合成可能な RTL を生成します。プロトタイピングと量産展開のために同じディープラーニング プロセッサを再利用します。
統合のための IP コアの生成
HDL Coder がディープラーニング・プロセッサから RTL を生成する場合、SoC リファレンス設計に統合するための標準 AXI インターフェイスを備えた IP コアも生成します。