Comments (17)
I have a similar error :
$make emu CONFIG=MinimalConfig EMU_THREADS=2 -j16
xxx
%Error: Invalid Option: --threads-dpi
from xiangshan.
Is there any more error information when it crashes?
Did you ctrl-c to kill the process? I see from the log
Killed
%Error: Command Failed
from xiangshan.
Is there any more error information when it crashes?
Did you ctrl-c to kill the process? I see from the log
Killed %Error: Command Failed
No more error info.
And I don't kill the process manually.
Killed
%Error: Command Failed
is printed automatically when it crashed.
from xiangshan.
Can you try a newer version of Verilator? Refer to Section Git Quick Install
on https://verilator.org/guide/latest/install.html.
v4.028 was released more than one year ago. We are currently using v4.204.
from xiangshan.
Can you try a newer version of Verilator? Refer to Section
Git Quick Install
on https://verilator.org/guide/latest/install.html.v4.028 was released more than one year ago. We are currently using v4.204.
Tried Verilator 4.204 2021-06-12 rev v4.204
, same error info.
username@100013000737:~/riscv/open_xiangshan/XiangShan$ make emu
time -a -o ./build/time.log verilator --cc --exe --top-module SimTop +define+VERILATOR=1 +define+PRINTF_COND=1 +define+RANDOMIZE_REG_INIT +define+RANDOMIZE_MEM_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_DELAY=0 -Wno-STMTDLY -Wno-WIDTH -I/home/username/riscv/open_xiangshan/XiangShan/build --x-assign unique -O3 -CFLAGS "-std=c++11 -static -Wall -I/home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator -I/home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common -I/home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest -DVERILATOR -Wno-maybe-uninitialized" -LDFLAGS "-lpthread -lSDL2 -ldl -lz" --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000
-o /home/username/riscv/open_xiangshan/XiangShan/build/emu -Mdir build/emu-compile build/SimTop.v ./src/test/vsrc/common/assert.v ./src/test/vsrc/common/difftest.v ./src/test/vsrc/common/ref.v ./src/test/vsrc/common/ram.v /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator/emu.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator/main.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator/snapshot.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/compress.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/uart.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/ram.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/common.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/axi4.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/sdcard.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/vga.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/flash.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/keyboard.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/device.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/difftest.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/goldenmem.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/ref.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/nemuproxy.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/interface.cpp
Killed
%Error: Command Failed /usr/local/bin/verilator_bin --cc --exe --top-module SimTop +define+VERILATOR=1 +define+PRINTF_COND=1 +define+RANDOMIZE_REG_INIT +define+RANDOMIZE_MEM_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_DELAY=0 -Wno-STMTDLY -Wno-WIDTH -I/home/username/riscv/open_xiangshan/XiangShan/build --x-assign unique -O3 -CFLAGS -std=c++11\ -static\ -Wall\ -I/home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator\ -I/home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common\ -I/home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest\ -DVERILATOR\ -Wno-maybe-uninitialized -LDFLAGS -lpthread\ -lSDL2\ -ldl\ -lz --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000 -o /home/username/riscv/open_xiangshan/XiangShan/build/emu -Mdir build/emu-compile build/SimTop.v ./src/test/vsrc/common/assert.v ./src/test/vsrc/common/difftest.v ./src/test/vsrc/common/ref.v ./src/test/vsrc/common/ram.v /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator/emu.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator/main.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/verilator/snapshot.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/compress.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/uart.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/ram.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/common.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/axi4.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/sdcard.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/vga.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/flash.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/keyboard.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/common/device.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/difftest.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/goldenmem.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/ref.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/nemuproxy.cpp /home/username/riscv/open_xiangshan/XiangShan/src/test/csrc/difftest/interface.cpp
make: *** [verilator.mk:107: build/emu-compile/VSimTop.mk] Error 137
from xiangshan.
What's the configurations of your machine? For example, cpu, memory, storage?
from xiangshan.
It's a laptop, WSL on Windows 10, Ubuntu 20.04.2 LTS, Intel Core i7-8565U @ 1.8GHz, 16.0 GB memory , 512GB SSD.
make verilog
succeed.
make emu
failed, and error info is here.
from xiangshan.
Tried on another machine: A cloud server, CentOS 8.2, 16.0 GB memory, 50GB SSD.
make verilog
succeed with export _JAVA_OPTIONS='-XX:-UseGCOverheadLimit -Xms256m -Xmx11g -Xss256K'
.
make emu
still error.
My environment
[user@VM-0-17-centos XiangShan]# verilator --version
Verilator 4.204 2021-06-12 rev v4.204
[user@VM-0-17-centos XiangShan]# java -version
openjdk version "11.0.11" 2021-04-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.11+9-LTS, mixed mode, sharing)
[user@VM-0-17-centos XiangShan]# g++ --version
g++ (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[user@VM-0-17-centos XiangShan]# mill --version
Mill Build Tool version 0.9.8
Java version: 1.8.0_292, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el8_4.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "Linux", version: 4.18.0-193.28.1.el8_2.x86_64, arch: amd64
Error output of make emu
.
Keyinfo is Error: Verilator threw signal 9. Suggest trying --debug --gdbbt
. And I found chipsalliance/rocket-chip#780, but I use the Verilator version 4.204 recommended by @poemonsense , so seems not problem with Verilator version.
[user@VM-0-17-centos XiangShan]# make emu
Sat, 10 Jul 2021 21:13:37 +0800
time -a -o ./build/time.log verilator --cc --exe --top-module SimTop +define+VERILATOR=1 +define+PRINTF_COND=1 +define+RANDOMIZE_REG_INIT +define+RAN
DOMIZE_MEM_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_DELAY=0 -Wno-STMTDLY -Wno-WIDTH -I/user/riscv/OpenXiangShan/XiangShan/build --x-as
sign unique -O3 -CFLAGS "-std=c++11 -static -Wall -I/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator -I/user/riscv/OpenXiangShan/XiangShan
/src/test/csrc/common -I/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest -DVERILATOR -Wno-maybe-uninitialized -DNUM_CORES=1" -LDFLAGS "-lpt
hread -lSDL2 -ldl -lz" --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000
-o /user/riscv/OpenXiangShan/XiangShan/build/emu -Mdir build/emu-compile build/SimTop.v ./src/test/vsrc/common/ref.v ./src/test/vsrc/common/a
ssert.v ./src/test/vsrc/common/difftest.v ./src/test/vsrc/common/ram.v /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/emu.cpp /user/risc
v/OpenXiangShan/XiangShan/src/test/csrc/verilator/snapshot.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/main.cpp /user/riscv/OpenX
iangShan/XiangShan/src/test/csrc/common/sdcard.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/uart.cpp /user/riscv/OpenXiangShan/XiangS
han/src/test/csrc/common/axi4.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/vga.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/
common/keyboard.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/device.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/ram.
cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/common.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/flash.cpp /user/risc
v/OpenXiangShan/XiangShan/src/test/csrc/common/compress.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/goldenmem.cpp /user/riscv/Open
XiangShan/XiangShan/src/test/csrc/difftest/interface.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/nemuproxy.cpp /user/riscv/OpenXia
ngShan/XiangShan/src/test/csrc/difftest/ref.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/difftest.cpp
%Error: Verilator threw signal 9. Suggest trying --debug --gdbbt
%Error: Command Failed /usr/local/bin/verilator_bin --cc --exe --top-module SimTop +define+VERILATOR=1 +define+PRINTF_COND=1 +define+RANDOMIZE_REG_IN
IT +define+RANDOMIZE_MEM_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_DELAY=0 -Wno-STMTDLY -Wno-WIDTH -I/user/riscv/OpenXiangShan/XiangSha
n/build --x-assign unique -O3 -CFLAGS -std=c++11\ -static\ -Wall\ -I/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator\ -I/user/riscv/OpenXi
angShan/XiangShan/src/test/csrc/common\ -I/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest\ -DVERILATOR\ -Wno-maybe-uninitialized\ -DNUM_CO
RES=1 -LDFLAGS -lpthread\ -lSDL2\ -ldl\ -lz --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000 -o /user/riscv/OpenXiangShan/Xiang
Shan/build/emu -Mdir build/emu-compile build/SimTop.v ./src/test/vsrc/common/ref.v ./src/test/vsrc/common/assert.v ./src/test/vsrc/common/difftest.v
./src/test/vsrc/common/ram.v /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/emu.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/ve
rilator/snapshot.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/main.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/sd
card.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/uart.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/axi4.cpp /user/ri
scv/OpenXiangShan/XiangShan/src/test/csrc/common/vga.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/keyboard.cpp /user/riscv/OpenXiangS
han/XiangShan/src/test/csrc/common/device.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/ram.cpp /user/riscv/OpenXiangShan/XiangShan/sr
c/test/csrc/common/common.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/flash.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/co
mmon/compress.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/goldenmem.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest
/interface.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/nemuproxy.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/re
f.cpp /user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/difftest.cpp
make: *** [verilator.mk:107: build/emu-compile/VSimTop.mk] Error 255
I tried add --debug --gdbbg
option to verilator, the error info is below.
From No stack.
, it seems not enough memory fot stack? Maybe similiar to nvdla/hw#112.
Any suggestions are appreciated.
- V3Unknown.cpp:489: unknownAll:
- V3Ast.cpp:1123: Dumping build/emu-compile/VSimTop_025_unknown.tree
- V3Inline.cpp:712: inlineAll:
Program terminated with signal SIGKILL, Killed.
The program no longer exists.
No stack.
%Error: export VERILATOR_ROOT=
%Error: gdb /usr/local/bin/verilator_bin_dbg --batch --quiet --return-child-result -ex "run --cc --exe --top-module SimTop +define+VERILATOR=1 +define+PRINTF_COND=1 +define+RANDOMIZE_REG_INIT +define+RANDOMIZE_MEM_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_DELAY=0 -Wno-STMTDLY -Wno-WIDTH -I/home/user/riscv/OpenXiangShan/XiangShan/build --x-assign unique -O3 -CFLAGS -std=c++11\ -static\ -Wall\ -I/home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator\ -I/home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common\ -I/home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest\ -DVERILATOR\ -Wno-maybe-uninitialized\ -DNUM_CORES=1 -LDFLAGS -lpthread\ -lSDL2\ -ldl\ -lz --debug --gdbbt --threads 2 --threads-dpi all --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000 -o /home/user/riscv/OpenXiangShan/XiangShan/build/emu -Mdir build/emu-compile build/SimTop.v ./src/test/vsrc/common/ref.v ./src/test/vsrc/common/assert.v ./src/test/vsrc/common/difftest.v ./src/test/vsrc/common/ram.v /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/emu.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/snapshot.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/main.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/sdcard.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/uart.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/axi4.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/vga.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/keyboard.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/device.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/ram.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/common.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/flash.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/compress.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/goldenmem.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/interface.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/nemuproxy.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/ref.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/difftest.cpp" -ex 'set width 0' -ex 'bt' -ex 'quit'
%Error: Command Failed gdb /usr/local/bin/verilator_bin_dbg --batch --quiet --return-child-result -ex "run --cc --exe --top-module SimTop +define+VERILATOR=1 +define+PRINTF_COND=1 +define+RANDOMIZE_REG_INIT +define+RANDOMIZE_MEM_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_DELAY=0 -Wno-STMTDLY -Wno-WIDTH -I/home/user/riscv/OpenXiangShan/XiangShan/build --x-assign unique -O3 -CFLAGS -std=c++11\ -static\ -Wall\ -I/home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator\ -I/home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common\ -I/home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest\ -DVERILATOR\ -Wno-maybe-uninitialized\ -DNUM_CORES=1 -LDFLAGS -lpthread\ -lSDL2\ -ldl\ -lz --debug --gdbbt --threads 2 --threads-dpi all --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000 -o /home/user/riscv/OpenXiangShan/XiangShan/build/emu -Mdir build/emu-compile build/SimTop.v ./src/test/vsrc/common/ref.v ./src/test/vsrc/common/assert.v ./src/test/vsrc/common/difftest.v ./src/test/vsrc/common/ram.v /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/emu.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/snapshot.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/verilator/main.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/sdcard.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/uart.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/axi4.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/vga.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/keyboard.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/device.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/ram.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/common.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/flash.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/common/compress.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/goldenmem.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/interface.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/nemuproxy.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/ref.cpp /home/user/riscv/OpenXiangShan/XiangShan/src/test/csrc/difftest/difftest.cpp" -ex 'set width 0' -ex 'bt' -ex 'quit'
make: *** [verilator.mk:107: build/emu-compile/VSimTop.mk] Error 255
from xiangshan.
I have a similar error :
$make emu CONFIG=MinimalConfig EMU_THREADS=2 -j16
xxx
%Error: Invalid Option: --threads-dpi
the version of Verilator which apt-get installed is too low. Git Quick Install solved my problem
from xiangshan.
Tried on another machine: A cloud server, CentOS 8.2, 16.0 GB memory, 50GB SSD.
make verilog
succeed withexport _JAVA_OPTIONS='-XX:-UseGCOverheadLimit -Xms256m -Xmx11g -Xss256K'
.
make emu
still error.My environment
[user@VM-0-17-centos XiangShan]# verilator --version Verilator 4.204 2021-06-12 rev v4.204
It looks like 16GB memory is not enough for verilator. I just tried on our machine (i9-10850k with 128GB memory). Verilator uses 31GB memory when I pass --threads 8 --trace
to it.
Sorry we didn't expect verilator requires so much memory. Can you try a larger swap size? Or using a machine with a larger memory?
from xiangshan.
Finally make emu CONFIG=MinimalConfig SIM_ARGS=--disable-log EMU_THREADS=2 -j1
succeed, but it took me 16 hours with the swap size set to 32GB after 8/16GB failed.
(Change swap size by referring to https://net2.com/how-to-increase-swap-space-in-linux/).
By the way, I also install SDL2 to make emu
, just paste the installing script below in case anyone need this.
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
cd /tmp
git clone https://github.com/libsdl-org/SDL.git;
cd SDL;
mkdir build;
cd build;
../configure
make;
make install;
sudo ln -s /usr/local/lib/libSDL2-2.0.so.0 /usr/lib64/libSDL2-2.0.so.0
from xiangshan.
So, can I draw a conclusion that if I don't have a machine with great performance(maybe 64GB, i9-10850K), I can hardly explore XiangShan and make contribution?
from xiangshan.
So, can I draw a conclusion that if I don't have a machine with great performance(maybe 64GB, i9-10850K), I can hardly explore XiangShan and make contribution?
Thanks and you have made contributions to XiangShan by filing an issue to us, which we didn't expect to be a real issue.
We have been working on this problem. Currently the diffculty for reproducing XiangShan on personal laptops is not what we want and what we expected.
We have considered the following possibilities to allow users with their laptops to participate in XiangShan ecosystem:
- to use
CONFIG=MinimalSimConfig
, which replaces L1plus, PTW, DCache and lower level caches with DPI-C functions that does not produce RTL. This is acceptable for users who want to contribute to the OoO pipelines. - (WIP) to use the simple in-order NutShell (https://github.com/OSCPU/NutShell) as the cpu core and XiangShan's simulation framework (with difftest, a instruction-level co-sim and verification framework). We have started this project. This work will be done in one or two weeks (should be no later than end of July). For users with interest in our verification framework, this is OK.
- (WIP) to allow more configurations for XiangShan.
MinimalSimConfig
is probably not small enough but we have been working on it. We will let more pipelines to be configurable (especially the issue and function units) to achieve a two-issue or single-issue design. This work is expected to be done by the end of this month. - (WIP) use more DPI-C functions to replace the modules that users do not care. For example, if you want to see how the cache works, we let the CPU core be a functional model and only the caches are simulated based on RTL. This project is expected to be a long-term one (hope we can have it done by the end of this year).
If you have some ideas on how we can make this better, feel free to let us know.
BTW, there's no need to manually install the SDL lib (this lib is used in only one file and we rarely use it. Feel free to help us disable this file via some macro). Using sudo apt install libsdl2-dev
to install by apt is more easier.
Also, allowing make
to use more threads via -jN
like -j4
helps the compilation a lot. Verilator produces hundreds of C++ files and we need to compile them all. If you have Synopsys VCS installed, it's much faster than Verilator since they work in different ways on simulation. It only takes less than 2 minutes to produce the simv
though it simulates a lot slower than Verilator (hundreds of cycles per second in VCS v.s. 4K-6K cycles per second in Verilator with 8 threads).
from xiangshan.
@Kevo-Gabo Hi, we have updated MinimalConfig on the master branch to include only 2 ALUs and 1FMAC. Could you please have a try to see how long it takes to generate verilog and the simulator? See build/time.log
for the time
result after it succeeds.
from xiangshan.
Hi @poemonsense , thanks a lot for the update. Now, make emu CONFIG=MinimalConfig SIM_ARGS=--disable-log EMU_THREADS=2 -j8
takes about 15min.
from xiangshan.
Thanks!
from xiangshan.
I have a similar error :
$make emu CONFIG=MinimalConfig EMU_THREADS=2 -j16
xxx
%Error: Invalid Option: --threads-dpi
the version of Verilator which apt-get installed is too low. Git Quick Install solved my problem
%Error: Invalid Option: --threads
apt remove verilator
git clone --recursive https://github.com/verilator/verilator
cd verilator
autoconf
./configure
make -j8 && make install
from xiangshan.
Related Issues (20)
- Difftest failed on a RISC-V Vector memcpy workload with misaligned(in vlen granularity, not element) unit stride load HOT 1
- Assertion failed at UserYanker.scala:63 assert (!out.r.valid || r_valid) // Q must be ready faster than the response HOT 1
- make verilog NUM_CORES=4 gets error HOT 7
- In VCS simulation, multi-core simulation of some harts ended prematurely due to incorrect execution of SEQZ instruction HOT 1
- ./build/emu HOT 10
- xsdebug HOT 9
- invalid opcode HOT 4
- error massage HOT 3
- What is the stable version of Nanhu-V2 verified on FPGA? HOT 9
- DispatchQueue numDeq and deqNext generation HOT 2
- Using docker to check data.txt generated by compiling app, but cannot find compiled instruction after burning HOT 4
- rvv-bench: XiangShan performance problems HOT 1
- How to enable the DebugModule of StandAloneDebugModule with the AXI version HOT 1
- How to use other versions of Linux kernel for Xiangshan projects? HOT 4
- How can I check the CPU frequency of the two cores of Xiangshan? HOT 5
- Run spec2006 using opensbi-kernel-for-xs tutorial HOT 4
- --no-check-comb-loops HOT 1
- add some IO ports HOT 1
- How can I make a 4core image? HOT 8
- Question about emulation of the CHI version HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xiangshan.