2025-04-01から1ヶ月間の記事一覧
SpikeでLinux向けにコンパイルしたバイナリをどうにかして動かすということにあたり、とりあえずまずはSpikeでLinuxを立ち上げる方法を確立するというところから始めることにした。 SpikeでLinuxをブートさせるためには、以下のことが必要となる。 Spikeをビ…
SpikeでLinux向けにコンパイルしたバイナリをどうにかして動かせないかということを試している。 手順としてはこうだ: ユーザプログラムを riscv64-unknown-linux-gnu-gxxでコンパイルする。 Linuxのイメージと、fw_jump.elf を用意し、Linuxをブートさせる…
いろいろ調査して、Whisperで動かすためにはいろんなことが必要だとわかった。 Whisperで動かすためには、基本的に riscv64-unknown-elf-gxx でコンパイルする必要がある。どうにも、GitHubのページを調べて、これまでの経験からも、riscv64-unknown-elf-gcc…
LLVMでビルドしたバイナリをWhisperで流してみる。 #include <stdio.h> int main(int argc, char **argv) { printf("Hello World\n"); if (argc > 1) { printf("%s\n", argv[1]); } return 0; } /home/msyksphinz/llvm/LLVM-20.1.2-Linux-X64/bin/clang --target=risc</stdio.h>…
SPECを動かすのに、Whisperを試すことにした。 WhisperはSpikeかそれ以上に様々なオプションを持っているシミュレータだ。 github.com ビルド手順: Whisper自体をビルドする前に、先にBoostをコンパイルする。 curl -L https://archives.boost.io/release/1…
RISC-V勉強会の発表資料をSpeakerDeckにアップロードしました。 speakerdeck.com RISC-V勉強会の情報はこちら。 risc-v.connpass.com
RISC-V バイナリを QEMU で動作させる試行の続き。 もうちょっと改造して、QEMUでの動作が一発で確認できるようにする。 all: perlbench sgcc mcf omnetpp xalancbmk x264 deepsjeng leela xz specrand include perlbench.mk include sgcc.mk include mcf.mk…
RISC-V バイナリを QEMU で動作させる試行の続き。 LLVMコンフィグレーションでRISC-Vバイナリとしてコンパイルして、QEMUで動かそう。 チマチマ実行コマンドを追加していく。 x264の実行については1つ注意が必要だ。BuckBunny.yuv を先に生成する必要がある…
RISC-V バイナリを QEMU で動作させる試行の続き。 LLVMコンフィグレーションでRISC-Vバイナリとしてコンパイルして、QEMUで動かそう。 チマチマ実行コマンドを追加していく。 こんな感じで。 SPEED_PERLBENCH_DIR = $(BASE_DIR)/600.perlbench_s SPEED_PERL…
RISC-V バイナリを QEMU で動作させる試行の続き。 SPEC2017 は CPU のベンチマークとして広く使われているスイートである。 本記事では RISC-V アーキテクチャ向けに LLVM コンパイラを使用して SPEC2017 をビルドする手順を構築する。 spec2017のconfig/デ…
RISC-V バイナリを QEMU で動作させる試行の続き。 GCCだと-O3オプションで落ちてしまうので、LLVMを試してみよう。 configファイルに以下を追加する。 % define model --target=riscv64-unknown-linux-gnu -march=rv64gc --sysroot=/home/msyksphinz/riscv6…
RISC-V バイナリを QEMU で動作させる試行の続き。 フローがだいたい構築し出来てきたので、コマンドを用意していこうと思う。 perlbenchについてはこんな感じかな。 cd /home/msyksphinz/spec2017/benchspec/CPU/502.gcc_r/data/train/input && \ qemu-risc…
gitを使用する際、複数のリポジトリを扱っていると、リポジトリごとに異なる設定を適用したいケースがある。 例えば、プライベートのリポジトリと会社のリポジトリで異なるユーザー名やメールアドレスを使い分けたい場合だ。 そのほかにも、例えば複数のリモ…
次は、SPEC2017のバイナリを作成して、シミュレータなどで動かしてみることを考える。 そのためには、RISC-V向けConfigの作成が必要だ。 spec2017_work/config/myriscv.cfg : config/Example-gcc-linux-x86.cfg との差分は以下だ。 115c118 < % define gcc_d…
ちょっといろいろ調べ物をしていて、gitリポジトリを移動したり、複数の場所にある同一リポジトリを同期化するときに、git bundleを使用すると便利そうだったので、その方法をまとめておく。 GitHubのbundleコマンドは、複数のGitリポジトリのコミット履歴や…