Este es el comando likwid-bench que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
likwid-bench - conjunto de pruebas de bajo nivel y marco de microbenchmarking
SINOPSIS
banco-likwid [-hap] [-l ] [-i ] [-g ] [-t
] [-w ]
DESCRIPCIÓN
banco-likwid es un conjunto de parámetros de referencia de bajo nivel (ensamblado) para medir
anchos de banda y rendimiento de instrucciones para código de instrucción específico en sistemas x86. los
Los códigos de referencia incluidos actualmente incluyen patrones comunes de acceso a datos como cargar y almacenar
pero también cálculos como tríada vectorial y suma. banco-likwid incluye arquitectura
benchmarks específicos para x86, x86_64 y x86 para coprocesadores Intel Xeon Phi. los
Los valores de rendimiento pueden calcularse mediante banco-likwid o medido usando el rendimiento
contadores usando. likwid-perfctr como envoltorio para likwid-banco. Esto requiere construir
likwid-banco. con Instrumentación que se puede habilitar en config.mk.
CAMPUS
-h imprime un mensaje de ayuda en la salida estándar y luego sale.
-a enumerar los códigos de referencia disponibles para el sistema actual.
-p enumerar los dominios de subprocesos disponibles.
-l
enumerar las propiedades de un código de referencia.
-i
número de iteraciones para realizar dentro del código de referencia.
-t
Nombre del código de referencia a ejecutar (obligatorio).
-g
especificar el número de grupos de trabajo para realizar el código de referencia (obligatorio).
-w
Especifique el dominio de afinidad, el recuento de subprocesos y el tamaño del conjunto de datos para el
ejecución de evaluación comparativa (obligatorio).
GRUPO DE TRABAJO SINTAXIS
: [: [: : ]] [- : ]
con tamaño en kB, MB o GB. Donde el dominio de subprocesos es donde se colocan los subprocesos. El tamaño es el
tamaño total del conjunto de datos para el punto de referencia. num_threads especifica cuántos subprocesos se utilizan.
Los subprocesos siempre se colocan utilizando una política compacta en likwid-banco. Esto significa que por
por defecto se utilizan todos los subprocesos SMT. Opcionalmente similar a la sintaxis basada en expresiones en
pin likwid se puede proporcionar un tamaño de trozo y zancada. Opcionalmente para todos los medios de transmisión
matriz se puede controlar la ubicación. Por defecto, todas las matrices se colocan en el mismo
dominio de subprocesos en el que se ejecutan los subprocesos. Para colocar los datos en un dominio diferente para
cada flujo de un caso de referencia (el número total de flujos se puede adquirir mediante -l
opción) se puede especificar el dominio en el que colocar los datos. Varias transmisiones son comas
apartado. Se proporciona la ubicación o todas las transmisiones deben ubicarse explícitamente.
Consulte las páginas Wiki en http://code.google.com/p/likwid/wiki/LikwidBench para
más detalles y ejemplos de uso.
EJEMPLO
1. Ejecute el banco de pruebas de copia con 1000 iteraciones en el socket 0 con un tamaño total de conjunto de datos de
100kB.
banco-likwid -t copia -i 1000 -g 1 -w S0: 100 kB
Desde que no num_hilo se da en la expresión de carga de trabajo, cada núcleo del socket 0 obtiene uno
hilo. La carga de trabajo se divide entre todos los subprocesos.
2. Ejecute el código de referencia de la tríada con 100 iteraciones con 2 subprocesos en el zócalo 0 y un
tamaño de datos de 1 GB.
banco-likwid -t tríada -i 100 -g 1 -w S0:1GB:2:1:2
Suponiendo que el zócalo 0 tiene 4 subprocesos SMT, se asigna un subproceso a cada núcleo físico de
zócalo 0.
3. Ejecute el banco de pruebas de actualización con 1000 iteraciones en el socket 0 con una carga de trabajo de 100 KB y
en el zócalo 1 con la misma carga de trabajo.
banco-likwid -t actualización -i 1000 -g 2 -w S0: 100 kB -w S1: 100 kB
Los resultados de ambos grupos de trabajo se combinan para la salida. De ahí la carga de trabajo en cada
La expresión de grupo de trabajo debe tener el mismo tamaño.
4. Ejecute el banco de pruebas de copia pero mida el tráfico de memoria con likwid-perfctr. La opción
INSTRUMENT_BENCH en config.mk debe ser verdadero en el momento de la compilación para usar esa función.
likwid-perfctr -C E: S0: 4 -g MEM -m banco-likwid -t actualización -i 1000 -g 1 -w S0: 100 kB
likwid-perfctr configurará e iniciará los contadores de rendimiento en el socket 0 con 4
hilos antes de la ejecución de likwid-banco. Los contadores de rendimiento se leen correctamente
antes y después de ejecutar el código de evaluación comparativa para minimizar las interferencias del
medición.
5. Ejecute la copia de referencia y coloque los datos en otro socket
banco-likwid -t copia -i 50 -g 1 -w S0:1GB:10:1:2-0:S1,1:S1
Los ID de transmisión 0 y 1 se colocan en los dominios de subprocesos S1, que es el zócalo 1. Esto se puede verificar
como la salida de los subprocesos de inicialización donde se están ejecutando.
Use likwid-bench en línea usando los servicios de onworks.net