NNgen

20Q2.10B

NNgenとFPGAで作るニューラルネットワーク・アクセラレータ (5)

前回までは、学習済みモデルから、VGG-11 専用のハードウェアを構築したりしました。 第5回 (最終回) では、NNgen を活用するために、NNgen で利用可能な演算や入力の紹介をします。加算、減算、畳み込みといった基本的な演算から、Extern と呼ばれる CPU 上のソフトウェアと連携を可能にする特殊なものまで、いろいろあります。 データの入力 (placeholder, variable, constant) 演算の前に、データや重みを入力するインタフェースをみて...
20Q2.10B

NNgenとFPGAで作るニューラルネットワーク・アクセラレータ (4)

本コースの第3回目と第4回目では、NNgen とニューラルネットワーク・フレームワーク Pytorch を用いて、学習済みのモデルを SoC 型の FPGA の Ultra96-V2 上で動かしてみます。 今回の第4回は、PYNQ と Jupyter を用いて、Ultra96 上で、第3回で開発した VGG-11 専用回路を実際の FPGA システム上で動かします。 Ultra96 向け PYNQ の構築 まず、Ultra96 向けの PYNQ のリポジトリの Release...
20Q2.10B

NNgen と FPGA で作るニューラルネットワーク・アクセラレータ (3)

本コースの第3回目と第4回目では、NNgen とニューラルネットワーク・フレームワーク Pytorch を用いて、学習済みのモデルを SoC 型の FPGA の Ultra96-V2 上で動かしてみます。 今回の第3回では、学習済みモデルから FPGA のビットストリームを生成するところまで進めます。 環境構築 まずは、第1回ブログと同様に、NNgen を実行する環境を構築します。 Ubuntu 18.04.4 LTSmacOS 10.15.6 でも大丈夫です。Pyth...
20Q2.10B

NNgen と FPGA で作るニューラルネットワーク・アクセラレータ (2)

本コースの第2回目は、ニューラルネットワークのモデル記述からどのようにハードウェアが生成されるか、NNgen コンパイラの仕組みを紹介します。 NNgen の全体構成 第1回の記事からの再掲ですが、NNgen のコンパイラ構成は下図の通りです。 NNgen でハードウェア化するニューラルネットワークのモデル表現方法は、NNgen のオペレータを組み合わせて、プログラマが計算グラフを定義する方法と、Tensorflow や Pytorch などの一般的な DNN フレームワーク...
20Q2.10B

NNgen と FPGA で作るニューラルネットワーク・アクセラレータ (1)

はじめに 皆さん、こんにちは。本コースを担当する東京大学の高前田です。 私たちの研究室、CASYS (Laboratory for Computer Architecture and Systems) では、コンピュータアーキテクチャ (コンピュータの構造や設計技術、コンピュータそのものの在り方) を中心に、FPGA や専用ハードウェアによるカスタムコンピューティング、機械学習処理などの計算対象アルゴリズムとハードウェアの協調設計、ハードウェア設計を支援する高位合成コンパイラなど、...
タイトルとURLをコピーしました