环境
安装依赖项
sudo apt install gfortran
挂载iso
sudo mkdir /mnt/cpu2006
sudo mount cpu2006-1.2.iso /mnt/cpu2006
安装
cd /mnt/cpu2006
sh install.sh -d /home/speccpu/cpu2006
SPEC CPU2006 Installation
Top of the CPU2006 tree is '/mnt/cpu2006'
Installing FROM /mnt/cpu2006
Installing TO /home/speccpu/cpu2006/
Is this correct? (Please enter 'yes' or 'no')
yes
The following toolsets are expected to work on your platform. If the
automatically installed one does not work, please re-run install.sh and
exclude that toolset using the '-e' switch.
The toolset selected will not affect your benchmark scores.
linux-suse10-amd64 For 64-bit AMD64/EM64T Linux systems running
SuSE Linux 10 or later, and other
compatible Linux distributions, including
some versions of RedHat Enterprise Linux
and Oracle Linux Server.
Built on SuSE Linux 10 with
GCC v4.1.0 (SUSE Linux)
linux-suse10-ia32 For IA-32 Linux systems running SuSE
Linux 10 or later.
Built on SuSE Linux 10 with
GCC v4.1.0 (SUSE Linux)
linux-redhat72-ia32 For x86, IA-64, EM64T, and AMD64-based Linux
systems with GLIBC 2.2.4+.
Built on RedHat 7.2 (x86) with gcc 3.1.1
=================================================================
Attempting to install the linux-suse10-amd64 toolset...
Unpacking CPU2006 base files (141.5 MB)
Unpacking 400.perlbench benchmark and data files (61.5 MB)
Unpacking 401.bzip2 benchmark and data files (110.7 MB)
Unpacking 403.gcc benchmark and data files (43 MB)
Unpacking 410.bwaves benchmark and data files (0.1 MB)
Unpacking 416.gamess benchmark and data files (16.8 MB)
Unpacking 429.mcf benchmark and data files (6.9 MB)
Unpacking 433.milc benchmark and data files (0.6 MB)
Unpacking 434.zeusmp benchmark and data files (1.1 MB)
Unpacking 435.gromacs benchmark and data files (13 MB)
Unpacking 436.cactusADM benchmark and data files (3.3 MB)
Unpacking 437.leslie3d benchmark and data files (0.3 MB)
Unpacking 444.namd benchmark and data files (7.6 MB)
Unpacking 445.gobmk benchmark and data files (9.2 MB)
Unpacking 447.dealII benchmark and data files (70.2 MB)
Unpacking 450.soplex benchmark and data files (321 MB)
Unpacking 453.povray benchmark and data files (10.3 MB)
Unpacking 454.calculix benchmark and data files (26 MB)
Unpacking 456.hmmer benchmark and data files (57 MB)
Unpacking 458.sjeng benchmark and data files (0.4 MB)
Unpacking 459.GemsFDTD benchmark and data files (2.6 MB)
Unpacking 462.libquantum benchmark and data files (0.2 MB)
Unpacking 464.h264ref benchmark and data files (52.9 MB)
Unpacking 465.tonto benchmark and data files (6.9 MB)
Unpacking 470.lbm benchmark and data files (4.7 MB)
Unpacking 471.omnetpp benchmark and data files (2.8 MB)
Unpacking 473.astar benchmark and data files (5.8 MB)
Unpacking 481.wrf benchmark and data files (67.1 MB)
Unpacking 482.sphinx3 benchmark and data files (51.7 MB)
Unpacking 483.xalancbmk benchmark and data files (213.7 MB)
Unpacking 998.specrand benchmark and data files (4.1 MB)
Unpacking 999.specrand benchmark and data files (4.1 MB)
Checking the integrity of your source tree...
Checksums are all okay.
Unpacking binary tools for linux-suse10-amd64...
Checking the integrity of your binary tools...
Checksums are all okay.
Testing the tools installation (this may take a minute)
........................................................................o.................................................................................................................................................
Installation successful. Source the shrc or cshrc in
/home/speccpu/cpu2006/
to set up your environment for the benchmark.
测试
准备配置文件
cd /home/speccpu/cpu2006/config/
cp Example-linux64-amd64-gcc43+.cfg gcc.cfg
根据cpu调整绑核(单路,只有一个numa node)
运行测试
单核
runspec -c gcc.cfg -T base -n 3 -r 1 -I -i ref all
错误处理
error: invalid use of '__builtin_va_arg_pack ()'
specmake build 2> make.err | tee make.out
/usr/bin/gcc -c -o av.o -DSPEC_CPU -DNDEBUG -DPERL_CORE -O2 -fno-strict-aliasing -DSPEC_CPU_LP64 -DSPEC_CPU_LINUX_X64 av.c
In file included from /usr/include/stdio.h:894,
from perlio.h:65,
from iperlsys.h:51,
from perl.h:2585,
from av.c:22:
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function 'sprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:10: error: invalid use of '__builtin_va_arg_pack ()'
38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 | __glibc_objsize (__s), __fmt,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 | __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function 'snprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: error: invalid use of '__builtin_va_arg_pack ()'
71 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72 | __glibc_objsize (__s), __fmt,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 | __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function 'fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:105:10: error: invalid use of '__builtin_va_arg_pack ()'
105 | return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
106 | __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function 'printf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:112:10: error: invalid use of '__builtin_va_arg_pack ()'
112 | return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function 'dprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:149:10: error: invalid use of '__builtin_va_arg_pack ()'
149 | return __dprintf_chk (__fd, __USE_FORTIFY_LEVEL - 1, __fmt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
150 | __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~
In file included from /usr/include/features.h:486,
from /usr/include/x86_64-linux-gnu/sys/types.h:25,
from perl.h:384,
from av.c:22:
/usr/include/x86_64-linux-gnu/bits/fcntl2.h: In function 'open':
/usr/include/x86_64-linux-gnu/bits/fcntl2.h:43:7: error: invalid use of '__builtin_va_arg_pack_len ()'
43 | if (__va_arg_pack_len () > 1)
| ^~~~~~~~~~~~~~~~~
cc1: error: invalid use of '__builtin_va_arg_pack_len ()'
In file included from /usr/include/fcntl.h:314,
from /usr/include/x86_64-linux-gnu/sys/file.h:24,
from perl.h:4500,
from av.c:22:
/usr/include/x86_64-linux-gnu/bits/fcntl2.h:59:10: error: invalid use of '__builtin_va_arg_pack ()'
59 | return __open_alias (__path, __oflag, __va_arg_pack ());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/features.h:486,
from /usr/include/x86_64-linux-gnu/sys/types.h:25,
from perl.h:384,
from av.c:22:
/usr/include/x86_64-linux-gnu/bits/fcntl2.h: In function 'openat':
/usr/include/x86_64-linux-gnu/bits/fcntl2.h:119:7: error: invalid use of '__builtin_va_arg_pack_len ()'
119 | if (__va_arg_pack_len () > 1)
| ^~~~~~~~~~~~~~~~~
cc1: error: invalid use of '__builtin_va_arg_pack_len ()'
In file included from /usr/include/fcntl.h:314,
from /usr/include/x86_64-linux-gnu/sys/file.h:24,
from perl.h:4500,
from av.c:22:
/usr/include/x86_64-linux-gnu/bits/fcntl2.h:135:10: error: invalid use of '__builtin_va_arg_pack ()'
135 | return __openat_alias (__fd, __path, __oflag, __va_arg_pack ());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
specmake: *** [av.o] Error 1
Error with make 'specmake build': check file '/home/speccpu/cpu2006/benchspec/CPU2006/400.perlbench/build/build_base_gcc43-64bit.0000/make.err'
Command returned exit code 2
Error with make!
*** Error building 400.perlbench
If you wish to ignore this error, please use '-I' or ignore errors.
The log for this run is in /home/speccpu/cpu2006/result/CPU2006.001.log
The debug log for this run is in /home/speccpu/cpu2006/result/CPU2006.001.log.debug
*
* Temporary files were NOT deleted; keeping temporaries such as
* /home/speccpu/cpu2006/result/CPU2006.001.log.debug and
* /home/speccpu/cpu2006/tmp/CPU2006.001
* (These may be large!)
*
估计是GCC版本太高,speccpu2006太老。
gcc -O1 -O2 -O3均有此问题,改为-O0
注意:此修改,跑SPEC已经无意义,明显会降低跑分!后续还是重点研究2017
Error: Type mismatch in argument 'ifa' at (1); passed REAL(8) to INTEGER(4)
涉及修改源码,太费劲了。
放弃在ubuntu20.04上的测试。