Artículo escrito por Varun Bawa, Savitha Pareek y Ashish K Singh del Laboratorio de innovación en HPC e IA en abril de 2019
Con el lanzamiento de la familia de procesadores escalables Intel Xeon® de 2.ª generación (arquitectura cuyo nombre en código es "Cascade Lake"), Dell EMC actualizó los servidores PowerEdge de 14.ª generación para beneficiarse de la mayor cantidad de núcleos y las mayores velocidades de memoria, lo que beneficia a las aplicaciones de HPC.
En este blog, se presenta el primer conjunto de resultados y se analiza el impacto de las diferentes opciones de ajuste del BIOS disponibles en Dell EMC PowerEdge C6420 con los procesadores Intel Xeon® Cascade Lake más recientes para algunos parámetros y aplicaciones de HPC. A continuación, se proporciona una breve descripción del procesador Cascade Lake, las opciones de BIOS y las aplicaciones de HPC utilizadas en este estudio.
Cascade Lake es el sucesor de Skylake de Intel. El procesador Cascade Lake admite hasta 28 núcleos y seis canales de memoria DDR4 con una velocidad de hasta 2933 MT/s. Al igual que Skylake, Cascade Lake admite potencia de vectorización adicional con el conjunto de instrucciones AVX512 que permite 32 DP FLOP/ciclo. Cascade Lake presenta las
instrucciones de red neuronal vectorial (VNNI), que aceleran el rendimiento de las cargas de trabajo de IA y DL, como la clasificación de imágenes, el reconocimiento de voz, la traducción de idiomas, la detección de objetos y mucho más. VNNI también admite instrucciones de 8 bits para acelerar
el rendimiento de la inferencia.
Cascade Lake incluye
mitigaciones de hardware para algunas
vulnerabilidades de canal lateral. Se espera que esto pueda mejorar el rendimiento de las cargas de trabajo de almacenamiento. Busque futuros estudios del
Laboratorio de innovación.
Dado que Skylake y Cascade Lake son compatibles con conectores, las perillas de ajuste del procesador expuestas en el BIOS del sistema son similares en todas estas generaciones de procesadores. En este estudio, se exploraron las siguientes opciones de ajuste del BIOS, similares a los trabajos publicados anteriormente
sobre Skylake.
Configuración del procesador:
- Captura previa de línea de caché adyacente: El mecanismo de captura previa de línea de caché adyacente permite la captura previa automática de hardware; funciona sin la intervención del programador. Cuando está habilitada, acomoda dos líneas de caché de 64 bytes en un sector de 128 bytes, independientemente de si se ha solicitado o no la línea de caché adicional.
- Precapturador de software: Evita el estancamiento cargando los datos en la caché antes de que se necesiten. Ejemplo: Para capturar previamente los datos de la memoria principal a la caché L2 mucho antes del uso con una instrucción de captura previa L2 y, a continuación, capturar previamente los datos de la caché L2 a la caché L1 justo antes del uso con una instrucción de captura previa L1. Aquí, cuando se establece en Enabled, el procesador buscará previamente una línea de caché adicional para cada solicitud de memoria.
- SNC (clúster subNUMA): La habilitación de SNC es similar a dividir el conector único en dos dominios NUMA, cada uno con la mitad de los núcleos físicos y la mitad de la memoria del conector. Si esto suena familiar, es similar en utilidad a la opción Cluster-on-Die que estaba disponible en los procesadores Intel Xeon E5-2600 v3 y v4. SNC se implementa de manera diferente a COD y estos cambios mejoran el acceso a conectores remotos en Cascade Lake en comparación con las generaciones anteriores, que usaban la opción Cluster-on-Die. En el nivel del sistema operativo, un servidor de dos sockets con SNC activado mostrará cuatro dominios NUMA. Dos de los dominios estarán más cerca el uno del otro (en el mismo conector) y los otros dos estarán a una distancia mayor, a través de la UPI hasta el conector remoto. Esto se puede ver mediante herramientas del sistema operativo, como las siguientes: numactl –H y se ilustra en la Figura 1.
Figura 1: Diseño de nodos de NUMA
Perfiles del sistema:
Los perfiles del sistema son metaopciones que, a su vez, establecen varias opciones de BIOS centradas en el rendimiento y la administración de energía, como
modo Turbo,
Cstate, C1E,
administración de Pstate, frecuencia sin núcleo, etc. Los diferentes perfiles de sistema comparados en este estudio incluyen los siguientes:
- Rendimiento
- Rendimiento por vatioDAPC
- Rendimiento por WattOS
Se utilizaron dos parámetros de referencia de HPC y dos aplicaciones de HPC para comprender el impacto de estas opciones de BIOS en el rendimiento de Cascade Lake. Las configuraciones de aplicaciones de servidor y HPC utilizadas para este estudio se describen en la Tabla 1 y la Tabla 2.
Aplicaciones |
Dominio |
Versión |
Referencia |
Linpack de alto rendimiento (HPL) |
Computación: resuelva un sistema denso de ecuaciones lineales |
De Intel MKL: 2019, actualización 1 |
Tamaño del problema 90 %, 92 % y 94 % de la memoria total |
Corriente |
Ancho de banda de memoria |
5.4 |
Tríada |
WRF |
Investigación y Pronóstico Meteorológico |
3.9.1 |
Conus 2.5km |
ANSYS® fluido® |
Dinámica de fluidos |
19.2 |
Ice_2m, Combustor_12m, Aircraft_wing_14m, Exhaust_System_33m |
Tabla 1: Aplicaciones y parámetros de referencia
Componentes |
Detalles |
Servidor |
Servidor PowerEdge C6420 |
Procesador |
CPU Intel® Xeon® Gold 6230 @ 2,1 GHz, 20 núcleos |
Memoria |
192 GB: 12 de 16 GB y 2933 MT/s DDR4 |
Sistema operativo |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
Núcleo |
3.10.0-957.el7.x86_64 |
Compilador |
Clúster de Intel Parallel Studio Edition_2019_Update_1 |
Tabla 2 Configuración del servidor
Todos los resultados que se muestran aquí se basan en pruebas de un solo servidor; El rendimiento en el nivel de clúster estará limitado por el rendimiento de un solo servidor. Se utilizaron las siguientes métricas para comparar el rendimiento:
- Stream: puntuación de la tríada según lo informado por el parámetro de referencia de flujos.
- HPL – GFLOP/segundo.
- Fluent: calificación de solucionador según lo informado por Fluent.
- WRF – Intervalo de tiempo medio calculado en los últimos 719 intervalos para Conus 2.5km
Parámetros de referencia y resultados de aplicaciones
Abreviaturas de notación de gráficos:
Perfiles del sistema:
Rendimiento – SO de rendimiento – PerformancePerWattOS DAPC – RendimientoPerWattDAPC
Agrupación en clústeres Sub-NUMA: SNC = 0 (SNC = Desactivado): SNC = 1 (SNC = Activado: Formateado como Fraccionado en gráficos)
SW: Precapturador de software: SW = 0 (SW = Desactivado): SW = 1 (SW = Activado)
Figura 2: Linpack de alto rendimiento
En la Figura 2, se compara el resultado de HPL con Tamaño del problema = 90 %, es decir, N = 144476 en diferentes opciones del BIOS. En el gráfico, se representan los gigaflops absolutos obtenidos durante la ejecución de HPL en diferentes configuraciones del BIOS. Estos Gigaflops obtenidos se trazan en el eje y, cuanto más alto, mejor.
A continuación, se muestran las observaciones del gráfico:
- Menos del 1 % de diferencia en el rendimiento de HPL debido a la captura previa de software.
- No hay ningún efecto importante de SNC en el rendimiento de HPL (0,5% mejor con SNC = Desactivado).
- El rendimiento del perfil del sistema es hasta un 6 % mejor en comparación con el sistema operativo y el DAPC.
Figura 3: Corriente
En la figura 3, se compara el resultado de STREAM en las diferentes configuraciones del BIOS.
El gráfico traza el ancho de banda de memoria en gigabytes por segundo obtenido mientras se ejecuta STREAM Triad. El ancho de banda de memoria (GB/s) obtenido se traza en el eje y; un valor más alto es mejor. La configuración del BIOS asociada a valores específicos de gigabytes por segundo se representa en el eje x.
A continuación, se muestran las observaciones del gráfico:
- Hasta un 3 % más de ancho de banda de memoria con SNC=enabled.
- No hay muchas desviaciones en el rendimiento debido a la captura previa de software en el ancho de banda de la memoria STREAM.
- No hay desviación entre perfiles del sistema.
Figura 4: Ancho de banda de memoria: SNC
En la figura 4, se representa el puntaje de ancho de banda de memoria de Stream Triad en una configuración de este tipo. El ancho de banda de memoria total del sistema es de ~220 GB/s. Cuando 20 núcleos en un conector local acceden a la memoria local, el ancho de banda de memoria es de ~ 109 GB/s, la mitad del ancho de banda total del sistema. La mitad de esto, ~56 GB/s, es el ancho de banda de memoria de 10 subprocesos en el mismo nodo de NUMA que acceden a su memoria local y en una memoria de acceso de nodo de NUMA que pertenece al otro nodo de NUMA en el mismo conector. Hay una disminución del 42 % en el ancho de banda de memoria a ~33 GB/s cuando los subprocesos acceden a la memoria remota a través del enlace QPI en el conector remoto. Esto nos indica que hay una pérdida significativa de ancho de banda en el modo SNC cuando los datos no son locales.
Figura 5: WRF
En la Figura 5, se compara el resultado de WRF en diferentes opciones del BIOS. El conjunto de datos utilizado es conus2.5km con el archivo "namelist.input" predeterminado.
En el gráfico, se representa el intervalo de tiempo promedio absoluto en segundos obtenido durante la ejecución del conjunto de datos WRF-conus2.5km en diferentes configuraciones del BIOS. El paso de tiempo promedio obtenido se representa en el eje y, cuanto más bajo, mejor. Los perfiles relativos asociados a valores específicos del paso de tiempo medio se trazan en el eje x.
A continuación, se muestran las observaciones del gráfico:
- Un 2 % de mejora en el rendimiento con SNC=Enabled.
- No hay diferencia de rendimiento para la captura previa de software habilitada frente a la deshabilitada.
- El perfil de rendimiento es un 1 % mejor que los perfiles PerformancePerWattDAPC
En la Figura 6 a la Figura 9, se representa la calificación del solucionador obtenida durante la ejecución de Fluent, con conjuntos de datos de Ice_2m, Combustor_12m, Aircraft_Wing_14m y Exhaust_System_33m, respectivamente. La calificación del solucionador obtenida se traza en el eje y, cuanto más alto, mejor. Los perfiles relativos asociados a valores específicos de tiempo promedio se trazan en el eje x.
A continuación se muestran las observaciones generales de los gráficos anteriores:
- Hasta un 4 % de mejora en el rendimiento con SNC=Enabled.
- La captura previa de software no tiene ningún efecto en el rendimiento.
- Rendimiento hasta un 2 % mejor con el perfil de rendimiento en comparación con los perfiles DAPC y SO.
Conclusión
En este estudio, evaluamos el impacto de diferentes opciones de ajuste del BIOS en el rendimiento cuando se utiliza el procesador Intel Xeon Gold 6230. Si se observa el rendimiento de las diferentes opciones de BIOS en diferentes parámetros de referencia y aplicaciones, se concluye lo siguiente:
- La captura previa de software no tiene un impacto significativo en el rendimiento en los conjuntos de datos que se probaron. Por lo tanto, recomendamos que el precapturador de software permanezca como predeterminado, es decir, habilitado
- Con SNC = habilitado Aumento del rendimiento del 2 al 4 % en Fluent y Stream, aproximadamente 1 % en WRF en comparación con SNC = Deshabilitado. Por lo tanto, recomendamos que se habilite SNC para lograr un mejor rendimiento.
- El perfil de rendimiento es entre un 2 y un 4 % mejor que PerformancePerWattDAPC y PerformancePerWattOS. Por lo tanto, recomendamos el perfil de rendimiento para HPC.
Se recomienda desactivar Hyper-Threading para los clústeres de HPC de uso general. Según las aplicaciones utilizadas, se debe probar y habilitar el beneficio de esta función según corresponda.
En este estudio, no se analiza una función de RAS de memoria denominada corrección de dispositivo DRAM doble adaptable (ADDDC) que está disponible cuando un sistema se configura con memoria que tiene una organización de DRAM x4 (DIMM de 32 GB o 64 GB). ADDDC no está disponible cuando un sistema tiene módulos DIMM basados en x8 (8 GB, 16 GB) y es irrelevante en esas configuraciones. Para las cargas de trabajo de HPC, se recomienda configurar ADDDC en deshabilitado cuando esté disponible como una opción ajustable.