Resumen de los parámetros detallados de SPEC2006 y problemas comunes en el proceso de prueba (con operaciones de ejemplo)

1. Introducción

En este artículo se utiliza principalmente SPEC2006 para realizar pruebas en la plataforma ARM. El sistema Linux utilizado es Debian. El proceso de prueba se describe a través de ejemplos de funcionamiento específicos. SPEC2006 es una nueva generación de la suite de referencia de pruebas de CPU estandarizada por la industria de SPEC. Concéntrese en probar el procesador del sistema, el subsistema de memoria y el compilador. Esta suite de referencia incluye la referencia SPECint y la referencia SPECfp. El benchmark SPECint2006 contiene 12 benchmarks diferentes y el benchmark SPECfp2006 contiene 19 benchmarks diferentes. SPEC diseñó esta suite para proporcionar una herramienta de prueba de CPU de hardware cruzado de alto rendimiento y cálculo intensivo relativamente estándar. El banco de pruebas SPEC CPU 2006 tiene varias formas diferentes de medir el rendimiento de la computadora. Una forma es una medida de qué tan rápido una computadora puede completar una sola tarea, otra forma es una medida de rendimiento, capacidad o velocidad.

Descripción general del proceso general:
1. Cree el entorno del sistema,
2. Descomprima el archivo de prueba,
3. Ejecute el script de instalación,
4. Inicialice las variables de entorno,
5. Copie y modifique el archivo cfg
;

2. Cree el entorno del sistema

Instalar el sistema operativo linux y el compilador de lenguaje correspondiente como: gcc gcc-g++ gcc-gfortran;

[root@localhost /]# apt-get install gcc gcc-g++ gcc-gfortran -y

3. Descomprima el archivo de prueba

Cargue el paquete de instalación de speccpu2006 en el sistema operativo, descomprímalo e ingrese al directorio de prueba

[root@localhost /]# tar -xvf speccpu2006-v1.0.1.tar -C .
[root@localhost /speccpu2006-v1.0.1]# cd  speccpu2006-v1.0.1

## 4. Ejecutar el script de instalación

[root@localhost /speccpu2006-v1.0.1]# ./install.sh //如遇没有权限执行脚本,请确保是否为root用户,同时给所以文件加入可执行权限
[root@localhost /speccpu2006-v1.0.1]# chmod   -R a+x *  

5. Inicializa las variables de entorno

[root@localhost /speccpu2006-v1.0.1]# source shrc

6. Copie y modifique el archivo cfg

[root@localhost /speccpu2006-v1.0.1/config]# cd config/
[root@localhost /speccpu2006-v1.0.1/config]# cp arm64.cfg test.cfg //根据架构选择不通的cfg文件

//Es necesario modificar la configuración de cfg, como la configuración de hardware, los parámetros de compilación y los parámetros de compilación de cada subelemento, (porque estoy en el proceso de prueba, por la versión del compilador, se produce el error de compilación, por lo que necesita modificar los parámetros de compilación del subelemento, más adelante hablaremos en el Capítulo), la imagen específica es la siguiente:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

7. Ingrese los parámetros de acuerdo con las necesidades de la prueba y ejecute la prueba

7.1 Alcance de prueba de SPEC2006

1. Prueba de proyecto único

runspec -c  test.cfg  429.mcf --rate 4 -n 1  --noreportable

2. Prueba de entero int

runspec -c test.cfg  int --rate 8 -n 1 -size=ref   --noreportable    --output_format all

3, número de punto flotante fp

runspec -c test.cfg  fp --rate 8 -n 1 -size=ref   --noreportable    --output_format all

4. Prueba de proyecto completo

runspec -c test.cfg --rate 8  --noreportable --size=ref  --tune=base  -o text,screen,pdf -I --iterations=1 all

7.2 Explicación detallada de los parámetros

1) ref: escala de prueba (la escala de prueba tiene prueba, referencia y entrenamiento, y el tiempo mínimo de ejecución de la prueba es el más corto. Si desea probar la corrección del compilador, puede usar la escala de prueba, pero puede use ref cuando quiera probar el rendimiento) 2) iteraciones = 3
veces: el número de pruebas (prueba una vez cuando el rendimiento del compilador es estable), también se puede escribir como n 3;
si desea obtener el resultado de las estadísticas ponderadas , que a menudo se conoce como el puntaje de especificación de la CPU, debe configurar las iteraciones para que sean mayores o iguales a 3.
3) Todo el rango de prueba: Indica pruebas fp e int (reemplace todo con int o fp para pruebas de punto fijo y punto flotante; reemplace todo con números de archivo como 456/444, indicando que un elemento de prueba se prueba por separado) para
el Prueba SPEC de la CPU, el valor predeterminado es todo, pero si no está satisfecho con el puntaje de la prueba de un elemento determinado, puede realizar una prueba separada especificando el número de este elemento de prueba. La prueba también obtendrá una puntuación, que se puede utilizar al realizar ajustes de rendimiento individuales.
4) Formato de salida: -o texto, pantalla, pdf significa que la prueba se completó, y el formato del informe generado es txt, pantalla y formato pdf respectivamente, y el directorio de guardado está en el resultado del directorio de descompresión de especificaciones.
5) noreportable && reportable: Indica detectar/no detectar si el archivo binario generado ha sido modificado.
--reportable Si se modifica el archivo binario generado original, el tiempo de ejecución volverá a compilar automáticamente el archivo binario generado para garantizar que el programa en ejecución sea el programa original.
6) Número de núcleos de prueba: -r establece el número de núcleos de CPU que se probarán;
7) Modo de prueba: -tune = prueba de referencia base; -tune = prueba de pico pico; -tune por defecto es base, puede elegir base, pico , o todos, Informe primero Es base, seguido de pico
8) -I: Indica que durante la prueba, si se informa un error, salte el error y continúe la prueba;

8. Introducción al subproyecto de prueba

subelemento idioma ilustrar
400. perlbench lenguaje de programación PERL ANSI C El payload consta de tres scripts: el payload principal es el software de detección de spam SpamAssassin, uno es el convertidor de correo electrónico a HTML MHonArc y el último es specdiff
Compresión 401.bzip2 ANSI C La carga incluye seis partes: dos imágenes JPEG pequeñas, un programa, varios archivos de programa de origen empaquetados en un tar, un archivo HTML, archivos mixtos que incluyen archivos altamente comprimibles comprimidos y archivos no muy comprimibles, prueba Se utilizan tres niveles de compresión diferentes para la compresión y descompresión
403. compilador gcc C C Compiló 9 conjuntos de código C
Optimización combinatoria 429.mcf ANSI C con libm MCF es un programa para la programación de vehículos de una sola estación en el transporte público a gran escala. 429.mcf requiere alrededor de 860/1700 MB de memoria cuando se ejecuta en modelos de 32/64 bits
445.gobmk Inteligencia Artificial: Ir C Ir
búsqueda de la secuencia del gen 456.hmmer C Búsqueda de secuencias de genes utilizando el método de identificación de genes HMMS (Hidden Markov Models, Hidden Markov Model)
458.sjeng Inteligencia Artificial: Ajedrez ANSI C ajedrez internacional
462.libquantum Física: computación cuántica ISO/CEI 9899:1999 ("C99") libquantum es un archivo de biblioteca para simular computadoras cuánticas, utilizado para la investigación de aplicaciones de computadoras cuánticas
Compresión de vídeo 464.h264ref C H.264 codifica dos archivos fuente en formato YUV usando dos configuraciones
Simulación de eventos discretos 471.omnetpp C++ Incluye alrededor de 8000 computadoras y 900 conmutadores/concentradores, y una gran simulación de Ethernet de protocolo CSMA/CD con una combinación de varias velocidades de 10 Mb a 1000 Mb
Algoritmo de búsqueda de ruta 473.astar C++ Se implementaron tres versiones diferentes del algoritmo de búsqueda de rutas 2D A*
483. xalancbmk procesamiento XML C++ Conversión de documento XML/tabla XSL a documento HTML
410.bondas mecánica de fluidos Fortran 77 Cálculo de simulación de onda de choque en flujo viscoso transónico tridimensional
416. juegos de química cuántica Fortran Cálculo de tres campos autoconsistentes de SCF: moléculas de citosina, iones de agua y Cu2+, iones de triazolio
433.milc mecánica cuántica C Simulación de la teoría de calibre reticular 4D SU(3) para el estudio de cromodinámica cuántica QCD, quarks y gluones
434.zeusmp Física: dinámica de fluidos computacional Fortran 77/REAL*8 Utilizado para calcular la dinámica de fluidos y la magnetohidrodinámica en condiciones ideales no relativistas, 434.zeusmp simula y calcula ondas de choque 3D en un campo magnético unificado
435.gromacs bioquímica/mecánica molecular C y Fortran GROMACS es una suite de cálculo de mecánica molecular, pero también se puede utilizar para sistemas no biológicos, 435.gromacs simula la estructura de la proteína lisozima en una solución acuosa e iónica bajo diversos medios experimentales, como la irradiación de rayos X por resonancia magnética nuclear
436.cactus ADM Física: Relatividad General Fortran 90, ANSI C 436.cactusADM resuelve la ecuación de evolución de Einstein cuya curvatura espacio-temporal está determinada por la materia interna.La ecuación de evolución de Einstein consta de 10 ecuaciones diferenciales parciales no lineales de segundo orden descompuestas por el estándar ADM 3+1.
437.leslie 3d mecánica de fluidos Fortran 90 LESlie3d es un programa de dinámica de fluidos computacional utilizado para calcular la turbulencia.437.leslie3d calcula un fluido mixto estratificado en el tiempo, como el combustible inyectado en una cámara de combustión.
444.namd biología/moléculas C++ NAMD es un programa de computación paralela para grandes sistemas biomoleculares, 444.namd simula la apoproteína de IA compuesta por 92224 átomos
447.dealII Análisis de elementos finitos C++ con Boost lib deal.II es una biblioteca de C++ para elementos finitos adaptativos y estimación de errores. 447.dealII resuelve la ecuación de Helmholtz con muy coeficientes. Utiliza un método adaptativo basado en la estimación de errores ponderados binarios para generar la mejor cuadrícula. , la ecuación se resuelve en 3 dimensiones
450. programación lineal soplex, optimización ANSI C++ SoPlex resuelve ecuaciones lineales utilizando el algoritmo simplex
453. trazado de rayos de imagen povray ISO C++ POV-Ray es un software de renderizado de trazado de rayos, 453.povray renderiza una imagen de tablero de ajedrez con suavizado de 1280x1024
454. Calculix Mecánica Estructural Fortran 90 y C con código SPOOLES CalculiX es un software de análisis de elementos finitos para mecánica estructural tridimensional lineal y no lineal, 454.calculix calcula la tensión y la deformación de un disco de compresión giratorio de alta velocidad bajo la acción de la fuerza centrífuga
459.Gems FDTD Computacional Electromagnético Fortran 90 459.GemsFDTD utiliza el método FDTD (dominio de tiempo de diferencia finita) para resolver las ecuaciones de Maxwell en el dominio de tiempo tridimensional y calcula la sección transversal de radar de un conductor ideal
465.tonto quimica cuantica Fortran 95 Tonto es un paquete de programa de química cuántica orientado a objetos, el cálculo 465.tonto está orientado a la cristalografía cuántica, se basa en una función de onda molecular Hartree-Fock restringida que se ajusta a los datos experimentales de difracción de rayos X.
470.lbm Hidrodinámica ANSI C 470.lbm usa LBM (método de Lattice Boltzmann) para simular fluido incompresible, que simula dos situaciones: fluido impulsado por corte y fluido de tubería similar al empuje del pistón, y la prueba contiene 3000 pasos
481.wrf pronóstico del tiempo Fortran 90 y C 481.wrf calcula los datos de NCAR según el modelo WRF (Weather Research and Forecastin), y los datos incluyen datos desde UTC 2001.06.11 hasta UTC 2001.06.12 en intervalos de tres horas.
482. sphinx3 reconocimiento de voz C Reconocimiento de voz

Nueve, manejo de errores del proceso de prueba

(1) Error al crear la solución 416.gamess
: configure los parámetros de compilación de 416.gamess en Portability Flags en el archivo de configuración cfg

416.gamess=predeterminado=predeterminado=predeterminado:
FPORTABILIDAD = -funconstrained-commons -std=heredado

(2)Error building 447.dealII
解决方法:在配置文件cfg中的Portability Flags中设置447.dealII的编译参数
447.dealII=default=default=default:
CXXPORTABILITY = -fpermissive

(3) Error building 450.soplex
解决方法:在配置文件cfg中的Portability Flags中设置450.soplex的编译参数

450.soplex=default=default=default:
CXXPORTABILITY = -std=c++03

(4)Error building 481.wrf
解决方法:在配置文件cfg中的Portability Flags中设置481.wrf的编译参数
481.wrf=default=default=default:
CPORTABILITY = -DSPEC_CPU_CASE_FLAG -DSPEC_CPU_LINUX
FPORTABILITY = -std=legacy

(5)编译时报错
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:936:0,
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:33:10: error: invalid use of ‘__builtin_va_arg_pack ()’
return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
^
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘snprintf’:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: error: invalid use of ‘__builtin_va_arg_pack ()’
return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
^
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘fprintf’:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:97:10: error: invalid use of ‘__builtin_va_arg_pack ()’
return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt,
^
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘printf’:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:104:10: error: invalid use of ‘__builtin_va_arg_pack ()’
return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
^
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘dprintf’:
原因是spec与gcc 版本不对应 ,gcc 相对于spec2006 来说gcc 版本过高,所以gcc降级

(6)运行上报错:runspec --config mytest.cfg --action=onlyrun --tune=all --reportable int //通过–action 指定 onlyrun 不再编译
*** Error during benchmark setup for 429.mcf
Setting up 445.gobmk ref base gcc43-64bit default: ERROR: Cannot create run directory for 445.gobmk: mkdir /home/nfs/zhaoan/spec/cpu2006/benchspec/CPU2006/445.gobmk/run/run_base_ref_gcc43-64bit.0005: Permission denied at /home/nfs/zhaoan/spec/cpu2006/bin/benchmark.pm line 2073

*** Error during benchmark setup for 445.gobmk
Setting up 456.hmmer ref base gcc43-64bit default: ERROR: Cannot create run directory for 456.hmmer: mkdir /home/nfs/zhaoan/spec/cpu2006/benchspec/CPU2006/456.hmmer/run/run_base_ref_gcc43-64bit.0005: Permission denied at /home/nfs/zhaoan/spec/cpu2006/bin/benchmark.pm line 2073

*** Error during benchmark setup for 456.hmmer
Setting up 458.sjeng ref base gcc43-64bit default: ERROR: Cannot create run directory for 458.sjeng: mkdir /home/nfs/zhaoan/spec/cpu2006/benchspec/CPU2006/458.sjeng/run/run_base_ref_gcc43-64bit.0005: Permission denied at /home/nfs/zhaoan/spec/cpu2006/bin/benchmark.pm line 2073
原因:由于在docker容器中是使用root权限编译的,在138上面再执行时用户是:wxsc ,所以权限有问题
修改:sudo chown -R wxsc:wxsc ./*

(7)运行时报错
Running (#2) 445.gobmk ref base gcc43-64bit default
/home/nfs/zhaoan/spec/cpu2006/bin/specinvoke -d /home/nfs/zhaoan/spec/cpu2006/benchspec/CPU2006/445.gobmk/run/run_base_ref_gcc43-64bit.0006 -e speccmds.err -o speccmds.stdout -f speccmds.cmd -C -q

Socket error Event: 32 Error: 10053.
Connection closing…Socket close.

Connection closed by foreign host.

Disconnected from remote host(192.167.253.138) at 08:50:57.
解决方法:改为后台执行即可

(8)运行时报错
1548641594.38: Contents of nph3.err
1548641594.38: ****************************************
1548641594.38: …/run_base_ref_gcc43-64bit.0009/hmmer_base.gcc43-64bit: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27’ not found (required by …/run_base_ref_gcc43-64bit.0009/hmmer_base.gcc43-64bit)
解决方法:编译时改为静态链接
使用的config 是 mytest.cfg ,则修改mytest.cfg文件将
COPTIMIZE = -O2 -fno-strict-aliasing
CXXOPTIMIZE = -O2 -fno-strict-aliasing
FOPTIMIZE = -O2 -fno-strict-aliasing
改为:
COPTIMIZE = -O2 -fno-strict-aliasing -static
CXXOPTIMIZE = -O2 -fno-strict-aliasing -static
FOPTIMIZE = -O2 -fno-strict-aliasing -static

(9)float编译时报错
1548726106.29: ****************************************
1548726106.29: Contents of exam29.err
1548726106.29: ****************************************
1548726106.29: STOP IN ABRT

1548726106.29: ****************************************

1548726106.29: *** Miscompare of exam29.out; for details see
1548726106.29: /cpu2006/benchspec/CPU2006/416.gamess/run/run_base_test_gcc43-64bit.0000/exam29.out.mis
1548726106.29: 0423: 1 0 0 -228.438026762 -228.438026762 0.585016182 0.000000000
1548726106.29: 1 0 0 -228.438026762 -228.438026762 2.057216987 0.000000000
1548726106.29: ^
1548726106.29: 0424: ---------------START SECOND ORDER SCF---------------
1548726106.29: 2 1 0 -13.398272306 215.039754456 0.019611730 2.138165837
1548726106.29: ^
1548726106.29: 0425: 2 1 0 -228.975183270 -0.537156507 0.141897260 0.111481465
1548726106.29: ---------------START SECOND ORDER SCF---------------
1548726106.29: ^
1548726106.29: 0426: 3 2 0 -229.014081256 -0.038897986 0.064028396 0.079634004
1548726106.29: 3 2 0 -13.404086244 -0.005813938 0.000644098 0.008801378
1548726106.29: ^
1548726106.29: 0427: 4 3 0 -229.036210679 -0.022129423 0.025840433 0.007697238
1548726106.29: 4 3 0 -13.404093666 -0.000007422 0.000028154 0.000448854
1548726106.30: ^
1548726106.30: 0428: 5 4 0 -229.036777024 -0.000566345 0.008639408 0.001874192
1548726106.30: 5 4 0 -13.404093683 -0.000000017 0.000000370 0.000004470
1548726106.30: ^
1548726106.30: 0429: 6 5 0 -229.036824895 -0.000047871 0.001734717 0.000979860
1548726106.30: 6 5 0 -13.404093683 -0.000000000 0.000000008 0.000000051
1548726106.30: ^
1548726106.30: 0431: 7 6 0 -229.036831711 -0.000006816 0.000315932 0.000297576
1548726106.30: -----------------
1548726106.30: ^
1548726106.30: 0432: 8 7 0 -229.036832335 -0.000000624 0.000112760 0.000083271
1548726106.30: DENSITY CONVERGED
1548726106.30: ^
1548726106.30: 0433: 9 8 0 -229.036832426 -0.000000092 0.000074046 0.000042607
1548726106.30: -----------------
1548726106.30: ^
1548726106.30: Benchmark Times:
1548726106.30: Start: Tue Jan 29 09:41:45 2019 (1548726105)
1548726106.30: Stop: Tue Jan 29 09:41:45 2019 (1548726105)
1548726106.30: Elapsed: 00:00:00 (0)
1548726106.30: Reported: 0 39727000 0.039727
1548726106.30: Error 416.gamess base test ratio=-0.00, runtime=0.039727, power=0.00w, temp=0.00 deg, humidity=0.00%
1548726106.30: Invalid run; unable to continue.
解决方法:
这个问题通过修改相应的config 中编译优化选项 将
COPTIMIZE = -O2 -fno-strict-aliasing -static
CXXOPTIMIZE = -O2 -fno-strict-aliasing -static
FOPTIMIZE = -O2 -fno-strict-aliasing -static
改为:
COPTIMIZE = -O0 -fno-strict-aliasing -static
CXXOPTIMIZE = -O0 -fno-strict-aliasing -static
FOPTIMIZE = -O0 -fno-strict-aliasing -static
注意:416测试时报错,# Error 416.gamess: Output miscompare,可以在416项中COPTIMIZE、CXXOPTIMIZE、FOPTIMIZE追加-ffpe-summary=none解决

Vea los comandos ejecutados por subelementos específicos:
cd /speccpu2006-v1.0.1/benchspec/CPU2006/416.gamess/run/build_base_x86_64_linux.0000
specinvoke -n -f speccmds.cmd
Nota para borrar el caché antes de probar:
echo 3 > /proc /sys /vm/drop_caches #Limpie el caché
Si el proyecto de prueba no se compila, puede probarlo modificando el código fuente de prueba o cambiando la versión de gcc, c++ y otros compiladores

10. Otros enlaces relacionados con el software de prueba

1. Parámetros de rendimiento del disco duro de prueba FIO y resumen de ejemplo

2. Resumen de la prueba de ancho de banda de la memoria de transmisión en Linux

Supongo que te gusta

Origin blog.csdn.net/Luckiers/article/details/125816524
Recomendado
Clasificación