diff --git a/workloads/linux/spec2006/README.md b/workloads/linux/spec2006/README.md index f2a13b3..b3adbf1 100644 --- a/workloads/linux/spec2006/README.md +++ b/workloads/linux/spec2006/README.md @@ -165,10 +165,10 @@ make -f rules.mk spec2006-elfs SPEC2006_ISO=/path/to/cpu2006.iso SPEC2006_INPUT= ## Configuration -The default SPEC cfg is the GCC 16 configuration: +The default SPEC cfg is the GCC 16 RVA23U64 no-vector configuration: ```text -workloads/linux/spec2006/configs/riscv_gcc16_base.cfg +workloads/linux/spec2006/configs/gcc16-linux-riscv64-rva23u64_novec.cfg ``` For GCC 15, select: @@ -202,7 +202,7 @@ riscv64-unknown-linux-gnu- Override it with `SPEC2006_CROSS_COMPILE=/path/to/bin/riscv64-unknown-linux-gnu-`. The helper derives the toolchain root from `SPEC2006_CROSS_COMPILE` and exports -the env vars expected by `riscv_gcc16_base.cfg` (or a custom config): +the env vars expected by the default config (or a custom config): - `LLVM_INSTALL_PATH` - `GNU_RISCV64_PATH` diff --git a/workloads/linux/spec2006/configs/gcc16-linux-riscv64-rva23u64_novec.cfg b/workloads/linux/spec2006/configs/gcc16-linux-riscv64-rva23u64_novec.cfg new file mode 100644 index 0000000..5c18d2f --- /dev/null +++ b/workloads/linux/spec2006/configs/gcc16-linux-riscv64-rva23u64_novec.cfg @@ -0,0 +1,194 @@ +#################################################################### +# 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++ 16.1.0 +sw_avail = Jul-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 = gcc16-rva23u64_novec +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_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcd1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0 + +##################################################################### +# 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 + +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 +##################################################################### diff --git a/workloads/linux/spec2006/rules.mk b/workloads/linux/spec2006/rules.mk index c6ebd80..6ca2235 100644 --- a/workloads/linux/spec2006/rules.mk +++ b/workloads/linux/spec2006/rules.mk @@ -7,7 +7,7 @@ SPEC2006_SCRIPTS_DIR := $(SPEC2006_REPO_ROOT)/scripts SPEC2006_DTS_DIR := $(SPEC2006_REPO_ROOT)/dts SPEC2006_BUILD_DIR ?= $(SPEC2006_REPO_ROOT)/build/linux-workloads/spec2006 SPEC2006_CASE_CONFIG := $(SPEC2006_WORKLOAD_DIR)/spec06.json -SPEC2006_CFG ?= $(SPEC2006_WORKLOAD_DIR)/configs/riscv_gcc16_base.cfg +SPEC2006_CFG ?= $(SPEC2006_WORKLOAD_DIR)/configs/gcc16-linux-riscv64-rva23u64_novec.cfg SPEC2006_HELPER := $(SPEC2006_WORKLOAD_DIR)/spec2006-package.py SPEC2006_IMAGE_DIR ?= $(SPEC2006_REPO_ROOT)/build/images/spec2006 SPEC2006_SOURCE_SPEC_ISO := $(SPEC2006_ISO) diff --git a/workloads/linux/spec2017/README.md b/workloads/linux/spec2017/README.md index 0be7a17..edab6fb 100644 --- a/workloads/linux/spec2017/README.md +++ b/workloads/linux/spec2017/README.md @@ -113,7 +113,7 @@ build/images// opensbi/fw_jump.elf opensbi/defconfig manifest/.json - cfg/riscv-gcc16.cfg + cfg/riscv-gcc16-rva23u64-novec.cfg ``` `` is `spec2017rate` for rate and `spec2017speed` for speed. @@ -215,16 +215,16 @@ They are compiled into each case's `dt/` directory during firmware assembly. ## Configuration -By default, rate cases use the GCC 16 configuration: +By default, rate cases use the GCC 16 RVA23U64 no-vector configuration: ```text -workloads/linux/spec2017/configs/riscv-gcc16.cfg +workloads/linux/spec2017/configs/riscv-gcc16-rva23u64-novec.cfg ``` -Speed cases use the same GCC 16 configuration: +Speed cases use the same GCC 16 RVA23U64 no-vector configuration: ```text -workloads/linux/spec2017/configs/riscv-gcc16.cfg +workloads/linux/spec2017/configs/riscv-gcc16-rva23u64-novec.cfg ``` Override both modes with `SPEC2017_CFG=/path/to/config.cfg`, or override the diff --git a/workloads/linux/spec2017/configs/riscv-gcc16-rva23u64-novec.cfg b/workloads/linux/spec2017/configs/riscv-gcc16-rva23u64-novec.cfg new file mode 100644 index 0000000..5151f3c --- /dev/null +++ b/workloads/linux/spec2017/configs/riscv-gcc16-rva23u64-novec.cfg @@ -0,0 +1,157 @@ +#------------------------------------------------------------------------------ +# SPEC CPU2017 RISC-V Linux config for workload-builder. +#------------------------------------------------------------------------------ + +label = riscv-XiangShan-KMHv3-gcc16.1.0-rva23u64-novec + +action = validate +command_add_redirect = 0 +line_width = 1020 +log_line_width = 1020 +output_format = txt,html,cfg,pdf,csv +preenv = 1 +tune = base +bench_post_setup = sync +mean_anyway = 1 +reportable = 0 +ignore_errors = 1 + +default: + SPECLANG = %{ENV_CROSS_COMPILE} + +intspeed,fpspeed,intrate,fprate: + CC = $(SPECLANG)gcc -std=c99 + CXX = $(SPECLANG)g++ -std=c++03 + FC = $(SPECLANG)gfortran + CC_VERSION_OPTION = --version + CXX_VERSION_OPTION = --version + FC_VERSION_OPTION = --version + +intspeed,fpspeed,intrate,fprate: + PORTABILITY = -DSPEC_LP64 + +500.perlbench_r: + CPORTABILITY = -DSPEC_LINUX_X64 -fno-fast-math + +502.gcc_r: + CPORTABILITY = -fgnu89-inline + LDCFLAGS = -z muldefs + +525.x264_r: + LDCFLAGS = -z muldefs + +520.omnetpp_r: + CXXPORTABILITY = -std=c++98 + +521.wrf_r: + CPORTABILITY = -DSPEC_CASE_FLAG + FPORTABILITY = -fconvert=big-endian + +523.xalancbmk_r: + CXXPORTABILITY = -DSPEC_LINUX -D_FILE_OFFSET_BITS=64 -std=gnu++03 -include cstring -Wno-c++11-narrowing -Wno-template-body -D_GLIBCXX_USE_CXX11_ABI=0 + +527.cam4_r: + CPORTABILITY = -Wno-int-conversion -std=gnu89 -Dlower_case -DFORTRAN_UNDERSCORE -Dappend_utils -Wno-error=implicit-int -Wno-error=implicit-function-declaration -DSPEC_LP64 -Dlinux -Dsun + +526.blender_r: + PORTABILITY = -funsigned-char -DSPEC_LINUX + CPORTABILITY = -std=gnu99 -DSPEC_LP64 -D__LITTLE_ENDIAN__ -Wno-error=narrowing + CXXPORTABILITY = -std=c++11 -Wno-error=narrowing + +508.namd_r: + PORTABILITY = -std=c++98 + +510.parest_r: + CXXPORTABILITY = -std=c++98 + +511.povray_r: + CXXPORTABILITY = -fno-fast-math + CPORTABILITY = -fno-fast-math + +600.perlbench_s: + CPORTABILITY = -DSPEC_LINUX_X64 -fno-fast-math + +602.gcc_s: + CPORTABILITY = -fgnu89-inline + LDCFLAGS = -z muldefs + +625.x264_s: + LDCFLAGS = -z muldefs + +620.omnetpp_s: + CXXPORTABILITY = -std=c++98 + +621.wrf_s: + CPORTABILITY = -DSPEC_CASE_FLAG + FPORTABILITY = -fconvert=big-endian + +623.xalancbmk_s: + CXXPORTABILITY = -DSPEC_LINUX -D_FILE_OFFSET_BITS=64 -std=gnu++03 -include cstring -Wno-c++11-narrowing -Wno-template-body -D_GLIBCXX_USE_CXX11_ABI=0 + +627.cam4_s: + PORTABILITY = -DSPEC_CASE_FLAG + CPORTABILITY = -Wno-implicit-int + +628.pop2_s: + CPORTABILITY = -DSPEC_CASE_FLAG + FPORTABILITY = -fconvert=big-endian + +default: + threads = 1 + copies = 1 + MARCH = rv64gcb_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcd1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0 + +intspeed=base=default: + COPTIMIZE = -O3 -flto -ffast-math -fopenmp -march=$(MARCH) -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + CXXOPTIMIZE = -O3 -flto -ffast-math -fopenmp -march=$(MARCH) -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + FOPTIMIZE = -O3 -flto -ffast-math -fopenmp -march=$(MARCH) -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing -fallow-argument-mismatch + EXTRA_LIBS = -lpthread -lm + EXTRA_LDFLAGS = -static + +fpspeed=base=default: + COPTIMIZE = -O3 -flto -ffast-math -fopenmp -march=$(MARCH) -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + CXXOPTIMIZE = -O3 -flto -ffast-math -fopenmp -march=$(MARCH) -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + FOPTIMIZE = -O3 -flto -ffast-math -fopenmp -march=$(MARCH) -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing -fallow-argument-mismatch + EXTRA_LIBS = -lpthread -lm + EXTRA_LDFLAGS = -static + +intrate=base=default: + COPTIMIZE = -O3 -flto -ffast-math -march=$(MARCH) -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + CXXOPTIMIZE = -O3 -flto -ffast-math -march=$(MARCH) -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + FOPTIMIZE = -O3 -flto -ffast-math -march=$(MARCH) -ffp-contract=off -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing -fallow-argument-mismatch + EXTRA_LIBS = -lpthread -lm + EXTRA_LDFLAGS = -static + +fprate=base=default: + COPTIMIZE = -O3 -flto -ffast-math -march=$(MARCH) -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + CXXOPTIMIZE = -O3 -flto -ffast-math -march=$(MARCH) -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing + FOPTIMIZE = -O3 -flto -ffast-math -march=$(MARCH) -ffp-contract=fast -fno-tree-vectorize -fno-tree-loop-vectorize -fno-strict-aliasing -fallow-argument-mismatch + EXTRA_LIBS = -lpthread -lm + EXTRA_LDFLAGS = -static + +intrate,intspeed,fpspeed,fprate: + sw_compiler001 = RISC-V GCC cross compiler + sw_base_ptrsize = 64-bit + sw_peak_ptrsize = Not Applicable + +intrate,intspeed,fprate,fpspeed: + hw_vendor = workload-builder + tester = workload-builder + test_sponsor = workload-builder + license_num = 0 + prepared_by = workload-builder + +intrate,intspeed,fprate,fpspeed: + hw_avail = Dec-9999 + sw_avail = Dec-9999 + hw_cpu_nominal_mhz = 3000 + hw_cpu_max_mhz = 3000 + hw_ncores = 1 + hw_nthreadspercore = 1 + hw_ncpuorder = 1 + hw_model = XiangShan Kunminghu + hw_other = None + hw_pcache = N/A + hw_scache = N/A + hw_tcache = N/A + hw_ocache = N/A diff --git a/workloads/linux/spec2017/rules.mk b/workloads/linux/spec2017/rules.mk index 2dde37e..12d13ab 100644 --- a/workloads/linux/spec2017/rules.mk +++ b/workloads/linux/spec2017/rules.mk @@ -7,8 +7,8 @@ SPEC2017_SCRIPTS_DIR := $(SPEC2017_REPO_ROOT)/scripts SPEC2017_DTS_DIR := $(SPEC2017_REPO_ROOT)/dts SPEC2017_BUILD_DIR ?= $(SPEC2017_REPO_ROOT)/build/linux-workloads/spec2017 SPEC2017_EXPLICIT_CFG := $(if $(filter undefined,$(origin SPEC2017_CFG)),,1) -SPEC2017_RATE_CFG ?= $(SPEC2017_WORKLOAD_DIR)/configs/riscv-gcc16.cfg -SPEC2017_SPEED_CFG ?= $(SPEC2017_WORKLOAD_DIR)/configs/riscv-gcc16.cfg +SPEC2017_RATE_CFG ?= $(SPEC2017_WORKLOAD_DIR)/configs/riscv-gcc16-rva23u64-novec.cfg +SPEC2017_SPEED_CFG ?= $(SPEC2017_WORKLOAD_DIR)/configs/riscv-gcc16-rva23u64-novec.cfg SPEC2017_HELPER := $(SPEC2017_WORKLOAD_DIR)/spec2017-package.py SPEC2017_IMAGE_DIR ?= $(SPEC2017_REPO_ROOT)/build/images/$(if $(filter rate,$(SPEC2017_IMAGE_MODE)),spec2017rate,$(if $(filter speed,$(SPEC2017_IMAGE_MODE)),spec2017speed,spec2017)) SPEC2017_SOURCE_SPEC_ISO := $(SPEC2017_ISO) diff --git a/workloads/linux/spec2026/README.md b/workloads/linux/spec2026/README.md index 228cf2a..56c65a6 100644 --- a/workloads/linux/spec2026/README.md +++ b/workloads/linux/spec2026/README.md @@ -91,6 +91,16 @@ make spec2026-images SPEC2026_ISO=/path/to/cpu2026-1.0.1.iso SPEC2026_IMAGE_MODE `SPEC2026_IMAGE_MODE=all` exports both rate and speed images into the same combined tree that `SPEC2026_IMAGE_DIR` points to. +## Configuration + +The default SPEC cfg is the GCC 16 RVA23U64 no-vector configuration: + +```text +workloads/linux/spec2026/configs/riscv_gcc16_rva23u64_novec.cfg +``` + +Override it with `SPEC2026_CFG=/path/to/config.cfg`. + The repository provides static `xiangshan-fpga-noAIA-novec` DTS templates for the SPEC2026 memory profiles used by default. The embedded DTB is selected per case: diff --git a/workloads/linux/spec2026/configs/riscv_gcc16_rva23u64_novec.cfg b/workloads/linux/spec2026/configs/riscv_gcc16_rva23u64_novec.cfg new file mode 100644 index 0000000..98a169a --- /dev/null +++ b/workloads/linux/spec2026/configs/riscv_gcc16_rva23u64_novec.cfg @@ -0,0 +1,109 @@ +#------------------------------------------------------------------------------ +# SPEC CPU(R) 2026 config for gcc/g++/gfortran on Linux RISCV-64 +#------------------------------------------------------------------------------ +# +# This file is a build-oriented copy of the official Example-gcc-linux-riscv64 +# config shipped with the CPU2026 kit. The workload helper passes `gcc_dir` +# and build parallelism on the command line so this file can stay in-repo. +# `gcc_dir` is the toolchain root, and the compiler binaries are the prefixed +# `riscv64-unknown-linux-gnu-*` tools under `bin/`. +# + +%ifndef %{label} + label = spec2026 +%else + label = %{label} +%endif + +%ifndef %{build_ncpus} +% define build_ncpus 8 +%endif + +default: + bench_post_setup = sync + command_add_redirect = 1 + flagsurl = $[top]/config/flags/gcc.xml + ignore_errors = 1 + iterations = 1 + line_width = 1020 + log_line_width = 1020 + makeflags = --jobs=%{build_ncpus} + mean_anyway = 1 + output_format = txt,html,cfg,pdf,csv + preenv = 1 + reportable = 0 + tune = base + setup_submit_flac_s = qemu-riscv64 -L %{gcc_dir}/sysroot ${command} + setup_submit_graph500_s = qemu-riscv64 -L %{gcc_dir}/sysroot ${command} + +default: + copies = 1 + threads = 4 + +%ifndef %{gcc_dir} +% define gcc_dir "/opt/gcc-16" +%endif + +%define GCCge10 + +default: + preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64 + SPECLANG = %{gcc_dir}/bin/riscv64-unknown-linux-gnu- + CC = $(SPECLANG)gcc -std=c18 + CXX = $(SPECLANG)g++ -std=c++17 + FC = $(SPECLANG)gfortran -std=f2018 + CC_VERSION_OPTION = --version + CXX_VERSION_OPTION = --version + FC_VERSION_OPTION = --version + +800.pot3d_s: + PORTABILITY = -DSPEC_SUPPRESS_LOCAL_AND_REDUCE + +710.omnetpp_r: + PORTABILITY = -fno-finite-math-only + +734.vpr_r,834.vpr_s: + PORTABILITY = -fno-finite-math-only + +735.gem5_r,835.gem5_s: + PORTABILITY = -fno-finite-math-only + +736.ocio_r: + PORTABILITY = -fno-finite-math-only + +737.gmsh_r: + PORTABILITY = -fno-fast-math + +748.flightdm_r: + PORTABILITY = -fno-fast-math + +753.ns3_r,853.ns3_s: + PORTABILITY = -fno-finite-math-only + +767.nest_r,867.nest_s: + PORTABILITY = -fno-finite-math-only + PORTABILITY_LIBS = -lstdc++fs + +%ifdef %{GCCge10} + default: + EXTRA_FFLAGS = -fallow-argument-mismatch +%endif + +intspeed,fpspeed: + preENV_OMP_STACKSIZE = 120M + +doconcurrent: + EXTRA_FOPTIMIZE = -ftree-parallelize-loops=8 + +openmp: + EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP + +cxxthreads: + EXTRA_OPTIMIZE = -pthread + +default=base: + OPTIMIZE = -g -O3 -march=rv64gcb_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcd1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0 -fno-tree-vectorize -fno-tree-loop-vectorize + +default: + basepeak = yes +default=peak: diff --git a/workloads/linux/spec2026/rules.mk b/workloads/linux/spec2026/rules.mk index c672220..bfcc698 100644 --- a/workloads/linux/spec2026/rules.mk +++ b/workloads/linux/spec2026/rules.mk @@ -6,7 +6,7 @@ SPEC2026_RECURSE_MAKEFILE := $(if $(filter $(SPEC2026_ROOT_MAKEFILE),$(abspath $ SPEC2026_SCRIPTS_DIR := $(SPEC2026_REPO_ROOT)/scripts SPEC2026_DTS_DIR := $(SPEC2026_REPO_ROOT)/dts SPEC2026_BUILD_DIR ?= $(SPEC2026_REPO_ROOT)/build/linux-workloads/spec2026 -SPEC2026_CFG ?= $(SPEC2026_WORKLOAD_DIR)/configs/riscv_gcc15_base.cfg +SPEC2026_CFG ?= $(SPEC2026_WORKLOAD_DIR)/configs/riscv_gcc16_rva23u64_novec.cfg SPEC2026_HELPER := $(SPEC2026_WORKLOAD_DIR)/spec2026-package.py SPEC2026_IMAGE_DIR ?= $(SPEC2026_REPO_ROOT)/build/images/$(if $(filter rate,$(SPEC2026_IMAGE_MODE)),spec2026rate,$(if $(filter speed,$(SPEC2026_IMAGE_MODE)),spec2026speed,spec2026)) SPEC2026_IMAGE_RATE_DIR ?= $(SPEC2026_REPO_ROOT)/build/images/spec2026rate