NEC SX-Aurora TSUBASA - NEC SX-Aurora TSUBASA

Serwer NEC SX-Aurora TSUBASA A300-8 z ośmioma silnikami wektorowymi na stoisku NEC w SC'17 w Denver

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 .com /veos-sxarr-nec .

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 .com /SX-Aurora /py-veo .

Bibliografia

Zewnętrzne linki