FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2018-01-01から1ヶ月間の記事一覧

RISC-V FPGA-Zynq リポジトリのU-Bootの謎

RISC-V をFPGAで動かすにあたり必要な fpga-zynq リポジトリは、毎回Linuxをブートするにあたり以下のようなコマンドを入力してブートしている。 fatload mmc 0 0x3000000 uImage fatload mmc 0 0x2A00000 devicetree.dtb fatload mmc 0 0x1000000 uramdisk.…

量子コンピュータ向けのMicrosoftの新言語「Q#」の勉強

The qubit | Microsoft Docs via kwout 参考資料 www.youtube.com Qubit and Quantum Gates https://www.appi.keio.ac.jp/Itoh_group/abe/pdf/qc1.pdf Q#、というか、量子コンピュータについて勉強するためには、Microsoft のドキュメントを読むのがよさそう…

SiFive Webinar "Part III: Evaluating SiFive RISC-V Core IP" 資料

関連記事 SiFive Webinar "Part II: Introduction to SiFive RISC-V Core" 聴講 "An Introduction to RISC-V Architecture for Embedded Developers" 聴講 SiFiveのWebinarが更新されていた。 スケジュールは知っていたのだけれど、真夜中は遅すぎる。。。 …

Chiselを使ってMNISTハードウェアアクセラレータを実装(ReorderQueueデバッグと実機評価)

前回の続き。MNISTのハードウェアを作成してRISC-Vに接続し動作させる。 前回はReorderBufferを追加してアウトオブオーダ処理をインオーダ処理に変更し、デバッグを行った。 やはりChiselというか、FPGAでのデバッグは難しい。何が起きているのかわからない…

Chiselを使ってMNISTハードウェアアクセラレータを実装(ReorderQueue実装)

前回の続き。TileLinkがデータをインオーダで返してこない件、受信側でデータの並べ替えを担保しなければならない。 これには根本的な実装の変更が必要だなあ。 これまでは、データを受け取った順番に乗算器に流し込んでいた。 これは、リクエストしたデータ…

RISC-Vの連載第2回がインターフェース誌に掲載されました

第1回の時に書いた記事はこちら。 msyksphinz.hatenablog.com 第2回はRISC-Vの仕様について。ちなみにV拡張(SIMD)については、原稿を書いたのが去年の秋くらいなので載っていません。 詳細は以下を参照。 msyksphinz.hatenablog.com 命令セットの仕様って、…

Chiselを使ってMNISTハードウェアアクセラレータを実装(FPGAでデバッグ中 → 原因判明)

前回の続き。結局いろいろログを取り巻くって、TileLinkがデータをアウトオブオーダで返していることに気が付いていなかった。 これまでの自分の設計は、メモリリードがすべてインオーダで帰ってくることを前提にしたものだった。しまった。 msyksphinz.hate…

「ゼロから作る Deep Learning」のCNNの構造を読みとく(1. CNNの構造勉強中)

数学は苦手です。 「ゼロから作る Deep Learning」のCNNの章を一生懸命理解しようとしている。目標は、自分でC/C++などの言語でCNNを構築できるようになること。 それを組み込み機器などに移植するのが目標だ。 ゼロから作るDeep Learning ―Pythonで学ぶディ…

Chiselを使ってMNISTハードウェアアクセラレータを実装(FPGAでデバッグ中)

MNISTを、ハードウェアアクセラレータを使って高速化したい。 前回はFPGAで動作確認をしたが、MNISTは動いてくれなかった。 RTLシミュレーションで動いてFPGAで動かないというのは、なかなかデバッグがつらい。 まずは演算気の部分にパイプラインを挿入する…

Google Vocie Kit の Voice Assistant APIの日本語対応をやってみた

Google Voice Kitを使って遊んでいる。デフォルトではVoice Assistant APIが日本語対応していなかったのだが、他のWebサイトを参考にやってみた。 基本的には、以下のWebサイトを参考にすると簡単に日本語対応できる。 yuki-no-yabo.com yuki-no-yabo.com 上…

Chiselを使ってMNISTハードウェアアクセラレータを実装(FPGAで確認)

MNISTを、ハードウェアアクセラレータを使って高速化したい。 前回はChiselで初期実装を行った。シミュレーションをして、短いテストプログラムで動作確認をして、結構うまく動作するようにになったのでいよいよFPGAに書き込んで確認したい。 やってみよう。…

Amazon AMI でRISC-V Rocket-Chipを合成したい(微妙に挫折)

Rocket-ChipはXilinx FPGAを使って合成することができるが、Xilinx Vivadoと言えば、 Amazon AMI だ(身勝手)。 Amazon AMIのインスタンスを使えばVivadoをAWSで簡単に使用することができるらしい、と聞いて早速やってみた。 AWS Marketplace: FPGA Developer…

MIPSだって、Spectre & Meltdown (Meltdownはしない?)

MIPS.com でアナウンスが出ていた。最近はどこで使われているのか分からない、MIPSプロセッサでもやはりCPUの脆弱性は持っているようだ。 まあ、アウトオブオーダで動作すると基本的に問題になるはずなので、そりゃそうか。 MIPS: response on speculative e…

量子コンピュータ向けの Microsoft の新言語「Q#」を動かしてみる

量子コンピュータが話題ですね。量子アニーリングとか量子ゲートとか、全然わからないのですが、何となく文系の量子コンピューティングの本を読んで分かった気分になりました。 量子コンピュータが人工知能を加速する作者: 西森秀稔,大関真之出版社/メーカー…

Chiselを使ってMNISTハードウェアアクセラレータを実装(実装中)

前回までで、MNISTをハードウェアアクセラレータをどのように実装すれば良いか、RISC-Vの命令セットシミュレータ(ISS)を使って動作をシミュレーションし、プログラムを構築した。 次に、実際にハードウェアを作成する。コーディングにはChiselを使う。 なぜC…

RISC-V ISS Spike を使ってMNISTのハードウェアアクセラレーションを実装する

前回の続き、前回まででやっと環境が整ったので、MNISTの行列計算の部分をオフロードしてRoCCアクセラレータのシミュレーションを行う。 SpikeでRoCCアクセラレータを模擬するのは以下の操作だ。 行列積の1要素を計算するのに、1番目の行列の要素を行方向に…

RISC-V ISS Spike を使ってMNISTのハードウェアアクセラレーションをシミュレーションしたい

RISC-V の ISS であるSpikeは、RISC-Vの通常命令セットだけでなく、RoCCのアクセラレータをシミュレーションする機能も持っている。 この場合はアクセラレータはC++で記述する必要があるが、同じ挙動を示すC/C++のコードを使ってハードウェアの挙動をあらか…

「量子コンピュータが人工知能を加速する」を読了

量子コンピュータが最近少し話題なので、向学のためにも知識を身につけておきたいのだがいきなり技術的な話は分からない。 何から手を付けていけばいいのかわからないので、とりあえずAmazonで文系的な本を見つけて買って読んだ。 ちなみに購入したのはAmazo…

ゼロから学ぶ畳み込みニューラルネットワーク 調査中

RISC-V で MNIST を実行できるようになったので、次はCNNを実行してみたい。 多くのCNNのコードはPythonで記述してあるのだが、もう少しバイナリに近い言語で書いてあったほうが解析とRISC-Vの移植がやりやすい。 師匠のブログを読みながら、少しずつ進めて…

Rocket-ChipでMNISTのプログラムを動かす (2. RTLシミュレーション・FPGA動作)

Rocket-Chipでディープラーニング的なプログラムを動かして、RoCCのアクセラレータで高速化することができないか、いろいろ試行している。 まずは前哨戦として、C/C++で作成したMNISTのプログラムを動かしてRISC-Vで動作させたいと思っている。 RISC-Vでコン…

Rocket-ChipでMNISTのプログラムを動かす (1. コンパイルと Spikeによるシミュレーション)

Rocket-Chipでディープラーニング系のプログラムを動かしたいと思っている。 まずは、Rocket-Chipで通常のMNISTプログラムを移植して動かしていこう。 これまでに作ったHiFive1のMNISTのプログラムを移植して、まずはアクセラレータを使わずに動作させたい。…

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.7章 Pixel Visual Core, パーソナルモバイル画像処理ユニット 続き)

Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)作者: John L. Hennessy,David A. Patterson出版社/メーカー: Morgan Kaufmann発売日: 2017/12/07メディア: ペーパーバッ…

Chiselでオリジナルデザインを開発し、Verilogを生成する(1. Chisel-template を生成する)

Chiselを使ってオリジナルデザインを作成してみたい。とりあえず、ディープラーニングをターゲットとして、行列計算のためのモジュールをいろいろ作ってみたい。 まずは、Chisel単体で開発環境とテスト環境を構築するためにはどうしたらよいのだろうか。 い…

Rocket-Chipのブートシーケンスと内部構造の解析(1)

RISC-V の実装の一つである Rocket-Chip の解析を行いたいのだが、Chiselの実装が複雑で詳細の解析に阻まれており、なかなか進まない。 やりたいこととしては、現在のRocket-Chip Generatorの環境を利用せずに、Rocket-Chipの生成されたVerilogファイルだけ…

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.7章 Pixel Visual Core, パーソナルモバイル画像処理ユニット)

Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)作者: John L. Hennessy,David A. Patterson出版社/メーカー: Morgan Kaufmann発売日: 2017/12/07メディア: ペーパーバッ…

Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ

CPU

巷ではIntel, AMD, ARMを巻き込んだCPUのバグ "Meltdown", "Spectre" が話題です。 これらの問題、内容を読み進めていくと、コンピュータアーキテクチャにおける重要な要素を多く含んでいることが分かって来ました。 つまり、このCPUのセキュリティ問題を読…

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.6章 Intel Crest, 学習のためのデータセンタアクセラレータ)

Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)作者: John L. Hennessy,David A. Patterson出版社/メーカー: Morgan Kaufmann発売日: 2017/12/07メディア: ペーパーバッ…

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.5章 Microsoft Catapult, フレキシブルなデータセンタアクセラレータ)

Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)作者: John L. Hennessy,David A. Patterson出版社/メーカー: Morgan Kaufmann発売日: 2017/12/07メディア: ペーパーバッ…

SSDとメモリを購入

人権を購入した。人権はとても費用が掛かる。 これで我が家のメインメモリは32GBになり、ハードディスクからSSDデビューだ! (プライベートのSSDデビューは初めて) とりあえず、これまでのHDDは何だったのか。ベンチマークを取得してみると爆速になっている…

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.4章 Google's Tensor Processing Unit)

Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)作者: John L. Hennessy,David A. Patterson出版社/メーカー: Morgan Kaufmann発売日: 2017/12/07メディア: ペーパーバッ…