FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2015-02-01から1ヶ月間の記事一覧

EEMBC、最新のCPUベンチマークプログラム「Coremark-Pro」発表

CPU

Benchmark Stresses Big Chips | EE Times EEMBCがCoremarkの新版を発表した。"Coremark-Pro"と呼ばれるこのベンチマークは、組み込み業界では既にデファクトスタンダードとなっている「Coremark」を改良したものである。 中身は複数のベンチマークセットか…

Rocket-Chip を ZedBoardにインプリしてLinuxを動作させる (Ubuntuで作業、FSBLを作るまで編)

とりあえず、まずはVivado 2014.4をUbuntuにインストールした。SDK 2014.4も一緒にインストールした。 対象Ubuntuは以下の通り。 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.…

Rocket-Chip を ZedBoardにインプリしてLinuxを動作させる (Cygwinでやったら失敗した編)

RISC-Vの実装として、Rocket-Chipがある。 ucb-bar/rocket ucb-bar/rocket · GitHub そして、このRocketはZynqプラットフォームで動作するように設計されている (そのためのラッパーがある)。 ucb-bar/fpga-zynq ucb-bar/fpga-zynq · GitHub これを使って、Z…

Interfaceのコンパイラ入門のビルドをやってみた(memsetで文句を言われたときの対処法)

GCC

以前MIPSのコンパイラでCoremarkをコンパイルしようとしたときに、-O3を使うと何故かmemsetが登場してリンク時エラーになる件について、 いろいろ試していたら、以下のオプションで消えるようになった。 -fno-tree-loop-distribute-patterns これを追加する…

Interfaceのコンパイラ入門のビルドをやってみた(MIPS: 成功編)

GCC

こちらはMIPS。手修正なしでビルドできる。 Binutilsのインストール: ../binutils-2.24/configure --target=mipsel-unknown-elf --disable-nls --enable-gold --prefix=/home/masayuki/gcc_mips make make install GCCのインストール(1回目) ../gcc-4.9.2/co…

Interfaceのコンパイラ入門のビルドをやってみた(ARM: 成功編)

GCC

Interface (インターフェース) 2015年 03月号作者: -,インターフェース編集部出版社/メーカー: CQ出版発売日: 2015/01/24メディア: 雑誌この商品を含むブログを見る 前回、コンパイルできなかったのはBinutilsとGCCのインストール位置が違っていたからだった…

Interfaceのコンパイラ入門のビルドをやってみた(途中)

GCC

Interface (インターフェース) 2015年 03月号作者: -,インターフェース編集部出版社/メーカー: CQ出版発売日: 2015/01/24メディア: 雑誌この商品を含むブログを見る 2015年3月号が発売されたのはずいぶん前な気がする。まあ、買ったのもずいぶん前なんだけど…

アウトオブオーダのCPUを作ろう - 性能向上作戦あれこれ(ボトルネック解析2) -

CPU

さて、もう一度CoreMarkの100サイクルずつの命令実行数を見てみよう。 次は1000サイクルずつの命令実行数。 1000サイクルの方が綺麗だねえ。 1000サイクルで、良くて800命令くらいで推移している。つまり1サイクル1命令ですら動けていないということ。ぬうう…

アウトオブオーダのCPUを作ろう - ロードバッファによるメモリアクセス数削減

CPU

一般的に行なわれていることだが、ロードストアユニットの側には、データキャッシュが搭載されており、隣接する既にロードされている値があれば、キャッシュを参照することでわざわざCPUの外にアクセスすることなくデータをレジスタに格納することができる。…

ZedBoard向けYoctoのビルド (3)

ZedBoardにダウンロードするために、SDカードのイメージを作成する。 まずはSDカードを用意するところからだ。僕の場合はUbuntu LinuxをVirtualBox上で動かしているので、VirtualBox上でSDカードを認識させるところから初める。 dmesgをすると/dev/sdbに認識…

ZedBoard向けYoctoのビルド (2)

ZedBoard向けYoctoのビルド (1) - FPGA開発日記 続き。ビルドは完了したので、実機で動かすためには何が必要なのかを調査してみる。 必要なのは、 * uImage * core-image-minimal-zedboard-zynq7.tar.gz * zedboard-zynq.dtb * BOOT.BIN らしい。上の3つは、…

SkipListの勉強

みんな、これ読んだ? MIT、大規模マルチコアCPUの効率を向上させるデータ構造を開発 | スラッシュドット・ジャパン IT MIT、大規模マルチコアCPUの効率を向上させるデータ構造を開発 | スラッシュドット・ジャパン IT SprayListというアルゴリズム、大規模…

アウトオブオーダのCPUを作ろう - 性能向上作戦あれこれ(ボトルネック解析) -

CPU

大分性能を上げてきたが、まだまだ性能向上の余地がある、というか現時点では大鑑巨砲のくせに性能が低すぎる。 どこがボトルネックになるか見てみる。 現状では、パイプライントレースとして、以下のようなログ(コミットログのみ列を抜粋)を出力している。 …

アウトオブオーダのCPUを作ろう - 性能向上作戦あれこれ(分岐予測構成2) -

CPU

最終的に搭載した分岐予測の構成は一般的な二段階の分岐予測だ。4つのステートマシンを持ってるやつな。 これについては、一般的なので別に何も言及することはない。まあ、それ相応に性能向上するよね、という感じだ。 ちょっと悩んだのだが、ステートのどこ…

アウトオブオーダのCPUを作ろう - 性能向上作戦あれこれ(分岐予測構成1) -

CPU

アウトオブオーダCPUにおいて、性能向上の生命線となるのが、分岐予測だ。現在自作CPUには、2種類の分岐予測命令を搭載させている。 * 命令分類による静的分岐予測 (beql / bnel 命令などのLikely命令による分岐) * 分岐結果に基く動的分岐予測 (beq / bne …

アウトオブオーダのCPUを作ろう - 性能向上作戦あれこれ(RSキュー深さ解析) -

CPU

趣味でアウトオブオーダのCPUを作っている。アーキテクチャとしては、一番良く知っているMIPSだ。 現状の構成は以下の通り。4命令同時デコード、整数系は2命令同時演算可能、分岐命令とロードストア命令は別々に発行キューを持っており、アウトオブオーダ発…

ZedBoard向けYoctoのビルド (1)

ZedBoardでLinuxを動かしたいので、手始めに情報が沢山(といってもそんなに無い)あるYocto Project のLinuxを動作させてみることにした。 ちなみに、既にこれはmarseeさんがやられている話なので、それの二番煎じにすぎない。 ↓のあたりである。 FPGAの部屋 …

RISC-V向けLinuxをビルドしてSpikeで動かす

暫く前だが、RISC-V向けLinuxがリリースされていた。 ucb-bar/riscv-linux · GitHub 早速ビルドして使ってみよう! もうRISC-V向けのコンパイラとかはビルドして持っているので、本当に、上記のgithubに書いてあることを愚直にやっていけば良い。 最終的に、L…

GPGPU with OpenCL 高速化技法の勉強

GPGPUを手に入れたので、OpenCLの本を買って勉強している。とりあえずこれを買った(3500円もして痛い出費だったが...) 改訂新版 OpenCL入門 1.2対応 マルチコアCPU・GPUのための並列プログラミング作者: 株式会社フィックスターズ,土山了士,中村孝史,飯塚拓…

Xilinxのデバイスドライバ向け関数の勉強

Zedboard のチュートリアルを進めている。とりあえず、Xilinxのデバイスドライバを叩いてLEDを光らせたり、タイマを使ったり、スイッチから値を読む方法について勉強した。 結構初期化とか、値を読み込むのとかが大変だ。 XStatus XGpio_Initialize (XGpio *…

Coremark実行結果解析中に分かったこと、分岐予測と実装容易性

自作MIPSプロセッサを作っている。4命令同時デコード、(理論上)4つの処理(演算、演算、分岐、メモリアクセス)を同時に実行可能なアウトオブオーダプロセッサだ (持っているSP605に入らないくらいでかい...)。 今日、いろいろバグを修正しながら性能測定をし…

GPUを手にいれた

会社の先輩が、「もう使わなくなった」とか言ってもってきたGPUを貰った。 これは良いチャンスだと思うので、GPUについてもいろいろ勉強していきたいと思う。 nVIDIA GeForce 780Ti Kepler テクノロジー搭載 GTX 780 Ti グラフィックスカード| GeForce | NVI…

ZedBoard用coremarkソースを公開します

ZedBoard用Coremarkのソースで、ZedBoard用に書き換えたファイルのみ公開す。 具体的には、移植用のディレクトリ core_portme.c と core_portme.h だ。これらは、coremark_v1.0/linux をコピーして、coremark_v1.0/zynq として編集している。 core_portme.c …

ZedBoard で Coremark

Coremark は EEMBC で配布されている、無料のCPU性能測定ベンチマークだ。 複数のアプリケーションセットで構成されており、ITERATION回数を指定して特定秒数の間に何回イタレーションを回せるかで性能が決定される。 また、クロック周波数に依存した値だけ…

ZedBoardでHello World

ZedBoardを触り始めた。まずは一番最初のチュートリアル(LinuxっぽいのがUARTで立ち上がってLEDとか光らせたりSWの値を読み取ったりするやつ)は何もせずに動いたので、さっそくHello Worldをやってみた。 HelloWorld、というか ARMの部分が動かしてみたかっ…

ZedBoardとGalileo購入

前々から言っていた、ZedBoardを購入した。Digi-keyで注文したが、1つだけでは何だか勿体無い気がしたので、ついでにGalileoも買ってみた。 ZedBoardは昔友人に貸してもらって、使ってみたことはあるが、所有するのは始めてだ。 ついでにGalileo(ついでとい…

FPGAエクストリームコンピューティング第6回を見てきた

FPGAエクストリームコンピューティング第6回が当選したので、ドワンゴまで見に行ってきた。 FPGAエクストリーム・コンピューティング 第6回 (2015/02/01 13:30〜) FPGAエクストリーム・コンピューティング 第6回 - connpass こういう形のセミナーに参加する…