Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion workloads/linux/spec2006/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ make -f rules.mk spec2006-elfs SPEC2006_ISO=/path/to/cpu2006.iso SPEC2006_INPUT=
The default SPEC cfg is:

```text
workloads/linux/spec2006/riscv_gcc15_base.cfg
workloads/linux/spec2006/configs/riscv_gcc15_base.cfg
```

Override it with:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
####################################################################
# RISC-V Config file for SPEC CPU2006

# Please see http://www.spec.org/cpu2006/Docs/config.html (also available in
# the Docs directory of your SPEC tree) for details on config file setup. The
# config.html page has a list of all of the fields required for a full
# publication ofresults.

#####################################################################
# System Under Test (SUT) Section

# If it affects performance, you need to describe it, either in the
# pre-defined fields or by adding it to the notes section. Replace the
# setting below with the ones that match your machine.

#######################################################################

# Tester Description
test_sponsor = OpenXiangShan
tester = OpenXiangShan

# System Description
hw_model = XiangShan Kunminghu
hw_memory = 2 GiB DDR
hw_disk = None
hw_vendor = Institute of Computing Technology, Chinese Academy of Sciences
hw_other = N/A
hw_avail = Dec-9999

# CPU description
# See http://www.spec.org/cpu2006/Docs/runrules.html#cpucount
# for a discussion of these fields

hw_cpu_name = XiangShan Kunminghu
hw_cpu_char =
hw_cpu_mhz = 3000
hw_fpu = Integrated
hw_nchips = 1
hw_ncores = 1
hw_ncoresperchip = 1
hw_nthreadspercore = 1
hw_ncpuorder = N/A

# Cache description

hw_pcache = N/A
hw_scache = N/A
hw_tcache = N/A
hw_ocache = N/A

# Tester description

license_num = 0

# Operating system, file system

sw_os = Linux with OpenSBI firmware boot
sw_file = initramfs rootfs
sw_state = Single-user
sw_other = None

## SW config
sw_compiler = gcc, g++ 15.2.0
sw_avail = Apr-2026
sw_base_ptrsize = 64-bit
sw_peak_ptrsize = 64-bit

#######################################################################
# End of SUT section
# If this config file were to be applied to several SUTs, edits would
# be needed only ABOVE this point.
######################################################################

ignore_errors = yes
tune = base
basepeak = no
ext = gcc15.2-rv64gcb_zicond_zfa
teeout = yes
teerunout = yes
output_format = asc, csv, html
makeflags = -j64

reportable = yes

default=default=default=default:
#####################################################################
#
# Compiler selection
#
#####################################################################

COMPILER_PATH = ${LLVM_INSTALL_PATH}
JEMALLOC_PATH = ${JEMALLOC_INSTALL_PATH}
GCC_TOOLCHAIN_PATH = ${GNU_RISCV64_PATH}

JEMALLOC_LIBS = -L$(JEMALLOC_PATH)/lib -ljemalloc -lm
# jemalloc also exports C++ operator new/delete. Some SPEC C++ benchmarks
# define replaceable allocation symbols in their own objects, so keep
# muldefs enabled for the final static link.
STATIC_LDFLAGS = -z muldefs -static

CC = $(COMPILER_PATH)/bin/riscv64-unknown-linux-gnu-gcc -std=gnu89
CXX = $(COMPILER_PATH)/bin/riscv64-unknown-linux-gnu-g++
FC = $(COMPILER_PATH)/bin/riscv64-unknown-linux-gnu-gfortran

MARCH = rv64gcb_zicond_zfa

#####################################################################
# Optimization
#####################################################################

int=base=default:
COPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing
CXXOPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=off -std=c++98 -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing

EXTRA_LIBS = $(JEMALLOC_LIBS)
EXTRA_LDFLAGS = $(STATIC_LDFLAGS)

fp=base=default:
COPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing
CXXOPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=fast -std=c++98 -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing
FOPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing

EXTRA_LIBS = $(JEMALLOC_LIBS)
EXTRA_LDFLAGS = $(STATIC_LDFLAGS)

int=peak=default:
COPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing
CXXOPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=off -std=c++98 -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing

EXTRA_LIBS = $(JEMALLOC_LIBS)
EXTRA_LDFLAGS = $(STATIC_LDFLAGS)

fp=peak=default:
COPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing
CXXOPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=fast -std=c++98 -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing
FOPTIMIZE = -static -O3 -march=$(MARCH) -ffast-math -flto -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing

EXTRA_LIBS = $(JEMALLOC_LIBS)
EXTRA_LDFLAGS = $(STATIC_LDFLAGS)


#####################################################################
# 32/64 bit Portability Flags - all
#####################################################################

default=default=default=default:
PORTABILITY = -DSPEC_CPU_LP64

#####################################################################
# Portability Flags
#####################################################################

400.perlbench=default=default=default:
CPORTABILITY = -DSPEC_CPU_LINUX_X64 -std=gnu89

401.bzip2=default=default=default:
CPORTABILITY = -std=gnu89

416.gamess=default=default=default:
CPORTABILITY = -funconstrained-commons
FPORTABILITY = -std=legacy -funconstrained-commons -fno-strict-aliasing

436.cactusADM=default=default=default:
CPORTABILITY = -std=gnu17

462.libquantum=default=default=default:
CPORTABILITY = -DSPEC_CPU_LINUX

464.h264ref=default=default=default:
CPORTABILITY = -fsigned-char

482.sphinx3=default=default=default:
CPORTABILITY = -fsigned-char

483.xalancbmk=default=default=default:
CXXPORTABILITY = -DSPEC_CPU_LINUX -include cstring -Wno-c++11-narrowing -Wno-template-body

453.povray=base=default=default:
CXXOPTIMIZE = -static -O3 -march=$(MARCH) -flto -ffp-contract=fast -std=c++98 -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing

453.povray=peak=default=default:
CXXOPTIMIZE = -static -O3 -march=rv64gcbv_zicond_zfa -flto -ffp-contract=fast -std=c++98 -ftree-vectorize -ftree-loop-vectorize -fno-strict-aliasing

481.wrf=default=default=default:
CPORTABILITY = -DSPEC_CPU_CASE_FLAG -DSPEC_CPU_LINUX
FPORTABILITY = -std=legacy -fallow-argument-mismatch

447.dealII=default=default=default:
CXXPORTABILITY = -fpermissive -include cstring -std=c++11

450.soplex=default=default=default:
CXXPORTABILITY = -std=gnu++98

#####################################################################
# Notes
#####################################################################
Loading
Loading