Docs:
https://www.spec.org/cpu2017/Docs/
Updates
SPEC CPU 2017 may be updated from time to time. To update your copy, use runcpu --update.
Decide which benchmark(s) to start with: SPEC CPU 2017 includes 43 benchmarks arranged in 4 suites. You can run one or more individual benchmarks, such as 500.perlbench_r, or you can run entire suites, using one of the Short Tags below.
Short Tag | Suite | Contents | Metrics | How many copies? |
---|---|---|---|---|
intspeed | SPECspeed® 2017 | Integer 10 integer benchmarks | SPECspeed®2017_int_base SPECspeed®2017_int_peak SPECspeed®2017_int_energy_base SPECspeed®2017_int_energy_peak | SPECspeed suites always run one copy of each benchmark. Higher scores indicate that less time is needed. |
fspeed | SPECspeed® 2017 | Floating Point 10 floating point benchmarks | SPECspeed®2017_fp_base SPECspeed®2017_fp_peak SPECspeed®2017_fp_energy_base SPECspeed®2017_fp_energy_peak | one copy |
intrate | SPECrate® 2017 | Integer 10 integer benchmarks | SPECrate®2017_int_base SPECrate®2017_int_peak SPECrate®2017_int_energy_base SPECrate®2017_int_energy_peak | SPECrate suites run multiple concurrent copies of each benchmark. The tester selects how many. Higher scores indicate more throughput (work per unit of time). |
fprate | SPECrate® 2017 | Floating Point 13 floating point benchmarks | SPECrate®2017_fp_base SPECrate®2017_fp_peak SPECrate®2017_fp_energy_base SPECrate®2017_fp_energy_peak | multiple copy |
Ready to run:
You’re ready to give it a try. Enter runcpu --config=name followed by a list of benchmarks or suites (see table above). Examples:
runcpu --config=eniac.cfg --action=build 519.lbm_r
runcpu --config=colossus.cfg --threads=16 628.pop2_s
runcpu --config=z3.cfg --copies=64 fprate
$runcpu --config=cpu2017.icx.lnx.cfg-zx-502.cfg --action run 502 --output_root "/export/users/xiangzh1/LLVM/cpu_try" --iterations 1 --define isa=intel64 --define cpus_num=64 --tune base --define jobs=16 --label core_avx512 --runmode rate
The first example compiles the benchmark named 519.lbm_r. The second runs the SPECspeed benchmark 628.pop2_s using 16 OpenMP threads. The third runs 64 copies of all the SPECrate 2017 Floating Point benchmarks.
What are the benchmarks
Are 5nn.benchmark and 6nn.benchmark different?
Most of the benchmarks in the table above are part of a pair:
5nn.benchmark_r for the SPECrate version
6nn.benchmark_s for the SPECspeed version
Benchmarks within a pair are similar to each other.
Briefly, differences include: workload sizes; compile flags; and run rules. See: [memory] [OpenMP] [rules]
More detail:
Memory Usage, -m32 and -m64
Although the names are similar, the workloads often differ.
For SPECrate, you may be able to choose between 32-bit or 64-bit compilation (check your compiler documentation for flags such as -m32 or -m64).
For SPECspeed, you will usually need 64 bits (-m64).
OpenMP directives: never for SPECrate
OpenMP directives are always suppressed (not visible to the compiler) when building the SPECrate benchmarks.
OpenMP directives: optional for SPECspeed
OpenMP directives are optionally available for all SPECspeed 2017 Floating Point benchmarks, and for one SPECspeed 2017 Integer benchmark, 657.xz_s. [OpenMP]
Prohibited flags
For SPECrate, compiler parallelization is forbidden – both OpenMP and compiler autopar.
Other differences
Some pairs enable different source via compile flags (which are automatically provided by the SPEC CPU toolset). For example, 627.cam4_s includes the flag -DUSE_COSP to enable a different method of cloud modeling than is used for 527.cam4_r; and the Chess program deepsjeng is compiled with flags to tell it which size it should use for its primary data structures (-DSMALL_MEMORY or -DBIG_MEMORY).
Where can I find SPEC CPU 2017 results?
https://www.spec.org/cpu2017/results/
Run the benchmarks manually
https://www.spec.org/cpu2017/Docs/runcpu-avoidance.html
SPEC CPU®2017 Config Files
https://www.spec.org/auto/cpu2017/Docs/config.html
run
$runcpu --config=cpu2017.icx.lnx.cfg-zx-502.cfg --action run 502 --output_root “/export/users/xiangzh1/LLVM/cpu_try” --iterations 1 --define isa=intel64 --define cpus_num=64 --tune base --define jobs=16 --label core_avx512 --runmode rate