2017-07-01から1ヶ月間の記事一覧
これまだVivadoのプロジェクトの生成方法や、SDKの処理などについてtcl化する方法について調査してきた。 いろいろ試して、結局以下のQiitaの方法に則るのが一番いいという結論に至った。 qiita.com この中で、VivadoのブロックデザインはGUIで操作したもの…
FPGAマガジンNo.18はRISC-V特集「RISC-Vづくり」ということで、早速入手した。ちなみに、私は本文は何も寄稿してません。 雑誌の上においてあるHiFive1ボード2枚、うち1枚は私のだが壊してしまった。 最初は中森章さんのRISC-Vそのものについての解説。仕様…
わずか10~20年前、パーソナルコンピュータといえば日本の大手家電メーカがこぞって手を出していた分野であり、また国内家電量販店に並べてあるPCはほとんどが国産だった。 名立たる国内家電メーカは独自のPCを短いスパンでリリースし、国内のシェアも相当高…
AXIインタフェースに対して、RAMを実装していく。 github.com blockram_test_v1_0_S00_AXI.v // Add user logic here reg [C_S_AXI_DATA_WIDTH-1:0] mem_ram[1024-1: 0]; wire mem_wren, mem_rdenn; assign mem_wren = axi_wready && S_AXI_WVALID ; assign …
RISC-VのFoundation Memberの一人、"Krste Asanovic"のインタビュー記事が掲載されている。 普段このような細かいニュース記事をブログにすることはないのだけれども、この記事を読めばRISC-Vが何を狙っているのか良く分かるので、興味のある人は読んでほし…
Vivadoで生成したIPを接続してVivadoプロジェクトをビルドし、SDカードに書き込むことでブートできるようになった。 物理デバイスにアクセスしてBlockRAMとして制御できているか確認する。 書き込んだ値が読めている。またアドレス毎に別々に値が読み書きで…
ZedBoardのIPデザインに対して、BlockRAMのモジュールを挿入する。 BlockRAMの設計 AXI4のインタフェースを持ったBlockRAMデザインを設計する。AXI4のインタフェースは他のデザインから取ってくる。 github.com blockram_test_v1_0 - blockram_test_v1_0_S00…
XilinxのIP生成およびそのインテグレーションの方法って、ネット上にもほとんど情報が出ていなくて、みんなどうやってやってるんだと不思議に思いながら調査しているのだけれども。 Block Designを使わない場合はみんなソースファイルを突っ込んで合成してい…
HiFive1の試行を引き続き行っているが、たぶんこれ誰も大規模なプログラム流したことないのかな、というのが分かってきた(気がする)。 一枚目のボードを壊してしまったぽいのだが、2枚目のボードもちょっと大きめに配列を取ってコンパイル後、流したら不正終…
前の記事の続き。無事にThinkPad に HiFive1の環境を構築したのだが、やはりSPI経由でプログラムを書き込もうとすると書き込めない。 いろいろSiFiveのフォーラムを見ながら試行錯誤しているのだが、どうもまだ解決策が見つからない。これは最悪もう一枚HiFi…
HiFive1のボードを実験するのに、これまではWindows上のVirtualBoxにUbuntuをインストールし、その上でデバイスと接続していたのだが、時々調子が悪くなる。 解析するのも面倒なので、大昔のノートPC(ThinkPad X301)を取り出してUbuntuをインストールし、HiF…
Amazonで調べていたら、どうやら次のヘネパタが発売されるのを発見した。 Computer Architecture, Sixth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)作者: John L. Hennessy,David A. Patterson出…
Zynqを使ったカスタムデザインのIPが作りたくて、IPの生成方法をいろいろ調査しているのだが、どうもGUIを操作するものばかりでつまらない。 GUIの操作方法なんて一瞬で忘れてしまうので、tclとmakefileで一気に作れるような環境を用意しておきたい。 いろい…
HiFive1ボードはRISC-Vが動作する(おそらく世界で唯一商用の?)プロセッサボードである。このHiFive1ボードの仕様は以下のようになっている。 Microcontroller: SiFive Freedom E310 (FE310) SiFive E31 Coreplex 32bit RV32IMAC (整数演算のみ、乗除算ハー…
HiFive1ボードはRISC-Vが動作する(おそらく世界で唯一商用の?)プロセッサボードである。 このボードを使っていくつか試行してみたいことがあるのだが、久しぶりに立ち上げたので少しリハビリの意味も兼ねて整理しておく。 プログラムの開発には、SiFiveが公…
ところで、RISC-V Rocket-Chipをシミュレーションするとき、何気なくmakeを叩いて、 make CONFIG=DefaultConfig output/rv64ui-p-add.out とかして、勝手に実行されているけど、よく考えると具体的にどのようにして動作しているのか分からない。これを理解す…
RocketChipのリセットが解除されると、まずはBootROMへのフェッチが始まる。 BootROMは、TestDriver/TestHarness/ExampleRocketTop/bootromに格納されている。 まずはこの周辺の波形を見てみよう。最初にBootROMにアクセスするのは、0x00010040 がアクセスさ…
2017/09/05 TileLink Specification Ver.1.7 Draftが公開されていたので、追記しています。 RISC-V実装のRocket-Chipでは、足回りのインタフェースとしてTileLinkというインタフェースを使っている。ところがこれ、どれだけ検索しても詳細が出てこない。Tile…
RISC-VのUCB実装であるRocketChipはRISC-Vのプロセッサ実装の中で最も参考になるもので、例えばSoCに組み込むとなると真っ先に導入を考えるRISC-V IPの一つだ。 RocketChipはデフォルトで64ビット命令をサポートしており、シンプルなパイプラインながら性能…
CNTK 2.0のチュートリアルを試行する。 今回はある程度翻訳という形で実施してみた。だいぶ誤訳はあるだろうが、ザックリ概要をつかむという形でやっていきたい。 CNTK 103のチュートリアルは4編で構成されている。MNISTの数値認識のチュートリアルについて…
CNTK 2.0のチュートリアルを試行する。 今回はある程度翻訳という形で実施してみた。だいぶ誤訳はあるだろうが、ザックリ概要をつかむという形でやっていきたい。 github.com 以降の文章については、CNTK 2.0の翻訳を含んでいるが、誤訳を含んでいる可能性が…
RISC-Vにはriscv-testsというテストパタンセットが用意されており、これらを流すことによりRISC-Vのアーキテクチャとして正しく実装されているかどうかをチェックすることができるようになっている。 github.com 自作RISC-Vプロセッサにおいても、このパタン…
夏だ!夜になっても暑い!マラソンには最も適さない季節、夏の到来だ! 正直東京オリンピックなんて夏に開催してマラソンなんてできるとは思えないし、真夜中でも熱帯夜なら全然温度が下がらない。もう東京オリンピックのマラソンなんて東京マラソンで肩代わ…
前回、誤差逆伝搬法をlibfixmathライブラリを使って固定小数点化した。しかし逆に固定小数点化により性能が低下してしまっている。 やはりライブラリによるオーバヘッドではないだろうかということで、性能解析を行うことにした。 Google PerfによるPerforma…
誤差逆伝搬法を実装してMNISTの学習と認識プログラムをC言語でフルスクラッチで作る、その続き。 固定小数点化については、他社の作ったライブラリを使うほうが良い気がして来たので、調査をしていると以下のライブラリを見つけた。MITの作った固定小数点ラ…
誤差逆伝搬法を実装してMNISTの学習と認識プログラムをC言語でフルスクラッチで作る。 動作するコードは完成し、今度はこれを固定小数点化しなければならない。今回は固定小数点化の検討を行う。 double –> float で精度を確認する。 まず、これまでに実装し…
誤差逆伝搬法を実装してMNISTの学習と認識プログラムをC言語でフルスクラッチで作る、動作するコードは完成したのだが、最終的にはこれらのコードをマイコンで実行させたいし、もっと軽くしなければならない。 また現状の問題点として、C言語で書いたプログ…
面白そうな本が出版されたので購入した。「GPUを支える技術」だ。 GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] (WEB+DB PRESS plus)作者: Hisa Ando出版社/メーカー: 技術評論社発売日: 2017/06/30メディア: 単行本(ソフトカバー)この商品を…
こういうツールチェインが作りたいんだよなあ。見た目にも非常にきれいな、RISC-Vシミュレータツールセットだ。RISC-V命令セットからx86/64へのバイナリトランスレーション(JIT)もサポートしている。 RISC-Vのほしいツールチェイン群はすべて揃っているんじ…
msyksphinz.hatenablog.com 誤差逆伝搬法をC言語で実装していたのだが、Pythonの結果とどうしても合わない部分がある。それどころが、学習を続けていくとどんどん正解率が下がっていったのでデバッグをしていた。 ニューラルネットワークの難しいところは、…