FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス <a href="https://msyksphinz.github.io/github_pages/">

NVDLA

NVDLAのConvolution DMAが実行する畳み込みの手順の解析

NVDLAというか、畳み込み演算をどのようにハードウェアで実現するかということをさらに掘り下げている。 NVDLA : Unit Description Unit Description — NVDLA Documentation NVDLAのConvolution DMAは、以下のような画像に対して入力画像とカーネルを畳み込…

NVDLAの内部構成調査(6. Caffeのモデルを使ってNVDLAでMNISTを動かす)

前回はNVDLAを使ってCaffeのモデルを実行してみた。 ただし実行結果が分からないので何とか解析できるようにしたい。 nvdla_runtimeの実行オプションには--rawdumpオプションがあるので、これを使えば実行後の結果をダンプできるらしい。 # ./nvdla_runtime …

NVDLAの内部構成調査(5. NVDLA VPによるアプリケーション実行)

前回はCaffeをインストールして、LeNetを実行した結果をnvdla_compilerに食わせて、NVDLAのバイナリファイルを作成した。 これを実行するためには、NVDLA Virtual Platformを実行してLinuxを立ち上げ、そこでnvdlaを動作させるランタイムプログラムを実行し…

NVDLAの内部構成調査(4. NVDLA_compiler と Caffeデータの変換)

NVDLAの動かし方についてもう少しプログラミングモデルを解き明かしていきたいが、いかんせん内部レジスタの仕様を読み進めながらでは効率が悪くて良くない。 それに実際のニューラルネットワークを使いながらインタフェースを見ていかないと、意味が分から…

NVDLAの内部構成調査(3. プログラミングシーケンス, Register Description Language)

NVDLAの内部構成調査の続き。前回はNVDLAのBDMAについて調べたが、次は実際にConvolutionの操作を見ていかなければならない。 sanity3のテストパタンを見ると、大量のレジスタを設定してるのだが、それをいちいち調べていくのは大変だ。 まずは、NVDLAの基本…

NVDLAの内部構成調査(2. BDMAの使用方法について)

RISC-VのNVDLAがコラボしたり、NVDLAの調査も再度実施しなければならないと思ってきた。 riscv.org テストパタンの中で、sanity1 / sanity2 BDMAのテストパタンだ。 BDMAはいわゆるDMAのことなのだが、ディープラーニング向けのDMAよろしく、いろんな設定が…

NVDLAの内部構成調査(1. NVDLAのテストパタンの調査)

RISC-VのNVDLAがコラボしたり、NVDLAの調査も再度実施しなければならないと思ってきた。 riscv.org しかしNVDLAの内部構成やインテグレーションの方法など、あまり情報が整理されていない。 というわけで、NVDLAのリポジトリのテストパタンを解析して、どう…

NVDLAv2のインストール試行

いまさらながら、NVDLAv2のインストールを試行した。 開発環境はUbuntu 18.04LTSだ。使用したリビジョンは7cf6ad5a6e75f01aac1b0041288612e63a5999acを使用した。 github.com commit 7cf6ad5a6e75f01aac1b0041288612e63a5999ac (HEAD -> master, origin/mast…

NVDLA Virtual Platformの試行 (2. ビルド成功 → ログイン)

この記事は 半導体・ハードウェア開発 Advent Calendar 2017 - Qiita の16日目の記事です。 Advent-Calendarを埋めてくれるかた、今からでも募集中です!是非参加してください! 私一人では、クオリティのある記事を続けられそうにありません。。。(弱音) 目…

NVDLA Virtual Platformの試行 (1. ビルド試行 → 失敗)

この記事は 半導体・ハードウェア開発 Advent Calendar 2017 - Qiita の15日目の記事です。 Advent-Calendarを埋めてくれるかた、今からでも募集中です!是非参加してください! 私一人では、クオリティのある記事を続けられそうにありません。。。(弱音) 目…

NVIDIAのオープンソース ディープラーニングアクセラレータを試す(3. NVDLAの内部ブロック)

この記事は 半導体・ハードウェア開発 Advent Calendar 2017 - Qiita の13日目の記事です。 Advent-Calendarを埋めてくれるかた、今からでも募集中です!是非参加してください! 私一人では、クオリティのある記事を続けられそうにありません。。。(弱音) 目…

NVIDIAのオープンソース ディープラーニングアクセラレータを試す(2. Vivado Simulatorでの波形ダンプと階層解析)

NVDLAをVivado Simulatorで実行するときは、Vivadoの波形ダンプ機能を使ってシミュレーション結果を保存することが出来る。 cd nvdla_hw/verif/sim_vivado/ make build DUMP=1 make run TEST=sanity0 sanity0/work.top.wdb に、 Vivado Simulatorの実行結果…

NVIDIAのオープンソース ディープラーニングアクセラレータを試す(1. NVDLAのビルドとシミュレーション環境構築)

NVIDIAのオープンソース・ディープラーニングアクセラレータ「NVDLA」について調査したことをまとめる。 ハードウェア・ソフトウェアのイントロダクションについて NVDLA Primer NVDLA Primer — NVDLA Documentation msyksphinz.hatenablog.com msyksphinz.h…