FPGA開発日記

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

「Linuxのブートプロセスを見る」を購入

自作RISC-VシミュレータでLinuxをブートを試行しているのだが、相変わらずうまくいかない。 initramfsのところで止まってしまうのでまったく原因がつかめずにいるのだが、何らかの問題解決の糸口にになるかと思い以下の書籍を購入した。 新装改訂版 Linuxの…

「ゼロから作るディープラーニング②」を読む (6. ゲート付きRNN)

ゼロから作るDeep Learning ? ―自然言語処理編作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2018/07/21メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る 「ゼロから作るディープラーニング②」を購入した。 あまり内容を詳…

「ゼロから作るディープラーニング②」を読む (5. リカレントニューラルネットワーク(RNN))

ゼロから作るDeep Learning ? ―自然言語処理編作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2018/07/21メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る 「ゼロから作るディープラーニング②」を購入した。 あまり内容を詳…

RISC-Vの割り込みとタイマの仕組み

RISC-Vの割り込みについて。 RISC-Vのサポートしている割り込み・例外について こちらについては、一覧表が作られているので参照されたい。 図. RISC-Vのサポートしている割り込み・例外。(The RISC-V Instruction Set Manual Volume II: Privileged Archite…

Freedom-U-SDKで生成したLinuxバイナリを自作RISC-Vシミュレータで実行

HiFive Unleashedは高くて買えないのだけれども、RISC-V SDKであるFreedom-U-SDKを使ってみることにした。 これはデフォルトでRISC-V上で動作するLinuxの環境が乗っているようで、SDカードなど用意してLinuxをビルドすると、ちゃんとHiFiveで動作するらしい…

HiFive Unleashed向けのオープンソースRISC-V SDK Freedom-U-SDKの環境構築

HiFive Unleashedは高くて買えないのだけれども、RISC-V SDKであるFreedom-U-SDKを使ってみることにした。 というのは、どうにかしてまともにシミュレータで動かせるLinuxを用意して、自作RISC-VシミュレータでLinuxを立ち上げたい。 せっかくvmlinuxの最初…

「ゼロから作るディープラーニング②」を読む (4. 第4章 word2vecの高速化)

ゼロから作るDeep Learning ? ―自然言語処理編作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2018/07/21メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る 「ゼロから作るディープラーニング②」を購入した。 あまり内容を詳…

RISC-V SpikeシミュレータでC/C++のprintfを実現する仕組み (11. 自作RISC-VシミュレータでBBLとvmlinuxを起動する2)

UCBが開発しているRISC-VのシミュレータSpikeや、Rocket-ChipのRTLデザインは通常はシステムコールを持っていない。 つまり、当然ながらC言語でprintf("Hello World\n");などと書いても動作しないのだが、そこはコンパイラとフロントエンドサーバfesvr、pk(P…

RISC-V SpikeシミュレータでC/C++のprintfを実現する仕組み (10. 自作RISC-VシミュレータでBBLとvmlinuxを起動する)

UCBが開発しているRISC-VのシミュレータSpikeや、Rocket-ChipのRTLデザインは通常はシステムコールを持っていない。 つまり、当然ながらC言語でprintf("Hello World\n");などと書いても動作しないのだが、そこはコンパイラとフロントエンドサーバfesvr、pk(P…

RISC-V SpikeシミュレータでC/C++のprintfを実現する仕組み (9. RISC-Vはデバイスアクセスをどのようにして実現するか)

UCBが開発しているRISC-VのシミュレータSpikeや、Rocket-ChipのRTLデザインは通常はシステムコールを持っていない。 つまり、当然ながらC言語でprintf("Hello World\n");などと書いても動作しないのだが、そこはコンパイラとフロントエンドサーバfesvr、pk(P…

「ゼロから作るディープラーニング②」を読む (3. 第3章 word2vec)

ゼロから作るDeep Learning ? ―自然言語処理編作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2018/07/21メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る 「ゼロから作るディープラーニング②」を購入した。 あまり内容を詳…

「ゼロから作るディープラーニング②」を読む (2. 自然言語と単語の分散表現)

ゼロから作るDeep Learning ? ―自然言語処理編作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2018/07/21メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る 「ゼロから作るディープラーニング②」を購入した。 あまり内容を詳…

RISC-V SpikeシミュレータでC/C++のprintfを実現する仕組み (8. RISC-Vのシステムコールを自作ISS上で実装)

UCBが開発しているRISC-VのシミュレータSpikeや、Rocket-ChipのRTLデザインは通常はシステムコールを持っていない。 つまり、当然ながらC言語でprintf("Hello World\n");などと書いても動作しないのだが、そこはコンパイラとフロントエンドサーバfesvr、pk(P…

「ゼロから作るディープラーニング②」を購入 (1. ニューラルネットワークの復習)

ゼロから作るDeep Learning ? ―自然言語処理編作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2018/07/21メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る 「ゼロから作るディープラーニング②」を購入した。第1巻は一応完走…

NVDLAv2のインストール試行

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

RISC-V SpikeシミュレータでC/C++のprintfを実現する仕組み (7. RISC-Vのシステムコールとfesvr)

UCBが開発しているRISC-VのシミュレータSpikeや、Rocket-ChipのRTLデザインは通常はシステムコールを持っていない。 つまり、当然ながらC言語でprintf("Hello World\n");などと書いても動作しないのだが、そこはコンパイラとフロントエンドサーバfesvr、pk(P…

Googleの量子コンピュータNISQ向けオープンソースフレームワークCirqを試す (1. インストールとチュートリアル)

Googleの量子コンピュータフレームワークだ!Q#も一応トライしたが、マスターする前にある程度動かした状態で投げ出してしまっていた。 GitHub github.com ドキュメント Welcome to Cirq's documenttation! Welcome to Cirq’s documentation! — Cirq 0.1 doc…

RISC-V SpikeシミュレータでC/C++のprintfを実現する仕組み (6. ファイルシステムの呼び出し)

Hello Worldのプログラムを動かしながら、RISC-V Spikeシミュレータのログを追っていき、RISC-Vのブートシーケンスを追っていく、その3。 Spikeシミュレータはファイルの呼び出しもできる。これを実現しているのは、Spikeとは外部に接続されているpk(Proxy K…

Spectre 1.1 (CVE-2018-3693) の論文を読む

CPU

Spectre 1.1/1.2の論文は早くから公開されており、Intel / Armも対策のためのWhitePaperを出している。 どいう問題なのか理解するために読んでみた。 Speculative Buffer Overflows: Attacks and Defenses https://arxiv.org/pdf/1807.03757.pdf この論文、…

AWS上で動作するRISC-VチップFireSimのチュートリアルを試す 7. FireSimのFPGAレベルシミュレーション

FireSim v1.2でベンチマークプログラムを動かそうとしているのだが、どうもFPGAレベルでのシミュレーションでないと動かない? FPGAレベルでのRTLシミュレーションは、Amazon AWS環境でないと動かない気がする。 F1インスタンスで使用しているVU9Pのデザイン…

AWS上で動作するRISC-VチップFireSimのチュートリアルを試す 6. FireSimのシミュレーション環境解析

FireSim v1.2でベンチマークプログラムを動かそうとしているのだが、なかなかうまく動かない。 NoNIC環境 (FireSim Rocket-Chip Standalone環境)の場合 これは簡単だ。riscv-testsの環境でテストパタンをビルドして、それを持ってくれば簡単なC言語のプログ…

WindowsでX-Server越しにEmacsを立ち上げると初期画面がおかしくなる件

Emacsが大好きである。好きすぎてありとあらゆる環境でEmacsを使っているのだが、どうも最近様子がおかしい。 最新のEmacsを使うと、初期画面の大きさがおかしくなる。 いろいろと環境を変えながら調査していると、Virtual BoxからXクライアントを通じてEmac…

AWS上で動作するRISC-VチップFireSimのチュートリアルを試す 5. FireSim v1.2 を試行する

FireSim v1.2が公開された。主な変更点としては、Rocket-ChipだけでなくBOOMにも対応したとのことなので試行してみよう。 github.com FireSim v1.2環境をCloneする FireSimのリポジトリを、Tag付きでCloneする。さすがにriscv-toolsは取ってこなくても良いと…

ROP(Return-Oriented Programming)についての勉強

Spectre 1.1 / Spectre 1.2 についての論文を読んでいるのだが、その中でROP(Return-Oriented Programming)というものが登場しており、どんなものかわからなかったので調べてみた。 具体的には、プログラムのスタックがオーバフローすることにより悪意のある…

FireSimのRTLシミュレーション環境を試す(1. MIDAS-Level環境でのベンチマークシミュレーション)

Amazon AWS F1インスタンス上で動作するRocket-Chip環境、FireSimはRTLシミュレーション環境が用意されている。 チュートリアルを試しながら、さっそく実行してみよう。 Debugging & Testing with RTL Simulation Debugging & Testing with RTL Simulation —…

MKDocsを使ってFPGA開発日記の記事まとめページを作り直した

初めて知ったのだが、MKDocsはGoogleっぽいページを作ることができるサイトだ。 これまではGitHub PagesでMarkdownを直接書いて作っていたのだが、MKDocsはMarkdownを使って簡単にかっこいいページを作ることができるのでやってみた。 ちなみに、MKDocsでの…

TLBleed : Trasnlation Leak-aside Buffer の論文を読む

CPU

TLBleedの論文がやっと発表された。The Registerで記事が出てから論文が出てくるまでずっと監視していたのだが、随分と時間がかかったね。 www.vusec.net このTLBleedの論文非常に長いので読むのがつかれるし、あまりセキュリティの知識とか無いので大変なの…

TensorFlow+Kerasに入門(9. Keras2のMNISTサンプルに対応)

Keras2の簡単な例題モデルとしてこれまではCIFAR-10を使っていたが、一応MNISTも対応しておきたい。 Keras2のmnist_cnn.pyが動作するように対応を実施した。 結論から言うと機能が足りておらずすぐには動作しなかった。keras2cppにいろいろと機能を追加した…

RISC-VのZedBoard環境が動作しなくなっている問題

しばらく前から、RISC-VをZedBoardで動作させるための環境fpga-zynqリポジトリが動作しなくなっている状態であった。 (これは私も確認していた)。 GitHub Issueにもあげられており、しばらく監視していたのだが全く反応がないので諦めていたのだがこの度修正…

TensorFlow+Kerasに入門(8. RISC-V Spike ISS でkeras2cppを動作させる)

前回まででx86上でのkeras2cppの改造はひとまず完成したので、とりあえず目的のRISC-Vアーキテクチャへの移植を行ってみたい。 移植と言っても、GCCのターゲットを変えてリコンパイルするだけである。 あとはRISC-VのISSであるSpikeで動作させるだけだ。 run…