2018-06-01から1ヶ月間の記事一覧
Freedom SoCのデバッグをしたいので、ARMのJTAG Debuggerを購入した。だいたい5000円くらい。 Strawberry Linuxで購入できるとのことだけど、クレジットカードに対応していなくて代引きのみ。 そんなの仕事してる最中にどうやって払えっていうんだよ! とい…
zapccは先日発表されたClangをベースとしたコンパイラである。基本的な高速化の手法についてはいろんなところで公開されているのでそちらをチェックして欲しい。 サーバクライアント方式にすることで高速化を図っているということなのだが、実際にはどの程度…
前回の記事で、どうにかFixedInputStreamが実行できるようになったが、これはテストベンチまですべてScalaで記述して常に同じ動作を繰り返す環境になっている。 これは嫌なので、Verilogなどを接続して外部から引数を渡し、自由にシミュレーションを実行でき…
2018/11/01追記。だいぶ増えてきた。表更新。 2019/04/17追記。S21を追加。 U7, S7, E7 Series U74-MC U74 Standard S76-MC S76 Standard E76-MC(Main-Core) E76-MC(Sub-core) E76 Standard Core Type U74 RV64C S7 RV64IMAC RV64GC RV64GC RV64GC RV32IMAFC…
FireSimについてある程度動かしたので、今度はカスタマイズをしてみたい。 というわけで、FireSimの実際のデザイン部分であるFireChipを使ってみることにした。 オリジナルのデザインを追加してみることにした。 メモリマップのレジスタを作る 参考にしたの…
FireSimについてある程度動かしたので、今度はカスタマイズをしてみたい。 というわけで、Firesimの実際のデザイン部分であるFireChipを使ってみることにした。 Tutorial: Developing New Devices — FireSim documentation まずはデザインをForkしてダウンロ…
興味本位ではあるが、高速C++コンパイラとしてオープンソース化されたZapccが非常に気になっている。 LLVMがベースとなっていることだし、いつも新しいコンパイラプラットフォームが公開されたときはRISC-Vの対応について見てしまうので、アーキテクチャの移…
Twitterで知った、MicrosoftのFPGA向けのインオーダスカラプロセッサの論文が出ている。ターゲットとしてはデータフロー処理だ。 プロセッサの名前としてはEDGEという。ブラウザのEdgeではなくて、Explicit Data Graph Executionの略称である。 面白そうなの…
FireSimのチュートリアルを試す続き。前回はなぜかFireSimが起動せずに終わった。 色々調べていくと、FireSimを立ち上げる際のF1インスタンスの設定で、t1.nanoで生成したVPCとサブネットを使用しなければならなかった。 AWSコンソール上でこれを確認してF1…
AWSで動作するRISC-Vシミュレーション環境FireSimのチュートリアルその3. F1インスタンスにアクセスするために、生成したキーペアのfiresim.pemをホームディレクトリに配置しておく。 また、sshのキーと同様に、chmod 600 しておく。 $ chmod 600 ~/firesim…
Ubuntuが18.04 LTSになって、さっそくバージョンアップしてRISC-Vの環境を構築しようとしたのだけれども問題にぶち当たった。 RISCV-Toolsは以下のエントリでインストールの試行はしていたし、うまく行くことは確認していたのだけれども、Rocket-Chipの試行…
Hisa Ando氏のブログで知ったのだが、Spectre & Meltdownを防ぐマイクロアーキテクチャとしてSafeSpecという技術が発表されたので、これを読んでみることにした。 2.SpectreやMeltdownを防ぐSafeSpecマイクロアーキテクチャ 20180616 Boffins offer to mak…
FPGAの部屋のmarseeさんの記事を見て、TensorFlow+Kerasに入門してみた。 というかmarseeさんの記事で掲載されているソースコードをほとんどCopy & Pasteして実行してみているだけだが... TensorFlow+KerasでCifar10を学習するサンプルプログラムを実行して…
AWSで動作するRISC-Vシミュレーション環境FireSimのチュートリアルその2. [高度な詳細]を開き、テキストボックスに付録に示すようなテキストファイルを入力する。 ... 次にストレージを追加する。デフォルトでは75GBと設定されているが、これを300GBまで拡…
参考にしたのは以下。 Welcome to FireSim’s documentation! — FireSim documentation 初期セットアップ・インストール 最初にAWSのユーザグループを作成する。AWSのアカウントと支払を行っていればこのステップを実行する必要はない。 アカウントに必要なAW…
Hello Worldのプログラムを動かしながら、RISC-V Spikeシミュレータのログを追っていき、RISC-Vのブートシーケンスを追っていく、その2。 今回はRISC-Vプログラムのシステムコールの呼び出し部分 Spikeシミュレータの構造を調べているのだが、printf()などの…
プロセッサ構成はますますマルチコア化しており、同期処理や各プロセッサでの通信、データ共有をどのように行うかという問題は重要になっている。 ハードウェア・ソフトウェアには「メモリモデル」というものが定義されており、共有する変数をどのようにして…
Hello Worldのプログラムを動かしながら、RISC-V Spikeシミュレータのログを追っていき、RISC-Vのブートシーケンスを追っていく、その2。 今回はRISC-Vプログラムのロード部分。 parse_args()により関数をコールを行う。 riscv-pk/pk/pk.c static size_t par…
Hello Worldのプログラムを動かしながら、RISC-V Spikeシミュレータのログを追っていき、RISC-Vのブートシーケンスを追っていく。 riscv-isa-sim/riscv/sim.cc 内のリセットベクタが最初に動作する。 riscv-isa-sim/riscv/sim.cc void sim_t::make_dtb() { .…
RISC-Vシミュレータにはelfファイルを読み込ませているのだが、elfファイルにはいろんな情報が取り込まれており、例えば テキスト領域の関数のヘッダアドレス グローバルデータが格納されているアドレス などの情報が格納されている。 シミュレータは、テキ…
RISC-Vのシミュレータは、シミュレーション対象のプログラムのElfファイル以外に、いくつかの外部ライブラリをロードしている。 RISC-V の Device Tree (SpikeのビルドにDevice Tree Compiler が必要なのはこのためだ) RISC-V の Proxy Kernel (I/Oなどの本…
ビットコインの勉強の最中に、コンセンサスアルゴリズムについていろいろと調べていたのだが、じゃあ一般的に分散システムでコンセンサスってどうやってとるんだろう?ということに興味をもってコンセンサスアルゴリズムというものを知った。 最初は、ちょっ…
FPGAの部屋のmarseeさんの記事を見て、TensorFlow+Kerasに入門してみた。 というかmarseeさんの記事で掲載されているソースコードをほとんどCopy & Pasteして実行してみているだけだが... TensorFlow+KerasでCifar10を学習するサンプルプログラムを実行して…
RISC-VのCompressed命令について理解したので、自作ISSへの実装を進めた。 Compressed 命令の仕様については以下のまとめた。 msyksphinz.hatenablog.com 前回のRV64版のCompressed命令の実装についてはとりあえず終わったので、次はRV32版のCompressed命令…
RISC-VのCompressed命令について理解したので、自作ISSへの実装を進めた。 Compressed 命令の仕様については以下のまとめた。 msyksphinz.hatenablog.com というわけで、実装自体はテンプレートに従って追加していったのだが、いくつか注意しなければならな…
FPGAの部屋のmarseeさんの記事を見て、TensorFlow+Kerasに入門してみた。 というかmarseeさんの記事で掲載されているソースコードをほとんどCopy & Pasteして実行してみているだけだが... 前回でKerasでMNISTの学習ができるようになったので、次はモデルをJS…
「ブロックチェーン・プログラミング」第2章はビットコインの基本を復習しておく。 Mastering Bitcoinを読んでいるので、ある程度理解できるのでサクサク読み進めていく。 今回は第4章の途中まで。第3章は暗号技術でちょっと難しいのでとりあえず読み飛ばす…
FPGAの部屋のmarseeさんの記事を見て、TensorFlow+Kerasに入門してみた。 というかmarseeさんの記事で掲載されているソースコードをほとんどCopy & Pasteして実行してみているだけだが... 参考記事 TensorFlow + Kerasを使ってみた GitHub : yampy / machine…
「ブロックチェーン・プログラミング」第2章はビットコインの基本を復習しておく。 Mastering Bitcoinを読んでいるので、ある程度理解できるのでサクサク読み進めていく。 ブロックチェーン・プログラミング 仮想通貨入門 (KS情報科学専門書)作者: 山崎重一…
RISC-V Spikeシミュレータでは printf() や std::cout を使ってもコンソールで出力することができる。 test_output.c #include <stdio.h> int main () { printf ("Hello World, C\n"); return 0; } test_output.cpp #include <iostream> int main () { std::cout << "Hello Worl</iostream></stdio.h>…