FPGA開発日記

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

RISC-V

Rocket-Chip で命令レイテンシ・スループットを測定する環境の構築 (2. 浮動小数点命令系)

前回、RISC-V Rocket-Chip を使って、コアの基本体力である命令のレイテンシ・スループットを測定する環境作成に取り掛かった。 整数命令についてはおおよそ測定できるようになった。次は浮動小数点命令だ。四則演算など、基本的なところから手を付けて行き…

Rocket-Chip で命令レイテンシ・スループットを測定する環境の構築 (1. 整数命令系)

前回の記事で、Rocket-Chip で任意のプログラムを実行できるような環境が構築できた。 これでRocket-Chipの体力測定ができそうだ。 まずは各命令のレイテンシ・スループットを測定するのがよさそうだ。 命令の実行レイテンシやスループットは、一般的には、…

Rocket-Chip を改造して外部SRAMからプログラムをロードして実行する

RISC-V の実装である Rocket-Chip を改造して、外部にSRAMを接続してそこにプログラムを置き、RISC-V Rocket-Chipからプログラムをフェッチして実行できるようにする。 Rocket-Chipの概観はこうだ。 Rocket-Chip はTileと呼ばれるコアの部分と、そこから外へ…

APSにRISC-Vの記事を寄稿しました (第1回 RISC-V発展の背景)

APSさんにRISC-Vの記事を寄稿しました。たぶん1か月に1回くらいの更新です。 www.aps-web.jp 最初はRISC-Vの紹介から。初心者向けということなので、あまり深い話を乗せるつもりはありませんが、手の出しやすい範囲の、分かりやすい記事を書いていこうかと思…

Chiselを使ったビルド環境を作ってTileLinkの検証環境を作ってみる

Chisel で記述された TileLink は環境を構築するのが大変だ。 そこで、ChiselのTileLinkの実装を最大限活用しつつ、TileLinkのバスを使ったSoCモデルを作成して、モデルを作ってみよう。 github.com Chisel → FIRRTL → Verilog で必要なこと とりあえず試行…

RISC-VのアウトオブオーダプロセッサBOOMの構成について

BOOM(Berkeley Out-of-order Machine)には、基本的に以下の3種類の構成方式がある。 BOOMの情報源 情報源というか、githubくらいしか情報がないのである。 ucb-bar.github.io 図. BOOMv2のマイクロアーキテクチャ (https://content.riscv.org/wp-content/upl…

RISC-V BOOM2 を改造してSoC環境を構築する (1. BOOM2 のブートの仕組み解析)

BOOM (Berkeley Out-of-Order Machine) は、UCBが開発して管理(現在はRISC-VでHPC/AIの参入を発表しているEsperanto?)しているRISC-Vのアウトオブオーダプロセッサだ。 BOOM (Berkeley Out-of-Order Machine) について これまで、BOOMについては以下のような…

Freedom E300 Everywhere を改造して外部SRAMからプログラムをロードして実行する

RISC-V の実装であるFreedom E300 Everywhere を改造して、外部にSRAMを接続してそこにプログラムを置き、RISC-V Rocket-Chipからプログラムをフェッチして実行できるようにする。 オリジナルの構成では、Freedom E300 EverywhereではQSPIが乗っていた部分を…

Freechips Project Rocket-Core と SiFive Freedom E300 Everywhere Rocket-Core のブートシーケンス

RISC-Vの実装であるRocket-Chipは、RISC-Vの最新使用に追従しているため最初に見るべきデザインとしてはよくできているが、 Chiselで記述されており(初心者には)可読性が低い。 外部のSoCプラットフォームについて情報がない ことから、なかなかオリジナルの…

8th RISC-V Workshopはスペイン・バルセロナで開催・発表の募集が開始されました

第8回のRISC-V WorkshopのCall for Paperのアナウンスがありました。 日付 : 2018年5月7日 - 10日 場所 : バルセロナ・スーパーコンピューティング・センター (スペイン・バルセロナ) 発表形式 : 25分または12分 8th RISC-V Workshop Call for Papers - RISC…

SiFiveのFreedom E300 Platformを単体でカスタマイズできるようにする (4. TileLinkの解析とコンフィグレーション設定)

RISC-Vの実装であるRocket-Chipは、RISC-Vの最新使用に追従しているため最初に見るべきデザインとしてはよくできているが、 Chiselで記述されており(初心者には)可読性が低い。 外部のSoCプラットフォームについて情報がない ことから、なかなかオリジナルの…

CARRV 2018: Computer Architecture Research with RISC-V

Second Workshop on Computer Architecture Research with RISC-V (CARRV 2018) | carrv.github.io via kwout Second Workshop on Computer Architecture Research with RISC-V (CARRV 2018) | carrv.github.io 2018年の研究者向けRISC-V Workshopのウェブサ…

【翻訳】RISC-V ISAにまつわる11の作り話(誤解・勘違い・神話?)

riscv.org で紹介されていた、"11 Myths About the RISC-V ISA" が少し面白かったので紹介。 RISC-V についてあまりわかっていない人のために、ありがちな誤解を解くための記事? なかなか面白いので、翻訳してみた。 ここで取り上げられているような、ひど…

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.…

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ハードウェアアクセラレータを実装(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…

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++のコードを使ってハードウェアの挙動をあらか…

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のプログラムを移植して、まずはアクセラレータを使わずに動作させたい。…

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

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

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

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

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

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

7th RISC-V Workshop の Vector Extension Proposal 概要

RISC-V 7th Workshopでは、Vector Extensionの説明がなされている。 The RISC-V Vector ISA https://content.riscv.org/wp-content/uploads/2017/12/Wed-1330-RISCVRogerEspasaVEXT-v4.pdf 資料を読みながらまとめてみる。追記の可能性あり。 RISC-V Vector …

RISC-VのCompression命令仕様の理解とISSの実装

RISC-Vのハードウェア仕様の中で、RV64GCとか、RV32IMACとか出てくるが、その中で"C"というのは"Compressed"命令ということで、命令長が16bitの短縮命令のことを指す。 サポートしているアーキテクチャの中で"C"が入っていれば、このCompressed 命令を動かす…

RISC-Vオープンソースコア Rocket-Chip, BOOMv1, BOOMv2 のサイクル性能比較

RISC-V Day Tokyo 2017お疲れさまでした。 私は午前中から適当なことを喋って、特にお金をもらっているわけでもないのにRISC-V Foundationとか、SiFiveのIPについてべた褒めをしてしまったのだった。 あとで何人かには聞かれたのだが、講演で使った資料には…

7th RISC-V workshopのアジェンダ公開 & 8th RISC-V workshopについて

11月28日から11月30日までミルピタス州のWestern Digital社で開催されていた7th RISC-V Workshopのアジェンダおよび発表資料が、riscv.orgに公開されています。 riscv.org 今回は発表量が非常に多く、分刻みのスケジュールとなっており内容も盛りだくさん。 …