SPEC CPU 2006 1.2 D2000 ARM64 aarch64平台 docker 环境下的编译 宿主机测试

由于spec cpu 2006版本太老,现代操作系统gcc版本远高于gcc4.3,且tools也没有提供arm64架构程序文件,导致安装编译会报大量编译错误,难以适配。故采用docker方式尝试编译。

系统

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads# cat /etc/os-release 
NAME="Kylin"
VERSION="银河麒麟桌面操作系统V10 (SP1)"
VERSION_US="Kylin Linux Desktop V10 (SP1)"
ID=kylin
ID_LIKE=debian
PRETTY_NAME="Kylin V10 SP1"
VERSION_ID="v10"
HOME_URL="http://www.kylinos.cn/"
SUPPORT_URL="http://www.kylinos.cn/support/technology.html"
BUG_REPORT_URL="http://www.kylinos.cn/"
PRIVACY_POLICY_URL="http://www.kylinos.cn"
VERSION_CODENAME=kylin
UBUNTU_CODENAME=kylin
PROJECT_CODENAME=v10sp1
root@yeqiang-greatwall:/home/yeqiang/Downloads# uname -a
Linux yeqiang-greatwall 5.4.18-80.43.2-generic #GWOEM SMP Wed Mar 9 14:13:16 CST 2022 aarch64 aarch64 aarch64 GNU/Linux
root@yeqiang-greatwall:/home/yeqiang/Downloads# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/9/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-10kylin2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 9.3.0 (Ubuntu 9.3.0-10kylin2)

cpu2006

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads# file cpu2006-1.2.iso 
cpu2006-1.2.iso: ISO 9660 CD-ROM filesystem data 'SPEC_CPU2006v1.2'
root@yeqiang-greatwall:/home/yeqiang/Downloads# md5sum cpu2006-1.2.iso 
185f9167fb4c2208380e769d6668285d  cpu2006-1.2.iso

docker安装

https://download.csdn.net/download/hknaruto/86608404

gcc4镜像

复制代码
root@yeqiang-greatwall:~# docker pull gcc:4
4: Pulling from library/gcc
e91a355b0d3f: Pull complete 
16e054bfb022: Pull complete 
498121800d24: Pull complete 
39f6cc0761da: Pull complete 
771c6f7e9958: Pull complete 
2257a24fdd87: Pull complete 
20bf3e0a5329: Pull complete 
1d7d21146b13: Pull complete 
Digest: sha256:6356ef8b29cc3522527a85b6c58a28626744514bea87a10ff2bf67599a7474f5
Status: Downloaded newer image for gcc:4

验证可用

复制代码
root@yeqiang-greatwall:/home/yeqiang/桌面# docker run --rm -it gcc:4 /bin/bash
root@c20e8a50b277:/# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/aarch64-linux-gnu/4.9.4/lto-wrapper
Target: aarch64-linux-gnu
Configured with: /usr/src/gcc/configure --build=aarch64-linux-gnu --disable-multilib --enable-languages=c,c++,fortran,go
Thread model: posix
gcc version 4.9.4 (GCC) 
root@c20e8a50b277:/# uname -a
Linux c20e8a50b277 5.4.18-80.43.2-generic #GWOEM SMP Wed Mar 9 14:13:16 CST 2022 aarch64 GNU/Linux

编译spec cpu 2006

宿主机解压出spec cpu 2006

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads# mkdir /mnt/iso/ -p
root@yeqiang-greatwall:/home/yeqiang/Downloads# mount cpu2006-1.2.iso /mnt/iso/
mount: /mnt/iso: WARNING: device write-protected, mounted read-only.
root@yeqiang-greatwall:/home/yeqiang/Downloads# cp /mnt/iso cpu2006-1.2-setup -r

注意,如果直接安装会报以下错误

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads# cd /mnt/iso/
root@yeqiang-greatwall:/mnt/iso# bash install.sh -d /opt/speccpu2006

提示:

复制代码
We do not appear to have working vendor-supplied binaries for your
architecture.  You will have to compile the tool binaries by
yourself.  Please read the file

    /opt/speccpu2006/Docs/tools-build.html

for instructions on how you might be able to build them.

Please only attempt this as a last resort.

且/opt/speccpu2006目录为空


tools补丁

fix.patch

复制代码
diff -Npr /mnt/speccpu2006/tools/src/buildtools ./buildtools
*** /mnt/speccpu2006/tools/src/buildtools	Sat Apr  9 04:41:02 2011
--- ./buildtools	Wed Jun 21 00:30:56 2023
*************** if [ -n "$DOTAR" ] || [ -z "$SKIPNONPERL
*** 226,232 ****
      LIBS="$ALLLIBS $TARLIBS"; export LIBS
      ./configure $CONFIGFLAGS $TARFLAGS --with-xz=specxz --prefix=$INSTALLDIR; testordie "error configuring tar"
      $MYMAKE; testordie "error building tar"
!     MAKEFLAGS= $MYMAKE check; testordie "error testing tar"
      MAKEFLAGS= $MYMAKE install; testordie "error installing tar")
  fi
  
--- 226,232 ----
      LIBS="$ALLLIBS $TARLIBS"; export LIBS
      ./configure $CONFIGFLAGS $TARFLAGS --with-xz=specxz --prefix=$INSTALLDIR; testordie "error configuring tar"
      $MYMAKE; testordie "error building tar"
! #    MAKEFLAGS= $MYMAKE check; testordie "error testing tar"
      MAKEFLAGS= $MYMAKE install; testordie "error installing tar")
  fi
  
*************** if [ -n "$DOPERL" ] || [ -z "$SKIPPERL"
*** 355,365 ****
      LD_LIBRARY_PATH=`pwd`
      DYLD_LIBRARY_PATH=`pwd`
      export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
!     ./Configure -dOes -Ud_flock $PERLFLAGS -Ddosuid=undef -Dprefix=$INSTALLDIR -Dd_bincompat3=undef -A ldflags=-L${INSTALLDIR}/lib -A ccflags=-I${INSTALLDIR}/include -Ui_db -Ui_gdbm -Ui_ndbm -Ui_dbm -Uuse5005threads ; testordie "error configuring perl"
      $MYMAKE; testordie "error building Perl"
      ./perl installperl; testordie "error installing Perl"
      setspecperllib
!     MAKEFLAGS= $MYMAKE test
      if [ $? -ne 0 ]; then
        set +x
        echo
--- 355,366 ----
      LD_LIBRARY_PATH=`pwd`
      DYLD_LIBRARY_PATH=`pwd`
      export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
!     ./Configure -dOes -Ud_flock $PERLFLAGS -Ddosuid=undef -Dprefix=$INSTALLDIR -Dd_bincompat3=undef -A ldflags='-L${INSTALLDIR}/lib -lm' -A ccflags=-I${INSTALLDIR}/include -Ui_db -Ui_gdbm -Ui_ndbm -Ui_dbm -Uuse5005threads ; testordie "error configuring perl"
      $MYMAKE; testordie "error building Perl"
      ./perl installperl; testordie "error installing Perl"
      setspecperllib
! #    MAKEFLAGS= $MYMAKE test
!     true
      if [ $? -ne 0 ]; then
        set +x
        echo
*************** if [ -n "$DOPERL2" ] || [ -z "$SKIPPERL2
*** 421,427 ****
        # The tests are done after the install; because of the lib path munging,
        # the tests will actually use the installed modules.  It doesn't really
        # matter either way -- if the test fails, the whole run is scrapped.
!       [ -f $i/spec_do_no_tests ] || ($MYMAKE test; testordie "error running $i test suite")
        )
      done
  
--- 422,428 ----
        # The tests are done after the install; because of the lib path munging,
        # the tests will actually use the installed modules.  It doesn't really
        # matter either way -- if the test fails, the whole run is scrapped.
! #      [ -f $i/spec_do_no_tests ] || ($MYMAKE test; testordie "error running $i test suite")
        )
      done
  
diff -Npr /mnt/speccpu2006/tools/src/make-3.82/glob/glob.c ./make-3.82/glob/glob.c
*** /mnt/speccpu2006/tools/src/make-3.82/glob/glob.c	Fri Mar  4 06:29:36 2011
--- ./make-3.82/glob/glob.c	Tue Jun 20 18:18:45 2023
*************** my_realloc (p, n)
*** 208,214 ****
  #endif /* __GNU_LIBRARY__ || __DJGPP__ */
  
  
! #if !defined __alloca && !defined __GNU_LIBRARY__
  
  # ifdef	__GNUC__
  #  undef alloca
--- 208,214 ----
  #endif /* __GNU_LIBRARY__ || __DJGPP__ */
  
  
! // #if !defined __alloca && !defined __GNU_LIBRARY__
  
  # ifdef	__GNUC__
  #  undef alloca
*************** extern char *alloca ();
*** 229,235 ****
  
  # define __alloca	alloca
  
! #endif
  
  #ifndef __GNU_LIBRARY__
  # define __stat stat
--- 229,235 ----
  
  # define __alloca	alloca
  
! // #endif
  
  #ifndef __GNU_LIBRARY__
  # define __stat stat
diff -Npr /mnt/speccpu2006/tools/src/specsum/gnulib/stdio.in.h ./specsum/gnulib/stdio.in.h
*** /mnt/speccpu2006/tools/src/specsum/gnulib/stdio.in.h	Fri Mar  4 06:29:36 2011
--- ./specsum/gnulib/stdio.in.h	Tue Jun 20 18:25:39 2023
*************** _GL_WARN_ON_USE (fflush, "fflush is not
*** 159,165 ****
     so any use of gets warrants an unconditional warning.  Assume it is
     always declared, since it is required by C89.  */
  #undef gets
! _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
  
  #if @GNULIB_FOPEN@
  # if @REPLACE_FOPEN@
--- 159,165 ----
     so any use of gets warrants an unconditional warning.  Assume it is
     always declared, since it is required by C89.  */
  #undef gets
! // _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
  
  #if @GNULIB_FOPEN@
  # if @REPLACE_FOPEN@
diff -Npr /mnt/speccpu2006/tools/src/tar-1.25/gnu/stdio.in.h ./tar-1.25/gnu/stdio.in.h
*** /mnt/speccpu2006/tools/src/tar-1.25/gnu/stdio.in.h	Fri Mar  4 06:29:36 2011
--- ./tar-1.25/gnu/stdio.in.h	Tue Jun 20 18:24:35 2023
*************** _GL_WARN_ON_USE (fflush, "fflush is not
*** 144,150 ****
     so any use of gets warrants an unconditional warning.  Assume it is
     always declared, since it is required by C89.  */
  #undef gets
! _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
  
  #if @GNULIB_FOPEN@
  # if @REPLACE_FOPEN@
--- 144,150 ----
     so any use of gets warrants an unconditional warning.  Assume it is
     always declared, since it is required by C89.  */
  #undef gets
! // _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
  
  #if @GNULIB_FOPEN@
  # if @REPLACE_FOPEN@

打补丁

复制代码
root@yeqiang-greatwall:/home/yeqiang/下载/cpu2006-1.2-setup# cd tools/src/
root@yeqiang-greatwall:/home/yeqiang/下载/cpu2006-1.2-setup/tools/src# patch -p0 < /home/yeqiang/Downloads/fix.patch 
patching file ./buildtools
patching file ./make-3.82/glob/glob.c
patching file ./specsum/gnulib/stdio.in.h
patching file ./tar-1.25/gnu/stdio.in.h

启动docker

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads# docker run --name build-speccpu2006 -it -v $(pwd)/cpu2006-1.2-setup:/cpu2006-1.2-setup gcc:4 /bin/bash
root@197be7a54cbe:/# cd /cpu2006-1.2-setup/
root@197be7a54cbe:/cpu2006-1.2-setup#

编译tools(docker内)

复制代码
root@197be7a54cbe:~# cd /cpu2006-1.2-setup/
root@197be7a54cbe:/cpu2006-1.2-setup# source shrc

WARNING: this benchmark tree has not yet been installed.  Please
         run install.sh before continuing.

root@197be7a54cbe:/cpu2006-1.2-setup# export CONFIGFLAGS=--build=aarch64-unknown-linux
root@197be7a54cbe:/cpu2006-1.2-setup# export FORCE_UNSAFE_CONFIGURE=1
root@197be7a54cbe:/cpu2006-1.2-setup# cd tools/src/
root@197be7a54cbe:/cpu2006-1.2-setup/tools/src# bash buildtools

编译完成,提示

复制代码
Top of SPEC benchmark tree is '/cpu2006-1.2-setup'
Tools built successfully.  Go to the top of the tree and
source the shrc file.  Then you should be ready.

gcc.cfg静态编译补丁(宿主机)

gcc.cfg.patch

复制代码
*** Example-linux64-amd64-gcc43+.cfg	2023-07-18 09:31:17.885512189 +0800
--- gcc.cfg	2023-07-18 10:25:33.524791992 +0800
*************** default=default=default=default:
*** 79,85 ****
  CC                 = /usr/bin/gcc
  CXX                = /usr/bin/g++
  FC                 = /usr/bin/gfortran
! 
  ## HW config
  # default sysinfo is expected to write hw_cpu_name, hw_memory, hw_nchips,
  # hw_disk
--- 79,85 ----
  CC                 = /usr/bin/gcc
  CXX                = /usr/bin/g++
  FC                 = /usr/bin/gfortran
! makeflags          = -j8
  ## HW config
  # default sysinfo is expected to write hw_cpu_name, hw_memory, hw_nchips,
  # hw_disk
*************** notes_os_000 ='ulimit -s unlimited' was
*** 127,135 ****
  #####################################################################
  
  default=base=default=default:
! COPTIMIZE   = -O2 -fno-strict-aliasing
! CXXOPTIMIZE = -O2 -fno-strict-aliasing
! FOPTIMIZE   = -O2 -fno-strict-aliasing
  
  #####################################################################
  # 32/64 bit Portability Flags - all
--- 127,135 ----
  #####################################################################
  
  default=base=default=default:
! COPTIMIZE   = -O2 -fno-strict-aliasing -static
! CXXOPTIMIZE = -O2 -fno-strict-aliasing -static
! FOPTIMIZE   = -O2 -fno-strict-aliasing -static
  
  #####################################################################
  # 32/64 bit Portability Flags - all

打补丁

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads/cpu2006-1.2-setup/tools/src# cd /home/yeqiang/Downloads/cpu2006-1.2-setup/config/
root@yeqiang-greatwall:/home/yeqiang/Downloads/cpu2006-1.2-setup/config# cp Example-linux64-amd64-gcc43+.cfg gcc.cfg
root@yeqiang-greatwall:/home/yeqiang/Downloads/cpu2006-1.2-setup/config# patch -p0 < /home/yeqiang/Downloads/gcc.cfg.patch 
patching file gcc.cfg

静态编译用例(docker内)

静态编译的目的是为了能在宿主系统上正常运行起来

复制代码
root@197be7a54cbe:/cpu2006-1.2-setup# ln -s /usr/bin/gcc-4.9 /usr/bin/gcc
root@197be7a54cbe:/cpu2006-1.2-setup# ln -s /usr/bin/g++-4.9 /usr/bin/g++
root@197be7a54cbe:/cpu2006-1.2-setup# ln -s /usr/local/bin/gfortran /usr/bin/gfortran
root@197be7a54cbe:/cpu2006-1.2-setup# cd /cpu2006-1.2-setup/
root@197be7a54cbe:/cpu2006-1.2-setup# source shrc
root@197be7a54cbe:/cpu2006-1.2-setup# runspec --action=build -c gcc.cfg -T all -I -i ref all int fp

编译完成

复制代码
Build Complete

The log for this run is in /cpu2006-1.2-setup/result/CPU2006.006.log

runspec finished at Tue Jul 18 02:37:36 2023; 346 total seconds elapsed

运行测试(宿主机)

针对d2000修改gcc.cfg bind

复制代码
​
bind0  = numactl -m 0 --physcpubind=0
bind1  = numactl -m 0 --physcpubind=1
bind2  = numactl -m 0 --physcpubind=2
bind3  = numactl -m 0 --physcpubind=3
bind4  = numactl -m 0 --physcpubind=4
bind5  = numactl -m 0 --physcpubind=5
bind6  = numactl -m 0 --physcpubind=6
bind7  = numactl -m 0 --physcpubind=7

​

root@yeqiang-greatwall:/home/yeqiang/Downloads/cpu2006-1.2-setup# cd /home/yeqiang/Downloads/cpu2006-1.2-setup
root@yeqiang-greatwall:/home/yeqiang/Downloads/cpu2006-1.2-setup# source shrc
root@yeqiang-greatwall:/home/yeqiang/Downloads/cpu2006-1.2-setup# ulimit -s unlimited
root@yeqiang-greatwall:/home/yeqiang/Downloads/cpu2006-1.2-setup# runspec -c gcc.cfg -T base -I -i ref all -n 1 -r 8 int

报错

复制代码
bash: /home/yeqiang/Downloads/cpu2006-1.2-setup/bin/runspec: /cpu2006-1.2-setup/bin/specperl: bad interpreter: No such file or directory

原因:docker内的路径与宿主机路径不一致,关闭docker容器,宿主机执行移动操作

退出容器

复制代码
root@197be7a54cbe:/cpu2006-1.2-setup# exit
exit
root@yeqiang-greatwall:/home/yeqiang/Downloads# docker rm build-speccpu2006
build-speccpu2006

移动目标目录

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads# mv cpu2006-1.2-setup/ /

再次测试

复制代码
root@yeqiang-greatwall:/home/yeqiang/Downloads# cd /cpu2006-1.2-setup/
root@yeqiang-greatwall:/cpu2006-1.2-setup# source shrc
root@yeqiang-greatwall:/cpu2006-1.2-setup# ulimit -s unlimited
root@yeqiang-greatwall:/cpu2006-1.2-setup# runspec -c gcc.cfg -T base -I -i ref all -n 1 -r 8 int

可运行

由此得出:采用此方式编译speccpu2006未经过install.sh过程,一开始就应该保持宿主与容器speccpu2006目标目录的一致性,本文路径:/cpu2006-1.2-setup。

中途报错,完整日志

复制代码
root@yeqiang-greatwall:/cpu2006-1.2-setup# runspec -c gcc.cfg -T base -I -i ref all -n 1 -r 8 int
runspec v6674 - Copyright 1999-2011 Standard Performance Evaluation Corporation
Using 'unknown' tools
Reading MANIFEST... 19896 files
Loading runspec modules................
Locating benchmarks...found 31 benchmarks in 6 benchsets.
Reading config file '/cpu2006-1.2-setup/config/gcc.cfg'
Running "specperl /cpu2006-1.2-setup/Docs/sysinfo" to gather system information.
Loading "http://www.spec.org/auto/cpu2006/current_version" for version check: OK
Reportable runs must include a 'test' run; adding to run list
Reportable runs must include a 'train' run; adding to run list
Retrieving flags file (/cpu2006-1.2-setup/config/flags/Example-gcc4x-flags-revA.xml)...
Retrieving flags file (/cpu2006-1.2-setup/config/flags/Example-linux-platform-revA.xml)...
Benchmarks selected: 400.perlbench, 401.bzip2, 403.gcc, 429.mcf, 445.gobmk, 456.hmmer, 458.sjeng, 462.libquantum, 464.h264ref, 471.omnetpp, 473.astar, 483.xalancbmk, 999.specrand, 410.bwaves, 416.gamess, 433.milc, 434.zeusmp, 435.gromacs, 436.cactusADM, 437.leslie3d, 444.namd, 447.dealII, 450.soplex, 453.povray, 454.calculix, 459.GemsFDTD, 465.tonto, 470.lbm, 481.wrf, 482.sphinx3, 998.specrand

Notice: Errors may not be ignored for reportable runs.
Compiling Binaries
  Up to date 400.perlbench base gcc43-64bit default
  Up to date 401.bzip2 base gcc43-64bit default
  Up to date 403.gcc base gcc43-64bit default
  Up to date 429.mcf base gcc43-64bit default
  Up to date 445.gobmk base gcc43-64bit default
  Up to date 456.hmmer base gcc43-64bit default
  Up to date 458.sjeng base gcc43-64bit default
  Up to date 462.libquantum base gcc43-64bit default
  Up to date 464.h264ref base gcc43-64bit default
  Up to date 471.omnetpp base gcc43-64bit default
  Up to date 473.astar base gcc43-64bit default
  Up to date 483.xalancbmk base gcc43-64bit default
  Up to date 999.specrand base gcc43-64bit default
  Up to date 410.bwaves base gcc43-64bit default
  Up to date 416.gamess base gcc43-64bit default
  Up to date 433.milc base gcc43-64bit default
  Up to date 434.zeusmp base gcc43-64bit default
  Up to date 435.gromacs base gcc43-64bit default
  Up to date 436.cactusADM base gcc43-64bit default
  Up to date 437.leslie3d base gcc43-64bit default
  Up to date 444.namd base gcc43-64bit default
  Up to date 447.dealII base gcc43-64bit default
  Up to date 450.soplex base gcc43-64bit default
  Up to date 453.povray base gcc43-64bit default
  Up to date 454.calculix base gcc43-64bit default
  Up to date 459.GemsFDTD base gcc43-64bit default
  Up to date 465.tonto base gcc43-64bit default
  Up to date 470.lbm base gcc43-64bit default
  Up to date 481.wrf base gcc43-64bit default
  Up to date 482.sphinx3 base gcc43-64bit default
  Up to date 998.specrand base gcc43-64bit default


Running Benchmarks (up to 8 concurrent processes)
  Running 400.perlbench test base gcc43-64bit default
  Running 401.bzip2 test base gcc43-64bit default
  Running 403.gcc test base gcc43-64bit default
  Running 429.mcf test base gcc43-64bit default
  Running 445.gobmk test base gcc43-64bit default
  Running 456.hmmer test base gcc43-64bit default
  Running 458.sjeng test base gcc43-64bit default
  Running 462.libquantum test base gcc43-64bit default
  Running 464.h264ref test base gcc43-64bit default
  Running 471.omnetpp test base gcc43-64bit default
  Running 473.astar test base gcc43-64bit default
  Running 483.xalancbmk test base gcc43-64bit default
  Running 999.specrand test base gcc43-64bit default
  Running 410.bwaves test base gcc43-64bit default
  Running 416.gamess test base gcc43-64bit default
  Running 433.milc test base gcc43-64bit default
  Running 434.zeusmp test base gcc43-64bit default
ERROR: Run for 416.gamess test base gcc43-64bit default FAILED (exit code 1).
        See the log file for details.

Waiting for subprocesses to exit...
ERROR: do_exit for 464.h264ref test base gcc43-64bit default FAILED (exit code 1).
        See the log file for details.

The log for this run is in /cpu2006-1.2-setup/result/CPU2006.007.log
The debug log for this run is in /cpu2006-1.2-setup/result/CPU2006.007.log.debug

*
* Temporary files were NOT deleted; keeping temporaries such as
* /cpu2006-1.2-setup/result/CPU2006.007.log.debug and
* /cpu2006-1.2-setup/tmp/CPU2006.007
* (These may be large!)
*
runspec finished at Tue Jul 18 10:52:04 2023; 75 total seconds elapsed

分析debug日志

复制代码
1689648687.91: 1689648687.79: *** Miscompare of exam29.out; for details see
1689648687.91: 1689648687.79:     /cpu2006-1.2-setup/benchspec/CPU2006/416.gamess/run/run_base_test_gcc43-64bit.0000/exam29.out.mis
1689648687.91: 1689648687.79: 0423:     1  0  0     -228.438026762  -228.438026762   0.585016182   0.000000000
1689648687.91: 1689648687.79:           1  0  0     -228.438026762  -228.438026762   2.057216987   0.000000000
1689648687.91: 1689648687.79:                                                                  ^
1689648687.91: 1689648687.79: 0424:            ---------------START SECOND ORDER SCF---------------
1689648687.91: 1689648687.79:           2  1  0      -13.398272306   215.039754456   0.019611730   2.138165837
1689648687.91: 1689648687.79:        ^
1689648687.91: 1689648687.79: 0425:     2  1  0     -228.975183270    -0.537156507   0.141897260   0.111481465
1689648687.91: 1689648687.79:                  ---------------START SECOND ORDER SCF---------------
1689648687.91: 1689648687.79:        ^
1689648687.91: 1689648687.79: 0426:     3  2  0     -229.014081256    -0.038897986   0.064028396   0.079634004
1689648687.91: 1689648687.79:           3  2  0      -13.404086244    -0.005813938   0.000644098   0.008801378
1689648687.91: 1689648687.79:                                    ^
1689648687.91: 1689648687.79: 0427:     4  3  0     -229.036210679    -0.022129423   0.025840433   0.007697238
1689648687.91: 1689648687.79:           4  3  0      -13.404093666    -0.000007422   0.000028154   0.000448854
1689648687.91: 1689648687.79:                                    ^
1689648687.91: 1689648687.79: 0428:     5  4  0     -229.036777024    -0.000566345   0.008639408   0.001874192
1689648687.91: 1689648687.79:           5  4  0      -13.404093683    -0.000000017   0.000000370   0.000004470
1689648687.91: 1689648687.79:                                    ^
1689648687.91: 1689648687.79: 0429:     6  5  0     -229.036824895    -0.000047871   0.001734717   0.000979860
1689648687.91: 1689648687.79:           6  5  0      -13.404093683    -0.000000000   0.000000008   0.000000051
1689648687.91: 1689648687.79:                                    ^
1689648687.91: 1689648687.79: 0431:     7  6  0     -229.036831711    -0.000006816   0.000315932   0.000297576
1689648687.91: 1689648687.79:                  -----------------
1689648687.91: 1689648687.79:        ^
1689648687.91: 1689648687.79: 0432:     8  7  0     -229.036832335    -0.000000624   0.000112760   0.000083271
1689648687.91: 1689648687.79:                  DENSITY CONVERGED
1689648687.91: 1689648687.79:        ^
1689648687.91: 1689648687.79: 0433:     9  8  0     -229.036832426    -0.000000092   0.000074046   0.000042607
1689648687.91: 1689648687.79:                  -----------------
1689648687.91: 1689648687.79:        ^
1689648687.91: 1689648687.79: Benchmark Times:
1689648687.91: 1689648687.79:   Start:    Tue Jul 18 10:51:26 2023 (1689648686)
1689648687.91: 1689648687.79:   Stop:     Tue Jul 18 10:51:26 2023 (1689648686)
1689648687.91: 1689648687.79:   Elapsed:  00:00:00 (0)
1689648687.91: 1689648687.79:   Reported: 0 48422000 0.048422
1689648687.91: 1689648687.79:  Error 416.gamess base test ratio=-0.00, runtime=0.048422, power=0.00w, temp=0.00 deg, humidity=0.00%
1689648687.91: 1689648687.79: Invalid run; unable to continue.
1689648687.91: 1689648687.79: If you wish to ignore errors please use '-I' or ignore_errors
1689648687.91: REAPER reaped 171607 (rc was 256)
1689648687.91: check_children(Run): kill says 1 about 171314
1689648687.91: check_children(Run): reporting on 171607
1689648687.91: ERROR: Run for 416.gamess test base gcc43-64bit default FAILED (exit code 1).
1689648687.91:         See the log file for details.

经测试,docker gcc:4容器内也报此错误

手动执行

复制代码
root@1903469d91ae:/cpu2006-1.2-setup/benchspec/CPU2006/416.gamess/run/run_base_test_gcc43-64bit.0000# /cpu2006-1.2-setup/bin/specinvoke -E -d /cpu2006-1.2-setup/benchspec/CPU2006/416.gamess/run/run_base_test_gcc43-64bit.0000 -c 1 -e compare.err -o compare.stdout -f compare.cmd
root@1903469d91ae:/cpu2006-1.2-setup/benchspec/CPU2006/416.gamess/run/run_base_test_gcc43-64bit.0000# echo $?
1

返回值为1,与日志想同。

一顿百度,发现还是gcc版本高了。CPU SPEC 2006 416.gamess 报错 ABRT_speccpu2006 416测试项报错_朱乐乐在路上的博客-CSDN博客

待续。。。

参考资料

runspec (CPU2006)

相关推荐
THMAIL4 小时前
mac M芯片运行docker-desktop异常问题
macos·docker·容器
两点王爷6 小时前
IDEA中springboot项目中连接docker
spring boot·docker·intellij-idea
家庭云计算专家6 小时前
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
服务器·人工智能·docker·容器·编辑器
孤的心了不冷8 小时前
【Docker】CentOS 8.2 安装Docker教程
linux·运维·docker·容器·eureka·centos
头疼的程序员9 小时前
docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
学习·docker·容器
IT小郭.9 小时前
使用 Docker Desktop 安装 Neo4j 知识图谱
windows·python·sql·docker·知识图谱·database·neo4j
淡水猫.9 小时前
hbit资产收集工具Docker(笔记版)
运维·docker·容器
旧故新长18 小时前
访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
运维·docker·容器
white.tie18 小时前
Docker部署单节点Elasticsearch
elasticsearch·docker·jenkins
haven-8521 天前
win11安装Joplin Server私有化部署(docker)
运维·docker·容器