FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

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メディア: ペーパーバッ…

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.3章 多層パーセプトロン、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク)

ヘネパタ第6版こと、"Computer Architecture 6th Edition" では、第7章でドメイン固有アーキテクチャの章が新設された。 これを機会に、しっかり読んでいこう。 Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series…

Computer Architecture 6th Editionの7章"Domain-Specific Architecture" を読む (7.3章 DNNのニューロン・トレーニングと推論)

ヘネパタ第6版こと、"Computer Architecture 6th Edition" では、第7章でドメイン固有アーキテクチャの章が新設された。 これを機会に、しっかり読んでいこう。 Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series…

あけましておめでとうございます 2018

あけましておめでとうございます。本年も、「FPGA開発日記」をよろしくおねがい致します。 昨年は、 RISC-Vをベースとした技術の向上。ISSやRTL設計、RISC-Vを使ったハードウェアの開発 ディープラーニングなどの理解を深める RISC-V系のイベントで2回発表。…

年末だしブログの情報を回収してワードクラウドを作ろう2017

年末年始なので、今年一年はどうだったかな、ということでまとめてみよう。 今年の元旦には、こんな目標を立てていたのだった。 msyksphinz.hatenablog.com ZedBoardを用いて、RISC-VとARMの連携など(オペレーティングシステム、ソフトウェアスタックも含む)…

Design Solution Forum とRISC-V Tokyo 2017 の発表資料を公開しました

今年開催されたRISC-Vに関係するイベント、 "Design Solution Forum 2017" および "RISC-V Tokyo 2017" で使用した発表資料を公開しようと思います。 Design Solution Forumについては既に登録者限定で公開されているけど、特に隠す必要はないので公開してし…

RISC-Vの連載をInterface誌に寄稿しました(2018年2月号から)

CQ出版のInterface誌2018年2月号から、RISC-Vについて連載を寄稿しました。タイトルは、「オープンソースCPU「RISC-V」の研究」です。 結構な文章と図を寄稿したのだけれども、紙面の都合上で連載になったらしい。何回続くのかはわかりませんが、ゆっくりと…

「半導体・ハードウェア開発 2017」Advent Calendarが終了しました

qiita.com 12/01から始めた「半導体・ハードウェア開発 2017」Advent Calendar、全ての日でエントリが埋まり、無事に終了しました。 まずはご協力頂いた皆様、どうもありがとうございました。皆様のご協力がなければ、25日全てを埋めることは不可能でした。…

Google Voice Kitを使ってみる(3. 音声→文字を認識するアプリケーションの作成)

Google Voice Kitを使ってみる、続き。 前回、アプリケーションが動作するようになったので、自分で音声認識のプログラムなどを作ってみたい。 以下のサイトを参考にして、プログラムを作成した。ちなみ、Google Speech APIを使用するために課金の情報を入力…

Google Voice Kitを使ってみる(2. サンプルプログラムの実行)

Google Voice Kitを使ってみる、続き。 前回、組み立てが完了したので次にソフトウェアをダウンロードして実行する。 まず、MagPiのウェブサイトからISOファイルをダウンロードする。 MicroSDカード(4GB以上?)を用意し、EtcherでISOファイルを書き込む。 ai…

Google Voice Kitを使ってみる(1. 組み立て)

Google Voice Kit、前から欲しかったのだが、ついにAIY Projectsから発送され、自宅に到着した。 実際には先週には到着していたのだが、RISC-V Dayなど忙しさが重なり、試行できなかった。 土日でようやくトライできるようになったので、早速やってみよう。 …