El NEC SX-Aurora TSUBASA es un procesador vectorial de la familia de arquitectura NEC SX . [1] [2] A diferencia de las supercomputadoras SX anteriores, la SX-Aurora TSUBASA se proporciona como una tarjeta PCIe, denominada por NEC como "Vector Engine" (VE). [2] Se pueden insertar ocho tarjetas VE en un host vectorial (VH) que suele ser un servidor x86-64 que ejecuta el sistema operativo Linux. [2] El producto se anunció en un comunicado de prensa el 25 de octubre de 2017 y NEC comenzó a venderlo en febrero de 2018. [3] El producto sucede al SX-ACE .
Hardware
SX-Aurora TSUBASA es un sucesor de la serie NEC SX y SUPER-UX , que son sistemas informáticos vectoriales en los que se basa la supercomputadora Earth Simulator . Su hardware consta de hosts Linux x86 con motores vectoriales (VEs) conectados a través de una interconexión PCI express (PCIe). [4]
El alto ancho de banda de memoria (0,75-1,2 TB / s) proviene de ocho núcleos y seis módulos de memoria HBM2 en un intercalador de silicio implementado en el factor de forma de una tarjeta PCIe. [5] La funcionalidad del sistema operativo para el VE se descarga al VH y es manejada principalmente por demonios de espacio de usuario que ejecutan el VEOS. [6]
Dependiendo de la frecuencia del reloj (1,4 o 1,6 GHz), cada CPU VE tiene ocho núcleos y un rendimiento máximo de 2,15 o 2,45 TFLOPS en doble precisión. El procesador tiene la primera implementación del mundo de seis módulos HBM2 en un intercalador de silicio con un total de 24 o 48 GB de memoria de gran ancho de banda. Está integrado en el factor de forma de una tarjeta PCIe estándar de longitud completa, altura completa y doble ancho alojada en un servidor x86_64, el Vector Host (VH). El servidor puede alojar hasta ocho VEs, los clústeres VH pueden escalar a un número arbitrario de nodos. [1] [7] [2]
Lanzamientos de productos
Motor de vectores versión 2 [8]
SKU | 20A | 20B |
---|---|---|
Velocidad del reloj (en Ghz) | 1,6 | 1,6 |
Numero de nucleos | 10 | 8 |
Rendimiento máximo del núcleo (GFLOPS de doble precisión) | 307 | 307 |
Rendimiento máximo del núcleo (GFLOPS de precisión simple) | 614 | 614 |
Rendimiento máximo de la CPU (TFLOPS de doble precisión) | 3,07 | 2,45 |
Rendimiento máximo de la CPU (TFLOPS de precisión simple) | 6.14 | 4,91 |
Ancho de banda de memoria (TB / s) | 1,53 | 1,53 |
Capacidad de memoria (GB) | 48 | 48 |
Motor de vectores versión 1
La versión 1.0 del Vector Engine se produjo en el proceso FinFET de 16 nm (de TSMC ) y se lanzó en tres SKU (las versiones posteriores agregan una E al final): [9]
SKU | 10 A | 10B | 10C | 10AE | 10BE | 10CE |
---|---|---|---|---|---|---|
Velocidad del reloj (en Ghz) | 1,6 | 1.4 | 1.4 | 1.584 | 1.408 | 1.400 |
Numero de nucleos | 8 | 8 | 8 | 8 | 8 | 8 |
Rendimiento máximo del núcleo (GFLOPS de doble precisión) | 307.2 | 268,8 | 268,8 | 304 | 270 | 268 |
Rendimiento máximo del núcleo (GFLOPS de precisión simple) | 537 | 608 | 540 | 537 | ||
Rendimiento máximo de la CPU (TFLOPS de doble precisión) | 2,45 | 2.15 | 2.15 | 2,43 | 2.16 | 2.15 |
Rendimiento máximo de la CPU (TFLOPS de precisión simple) | 4.9 | 4.3 | 4.3 | 4.86 | 4.32 | 4.30 |
Ancho de banda de memoria (TB / s) | 1.2 | 1.2 | 0,75 | 1,35 | 1,35 | 1,00 |
Capacidad de memoria (GB) | 48 | 48 | 24 | 48 | 48 | 24 |
Unidades funcionales
Cada uno de los ocho núcleos SX-Aurora tiene 64 registros vectoriales lógicos. [10] Estos tienen una longitud de 256 x 64 bits implementada como una combinación de unidades SIMD en paralelo y en canalización de 32 veces. Los registros están conectados a tres unidades de multiplicación y suma de coma flotante FMA que pueden ejecutarse en paralelo, así como a dos unidades lógicas aritméticas de ALU que manejan operaciones de punto fijo y una tubería de división y raíz cuadrada. [10] Considerando solo las unidades FMA y su paralelismo SIMD de 32 veces, un núcleo vectorial es capaz de 192 operaciones de doble precisión por ciclo. [10] En operaciones vectoriales "empaquetadas", donde dos valores de precisión simple se cargan en el espacio de una ranura de precisión doble en los registros vectoriales, la unidad vectorial entrega el doble de operaciones por ciclo de reloj en comparación con la precisión doble.
Una unidad de procesamiento escalar (SPU) maneja instrucciones no vectoriales en cada uno de los núcleos.
Memoria y cachés
La memoria del procesador SX-Aurora TSUBASA consta de seis módulos de memoria de alto ancho de banda HBM2 de segunda generación implementados en el mismo paquete que la CPU con la ayuda de la tecnología Chip-on-Wafer-on-Substrate. Dependiendo del modelo de procesador, los módulos HBM2 son módulos 3D de 4 u 8 troqueles con una capacidad de 4 u 8 GB cada uno. Por lo tanto, las CPU SX-Aurora tienen memoria HBM2 de 24 GB o 48 GB. Los modelos implementados con grandes módulos HBM2 tienen un ancho de banda de memoria de 1.2TB / s. [11]
Los núcleos de un motor vectorial comparten 16 MB de "caché de último nivel" (LLC), una caché de escritura posterior conectada directamente a los registros vectoriales y la caché L2 de la SPU. El tamaño de la línea de caché LLC es de 128 bytes. La prioridad de la retención de datos en la LLC se puede controlar hasta cierto punto en el software, lo que permite al programador especificar qué variables o matrices deben conservarse en la caché, una característica comparable a la del búfer de datos avanzado (ADB) del NEC. SX-ACE .
Plataformas
NEC vende actualmente el motor vectorial SX-Aurora TSUBASA integrado en cuatro plataformas: [12] [9]
- A111-1: un PC de torre con una tarjeta VE de tipo 10B
- A101-1: un PC de torre con una tarjeta VE de tipo 10CE
- A311-4: un servidor escalable Xeon de montaje en rack de 19 pulgadas de 1U de doble socket equipado con hasta cuatro tarjetas VE de tipo BE
- A311-8: un servidor escalable Xeon de montaje en rack de 19 pulgadas y 4U de dos sockets con hasta ocho tarjetas VE de tipo BE
- A511-64: un rack de 19 pulgadas equipado con 64 VEs de tipo AE. Esta es la única configuración que se vende explícitamente como supercomputadora.
Dentro de un nodo VH, los VEs pueden comunicarse entre sí a través de PCIe. Los grandes sistemas paralelos construidos con SX-Aurora utilizan Infiniband en una configuración PeerDirect como interconexión.
NEC también solía vender el motor vectorial SX-Aurora TSUBASA integrado en cinco plataformas:
- A100-1: un PC de torre con una tarjeta VE de tipo 10C.
- A300-2: un servidor Skylake de montaje en bastidor de 1U de un solo socket equipado con hasta dos tarjetas VE de tipo 10B o 10C.
- A300-4: un servidor Skylake de montaje en bastidor de 1U de dos sockets equipado con hasta cuatro tarjetas VE de tipo 10B o 10C.
- A300-8: un servidor Skylake de montaje en rack de 4U de dos sockets con hasta ocho tarjetas VE de tipo 10B o 10C.
- A500-64: un bastidor equipado con CPU de la familia Intel Xeon Silver 4100 o de la familia Intel Xeon Gold 6100 y 32, 48 o 64 VEs de tipo 10A o 10B. [13]
Todos los tipos están refrigerados exclusivamente por aire, con la excepción de la serie A500, que también utiliza refrigeración por agua.
Software
Sistema operativo
El sistema operativo del motor vectorial (VE) se denomina "VEOS" y se ha descargado por completo en el sistema host, el vector host (VH). [14] VEOS consta de módulos de kernel y demonios de espacio de usuario que:
- gestionar los procesos de VE y su programación en el VE
- administrar los espacios de direcciones de la memoria virtual de los procesos VE
- manejar las transferencias entre la memoria VH y VE con la ayuda de los motores VE DMA
- manejar las interrupciones y excepciones de los procesos VE, así como sus llamadas al sistema. [15]
VEOS admite la multitarea en VE y casi todas las llamadas al sistema Linux son compatibles con la libc de VE. [16] La descarga de los servicios del sistema operativo al VH desplaza la fluctuación del sistema operativo lejos del VE a expensas de mayores latencias. [17] Todos los paquetes relacionados con el sistema operativo VE tienen la licencia GNU General Public License y se han publicado en github
Posteriormente, NEC parece haber abandonado VEOS en favor de Red Hat Enterprise Linux o CentOS .
Desarrollo de software
NEC ofrece un kit de desarrollo de software para desarrolladores y clientes. Contiene productos patentados y debe comprarse a NEC. El SDK contiene:
- Compiladores de C, C ++ y Fortran que admiten la vectorización automática y la paralelización automática, así como OpenMP. [18]
- Herramientas de optimización del rendimiento: ftraceviewer y veperf. [19]
- Bibliotecas numéricas optimizadas para VE: BLAS, SBLAS, LAPACK, SCALAPACK, ASL, Heterosolver. [20]
NEC MPI también es una implementación patentada y se ajusta a la especificación estándar MPI-3.1. [21]
Se pueden crear programas híbridos que utilicen VE como acelerador para determinadas funciones del núcleo del host utilizando VE descargando C-API. [22] Hasta cierto punto, la descarga de VE es comparable a OpenCL y CUDA, pero proporciona una API más simple y permite que los núcleos se desarrollen en C, C ++ o Fortran normales y utilicen casi cualquier syscall en VE. [ cita requerida ] Los enlaces de Python a VEO están disponibles en github .com / SX-Aurora / py-veo .
Referencias
- ^ a b "NEC SX-Aurora TSUBASA - Vector Engine" . www.nec.com . Consultado el 20 de marzo de 2018 .
- ^ a b c d Morgan, Timothy Prickett (27 de octubre de 2017). "¿Se puede revivir la supercomputación vectorial?" . La próxima plataforma .
- ^ "NEC lanza nueva línea de productos HPC de gama alta, SX-Aurora TSUBASA" . NEC . Consultado el 21 de marzo de 2018 .
- ^ Imai, Teruyuki (2019), Gerofi, Balazs; Ishikawa, Yutaka; Riesen, Rolf; Wisniewski, Robert W. (eds.), "NEC Earth Simulator and the SX-Aurora TSUBASA", Operating Systems for Supercomputers and High Performance Computing , High-Performance Computing Series, Singapur: Springer, 1 , págs. 139-160, doi : 10.1007 / 978-981-13-6624-6_9 , ISBN 978-981-13-6624-6
- ^ Morgan, Timothy Prickett (22 de noviembre de 2017). "Una inmersión profunda en Aurora Vector Engine de NEC" . La próxima plataforma . Consultado el 2 de julio de 2020 .
- ^ Focht, Erich. "Primeros pasos con el motor vectorial SX-Aurora TSUBASA" . sx-aurora.github.io . Consultado el 2 de julio de 2020 .
- ^ Folleto de SX-Aurora TSUBASA
- ^ "Modelos de motores vectoriales NEC" . www.nec.com . Consultado el 15 de septiembre de 2020 .
- ^ a b https://www.nec.com/en/global/solutions/hpc/sx/docs/SX-Aurora_eng_202002.pdf
- ^ a b c "Arquitectura NEC SX-Aurora TSUBASA" . www.nec.com . Consultado el 20 de marzo de 2018 .
- ^ "SX-Aurora - Microarquitecturas - NEC - WikiChip" . en.wikichip.org . Consultado el 2 de julio de 2020 .
- ^ https://www.nec.com/en/global/solutions/hpc/sx/index.html ?
- ^ "NEC SX-Aurora TSUBASA A500-64" . www.nec.com .
- ^ "NEC SX Aurora TSUBASA - Documentación de VSC 1.0 documentación" . vlaams-supercomputing-centrum-vscdocumentation.readthedocs-hosted.com . Consultado el 2 de julio de 2020 .
- ^ "Una mirada al último procesador de vectores de NEC, el SX-Aurora" . Fusible WikiChip . 2018-12-09 . Consultado el 27 de agosto de 2020 .
- ^ "Una mirada al último procesador de vectores de NEC, el SX-Aurora" . Fusible WikiChip . 2018-12-09 . Consultado el 27 de agosto de 2020 .
- ^ "Una mirada al último procesador de vectores de NEC, el SX-Aurora" . Fusible WikiChip . 2018-12-09 . Consultado el 27 de agosto de 2020 .
- ^ "NEC SX Aurora TSUBASA - Documentación de VSC 1.0 documentación" . vlaams-supercomputing-centrum-vscdocumentation.readthedocs-hosted.com . Consultado el 27 de agosto de 2020 .
- ^ "Documentación NEC SX-Aurora TSUBASA" .
- ^ "Sistema de vectores NEC SX-Aurora TSUBASA" . Rechenzentrum der CAU . Consultado el 27 de agosto de 2020 .
- ^ "Guía del usuario de NEC MPI" .
- ^ "SX-Aurora / veoffload" . GitHub . Consultado el 21 de marzo de 2018 .
enlaces externos
- Noticias y artículos , para SX-Aurora Vector Engine.
- Foro de NEC Aurora
- Foro web de NEC Aurora
- NEC Aurora VEOS
- Capacitación en vectorización NEC Aurora
- Colección de herramientas y proyectos