NEC SX-Aurora TSUBASA - NEC SX-Aurora TSUBASA
NEC SX Aurora TSUBASA to procesor wektor z NEC SX architektury rodziny. W przeciwieństwie do poprzednich superkomputerów SX , SX-Aurora TSUBASA jest dostarczana jako karta PCIe, określana przez NEC jako „Vector Engine” (VE). Osiem kart VE można podłączyć do hosta wektorowego (VH), którym zazwyczaj jest serwer x86-64 z systemem operacyjnym Linux. Produkt został ogłoszony w komunikacie prasowym w dniu 25 października 2017 r., a firma NEC rozpoczęła jego sprzedaż w lutym 2018 r. Produkt jest następcą modelu SX-ACE .
Sprzęt komputerowy
SX-Aurora TSUBASA jest następcą serii NEC SX i SUPER-UX , czyli wektorowych systemów komputerowych, na których oparty jest superkomputer Earth Simulator . Jego sprzęt składa się z hostów Linux x86 z silnikami wektorowymi (VE) połączonymi przez połączenie PCI express (PCIe).
Wysoka przepustowość pamięci (0,75–1,2 TB/s) pochodzi z ośmiu rdzeni i sześciu modułów pamięci HBM2 na krzemowym przejściówce zaimplementowanej w formie karty PCIe. Funkcjonalność systemu operacyjnego dla VE jest odciążana do VH i obsługiwana głównie przez demony przestrzeni użytkownika, na których działa VEOS.
W zależności od częstotliwości zegara (1,4 lub 1,6 GHz) każdy procesor VE ma osiem rdzeni i szczytową wydajność 2,15 lub 2,45 TFLOPS z podwójną precyzją. Procesor ma pierwszą na świecie implementację sześciu modułów HBM2 na krzemowym interposerze z łącznie 24 lub 48 GB pamięci o wysokiej przepustowości. Jest zintegrowany w obudowie standardowej karty PCIe o pełnej długości, pełnej wysokości i podwójnej szerokości, która jest obsługiwana przez serwer x86_64, Vector Host (VH). Serwer może obsługiwać do ośmiu VE, klastry VH mogą być skalowane do dowolnej liczby węzłów.
Wydania produktów
Wersja 2 silnika wektorowego
SKU | 20A | 20B |
---|---|---|
Szybkość zegara (w GHz) | 1,6 | 1,6 |
Liczba rdzeni | 10 | 8 |
Najwyższa wydajność rdzenia
(podwójna precyzja GFLOPS) |
307 | 307 |
Najwyższa wydajność rdzenia
(pojedyncza precyzja GFLOPS) |
614 | 614 |
Szczytowa wydajność procesora
(TFLOPS podwójnej precyzji) |
3,07 | 2,45 |
Szczytowa wydajność procesora
(pojedyncza precyzja TFLOPS) |
6.14 | 4,91 |
Przepustowość pamięci (TB/s) | 1,53 | 1,53 |
Pojemność pamięci (GB) | 48 | 48 |
Wersja 1 silnika wektorowego
Wersja 1.0 silnika wektorowego została wyprodukowana w procesie 16 nm FinFET (od TSMC ) i wydana w trzech SKU (kolejne wersje dodają E na końcu):
SKU | 10 A | 10B | 10C | 10AE | 10BE | 10CE |
---|---|---|---|---|---|---|
Szybkość zegara (w GHz) | 1,6 | 1,4 | 1,4 | 1,584 | 1,408 | 1.400 |
Liczba rdzeni | 8 | 8 | 8 | 8 | 8 | 8 |
Najwyższa wydajność rdzenia
(podwójna precyzja GFLOPS) |
307.2 | 268,8 | 268,8 | 304 | 270 | 268 |
Najwyższa wydajność rdzenia
(pojedyncza precyzja GFLOPS) |
537 | 608 | 540 | 537 | ||
Szczytowa wydajność procesora
(TFLOPS podwójnej precyzji) |
2,45 | 2.15 | 2.15 | 2,43 | 2.16 | 2.15 |
Szczytowa wydajność procesora
(pojedyncza precyzja TFLOPS) |
4,9 | 4,3 | 4,3 | 4,86 | 4,32 | 4.30 |
Przepustowość pamięci (TB/s) | 1.2 | 1.2 | 0,75 | 1,35 | 1,35 | 1,00 |
Pojemność pamięci (GB) | 48 | 48 | 24 | 48 | 48 | 24 |
Jednostki funkcjonalne
Każdy z ośmiu rdzeni SX-Aurora ma 64 logiczne rejestry wektorowe. Mają one długość 256 x 64 bity zaimplementowane jako połączenie potoku i 32-krotnych równoległych jednostek SIMD. Rejestry są podłączone do trzech jednostek zmiennoprzecinkowych FMA mnożenia i dodawania jednostek, które mogą działać równolegle, a także dwóch jednostek arytmetyczno-logicznych ALU obsługujących operacje stałoprzecinkowe oraz dzielenia i pierwiastka kwadratowego. Biorąc pod uwagę tylko jednostki FMA i ich 32-krotną równoległość SIMD, rdzeń wektorowy jest w stanie wykonać 192 operacje podwójnej precyzji na cykl. W „upakowanych” operacjach wektorowych, w których dwie wartości o pojedynczej precyzji są ładowane do przestrzeni jednego gniazda podwójnej precyzji w rejestrach wektorowych, jednostka wektorowa wykonuje dwa razy więcej operacji na cykl zegara w porównaniu do podwójnej precyzji.
Jednostka przetwarzania skalarnego (SPU) obsługuje instrukcje niewektorowe na każdym z rdzeni.
Pamięć i cache
Pamięć procesora SX-Aurora TSUBASA składa się z sześciu modułów pamięci HBM2 drugiej generacji o wysokiej przepustowości zaimplementowanych w tym samym pakiecie co procesor za pomocą technologii Chip-on-Wafer-on-Substrate. W zależności od modelu procesora, moduły HBM2 to 4 lub 8 modułów 3D o pojemności 4 lub 8 GB każdy. Procesory SX-Aurora mają więc 24 GB lub 48 GB pamięci HBM2. Modele zaimplementowane z dużymi modułami HBM2 mają przepustowość pamięci 1,2 TB/s.
Rdzenie silnika wektorowego współdzielą 16 MB pamięci podręcznej „Last-Level-Cache” (LLC), pamięci podręcznej write-back bezpośrednio połączonej z rejestrami wektorowymi i pamięci podręcznej L2 SPU. Rozmiar wiersza pamięci podręcznej LLC to 128 bajtów. Priorytet przechowywania danych w LLC można do pewnego stopnia kontrolować programowo, co pozwala programiście określić, które zmienne lub tablice mają być przechowywane w pamięci podręcznej, co jest funkcją porównywalną do zaawansowanego bufora danych (ADB) NEC SX-ACE .
Platformy
NEC obecnie sprzedaje silnik wektorowy SX-Aurora TSUBASA zintegrowany z czterema platformami:
- A111-1: komputer typu tower z jedną kartą VE typu 10B
- A101-1: komputer typu tower z jedną kartą VE typu 10CE
- A311-4: dwugniazdowy, 19-calowy, skalowalny serwer Xeon do montażu w szafie serwerowej Xeon wyposażony w maksymalnie cztery karty VE typu BE
- A311-8: dwugniazdowy, 19-calowy, skalowalny serwer Xeon 4U do montażu w szafie serwerowej z maksymalnie ośmioma kartami VE typu BE
- A511-64: 19-calowy stojak wyposażony w 64 VE typu AE. To jedyna konfiguracja, która jest jawnie sprzedawana jako superkomputer.
W węźle VH pojazdy VE mogą komunikować się ze sobą za pośrednictwem PCIe. Duże systemy równoległe zbudowane z SX-Aurora wykorzystują Infiniband w konfiguracji PeerDirect jako interkonekt.
NEC sprzedawał również silnik wektorowy SX-Aurora TSUBASA zintegrowany z pięcioma platformami:
- A100-1: komputer typu tower z jedną kartą VE typu 10C.
- A300-2: serwer Skylake o wysokości 1U do montażu w szafie serwerowej z jednym gniazdem, wyposażony w maksymalnie dwie karty VE typu 10B lub 10C.
- A300-4: serwer Skylake o wysokości 1U do montażu w szafie serwerowej z dwoma gniazdami, wyposażony w maksymalnie cztery karty VE typu 10B lub 10C.
- A300-8: serwer Skylake z dwoma gniazdami 4U do montażu w szafie serwerowej z maksymalnie ośmioma kartami VE typu 10B lub 10C.
- A500-64: szafa wyposażona w procesory z rodziny Intel Xeon Silver 4100 lub Intel Xeon Gold 6100 oraz 32, 48 lub 64 VE typu 10A lub 10B.
Wszystkie typy są chłodzone wyłącznie powietrzem, z wyjątkiem serii A500, która również wykorzystuje chłodzenie wodą.
Oprogramowanie
System operacyjny
System operacyjny silnika wektorowego (VE) nosi nazwę „VEOS” i został całkowicie przeniesiony do systemu hosta, czyli hosta wektorowego (VH). VEOS składa się z modułów jądra i demonów przestrzeni użytkownika, które:
- zarządzać procesami VE i ich harmonogramowaniem na VE
- zarządzać przestrzeniami adresowymi pamięci wirtualnej procesów VE
- obsługuj transfery między pamięciami VH i VE za pomocą silników VE DMA
- obsługują przerwania i wyjątki procesów VE, a także ich wywołania systemowe.
VEOS obsługuje wielozadaniowość w VE i prawie wszystkie wywołania systemowe Linux są obsługiwane w VE libc. Przenoszenie usług systemu operacyjnego na VH powoduje przesunięcie fluktuacji systemu operacyjnego z VE kosztem zwiększonych opóźnień. Wszystkie pakiety związane z systemem operacyjnym VE są objęte licencją GNU General Public License i zostały opublikowane na github
Wydaje się, że później NEC porzucił VEOS na rzecz Red Hat Enterprise Linux lub CentOS .
Rozwój oprogramowania
Pakiet Software Development Kit jest dostępny w firmie NEC dla programistów i klientów. Zawiera zastrzeżone produkty i musi być zakupiony od NEC. SDK zawiera:
- Kompilatory C, C++ i Fortran obsługujące automatyczną wektoryzację i automatyczną równoległość oraz OpenMP.
- Narzędzia do optymalizacji wydajności: ftraceviewer i veperf.
- Zoptymalizowane biblioteki numeryczne dla VE: BLAS, SBLAS, LAPACK, SCALAPACK, ASL, Heterosolver.
NEC MPI jest również zastrzeżoną implementacją i jest zgodna ze standardową specyfikacją MPI-3.1.
Programy hybrydowe, które wykorzystują VE jako akcelerator dla niektórych funkcji jądra hosta, można tworzyć za pomocą interfejsu C-API odciążającego środowisko VE. Do pewnego stopnia odciążanie VE jest porównywalne z OpenCL i CUDA, ale zapewnia prostsze API i umożliwia rozwijanie jąder w normalnym C, C++ lub Fortran i używanie prawie każdego wywołania systemowego w VE. Wiązania Pythona do VEO są dostępne na github
Bibliografia
Zewnętrzne linki
- Nowości i artykuły dla SX-Aurora Vector Engine.
- Forum NEC Aurora
- Forum internetowe NEC Aurora
- NEC Aurora VEOS
- Szkolenie z wektoryzacji NEC Aurora
- Zbiór narzędzi i projektów