Numa-aware dgemm basado en la arquitectura de procesadores multicore ARMv8 de 64 bits
Autores: Zhang, Wei; Jiang, Zihao; Chen, Zhiguang; Xiao, Nong; Ou, Yang
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Numa-aware dgemm basado en la arquitectura de procesadores multicore ARMv8 de 64 bits
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Multiplicación de matrices
SoCs basados en ARMv8
Alto rendimiento
Consciente de NUMA
Escalabilidad
Rendimiento.
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 31
Citaciones: Sin citaciones
La multiplicación de matrices generales de doble precisión (DGEMM) es un núcleo esencial para medir el rendimiento potencial de una plataforma de HPC. Los sistemas en chip (SoCs) basados en ARMv8 se han convertido en candidatos para los sistemas de HPC de próxima generación debido a su rendimiento altamente competitivo y eficiencia energética. Por lo tanto, es significativo diseñar un DGEMM de alto rendimiento para los SoCs basados en ARMv8. Sin embargo, a medida que los SoCs basados en ARMv8 integran núcleos cada vez más, las CPU modernas utilizan acceso a memoria no uniforme (NUMA). NUMA restringe el rendimiento y la escalabilidad de DGEMM cuando muchos hilos acceden a dominios NUMA remotos. Esto plantea un desafío para desarrollar un DGEMM de alto rendimiento en una arquitectura multi-NUMA. Presentamos un método consciente de NUMA para reducir el número de eventos de acceso a memoria entre matrices y chips. El habilitador crítico para un DGEMM consciente de NUMA es aprovechar dos niveles de paralelismo entre y dentro de los nodos en una implementación puramente enhebrada, lo que permite la independencia de tareas y la localización de datos de los nodos NUMA. Hemos implementado un DGEMM consciente de NUMA en OpenBLAS y lo hemos evaluado en un servidor de doble socket con procesadores de 48 núcleos basados en la arquitectura Kunpeng920. Los resultados muestran que el DGEMM consciente de NUMA ha reducido efectivamente el número de accesos a memoria entre matrices y chips, lo que ha mejorado significativamente la escalabilidad de DGEMM y ha aumentado el rendimiento de DGEMM en un 17.1% en promedio, con la mejora más notable siendo del 21.9%.
Descripción
La multiplicación de matrices generales de doble precisión (DGEMM) es un núcleo esencial para medir el rendimiento potencial de una plataforma de HPC. Los sistemas en chip (SoCs) basados en ARMv8 se han convertido en candidatos para los sistemas de HPC de próxima generación debido a su rendimiento altamente competitivo y eficiencia energética. Por lo tanto, es significativo diseñar un DGEMM de alto rendimiento para los SoCs basados en ARMv8. Sin embargo, a medida que los SoCs basados en ARMv8 integran núcleos cada vez más, las CPU modernas utilizan acceso a memoria no uniforme (NUMA). NUMA restringe el rendimiento y la escalabilidad de DGEMM cuando muchos hilos acceden a dominios NUMA remotos. Esto plantea un desafío para desarrollar un DGEMM de alto rendimiento en una arquitectura multi-NUMA. Presentamos un método consciente de NUMA para reducir el número de eventos de acceso a memoria entre matrices y chips. El habilitador crítico para un DGEMM consciente de NUMA es aprovechar dos niveles de paralelismo entre y dentro de los nodos en una implementación puramente enhebrada, lo que permite la independencia de tareas y la localización de datos de los nodos NUMA. Hemos implementado un DGEMM consciente de NUMA en OpenBLAS y lo hemos evaluado en un servidor de doble socket con procesadores de 48 núcleos basados en la arquitectura Kunpeng920. Los resultados muestran que el DGEMM consciente de NUMA ha reducido efectivamente el número de accesos a memoria entre matrices y chips, lo que ha mejorado significativamente la escalabilidad de DGEMM y ha aumentado el rendimiento de DGEMM en un 17.1% en promedio, con la mejora más notable siendo del 21.9%.