NEC SX-Aurora TSUBASA — векторный процессор семейства архитектуры NEC SX . [1] [2] В отличие от предыдущих суперкомпьютеров SX , SX-Aurora TSUBASA поставляется в виде карты PCIe, называемой NEC «Vector Engine» (VE). [2] Восемь карт VE могут быть вставлены в векторный хост (VH), который обычно представляет собой сервер x86-64 , работающий под управлением операционной системы Linux . [2] Продукт был анонсирован в пресс-релизе 25 октября 2017 года, и NEC начала продавать его в феврале 2018 года. [3] Продукт приходит на смену SX-ACE .
SX-Aurora TSUBASA является преемником серии NEC SX и SUPER-UX , которые являются векторными вычислительными системами, на которых основан суперкомпьютер Earth Simulator . Его аппаратное обеспечение состоит из хостов x86 Linux с векторными движками (VE), подключенными через PCI Express (PCIe)-соединение. [4]
Высокая пропускная способность памяти (0,75–1,2 ТБ/с) достигается за счет восьми ядер и шести модулей памяти HBM2 на кремниевом интерпозере, реализованном в форм-факторе карты PCIe. [5] Функциональность операционной системы для VE выгружается в VH и обрабатывается в основном демонами пользовательского пространства, запускающими VEOS. [6]
В зависимости от тактовой частоты (1,4 или 1,6 ГГц) каждый ЦП VE имеет восемь ядер и пиковую производительность 2,15 или 2,45 TFLOPS в двойной точности. Процессор имеет первую в мире реализацию шести модулей HBM2 на интерпозере Silicon с общим объемом памяти с высокой пропускной способностью 24 или 48 ГБ. Он интегрирован в форм-фактор стандартной полноразмерной, полноразмерной и двухширинной карты PCIe, размещенной на сервере x86_64, Vector Host (VH). Сервер может размещать до восьми VE, кластеры VH могут масштабироваться до произвольного количества узлов. [1] [7] [2]
Версия 2 Векторный двигатель [8]
Артикул | 20А | 20Б |
---|---|---|
Тактовая частота (в ГГц) | 1.6 | 1.6 |
Количество ядер | 10 | 8 |
Основная пиковая производительность (двойная точность GFLOPS) | 307 | 307 |
Основная пиковая производительность (одинарная точность GFLOPS) | 614 | 614 |
Пиковая производительность ЦП (двойная точность, терафлопс) | 3.07 | 2.45 |
Пиковая производительность ЦП (одинарная точность, терафлопс) | 6.14 | 4.91 |
Пропускная способность памяти (ТБ/с) | 1.53 | 1.53 |
Объем памяти (ГБ) | 48 | 48 |
Версия 1 Векторный двигатель
Версия 1.0 Vector Engine была произведена по 16 нм техпроцессу FinFET (от TSMC ) и выпущена в трех SKU (последующие версии добавляют E в конце): [9]
Артикул | 10А | 10Б | 10С | 10АЕ | 10BE | 10 н.э. |
---|---|---|---|---|---|---|
Тактовая частота (в ГГц) | 1.6 | 1.4 | 1.4 | 1.584 | 1.408 | 1.400 |
Количество ядер | 8 | 8 | 8 | 8 | 8 | 8 |
Основная пиковая производительность (двойная точность GFLOPS) | 307.2 | 268.8 | 268.8 | 304 | 270 | 268 |
Основная пиковая производительность (одинарная точность GFLOPS) | 537 | 608 | 540 | 537 | ||
Пиковая производительность ЦП (двойная точность, терафлопс) | 2.45 | 2.15 | 2.15 | 2.43 | 2.16 | 2.15 |
Пиковая производительность ЦП (одинарная точность, терафлопс) | 4.9 | 4.3 | 4.3 | 4.86 | 4.32 | 4.30 |
Пропускная способность памяти (ТБ/с) | 1.2 | 1.2 | 0,75 | 1.35 | 1.35 | 1.00 |
Объем памяти (ГБ) | 48 | 48 | 24 | 48 | 48 | 24 |
Каждое из восьми ядер SX-Aurora имеет 64 логических векторных регистра. [10] Они имеют длину 256 x 64 бита, реализованную как смесь конвейера и 32-кратных параллельных блоков SIMD. Регистры подключены к трем блокам умножения и сложения с плавающей точкой FMA, которые могут работать параллельно, а также к двум арифметическим логическим блокам ALU, обрабатывающим операции с фиксированной точкой, и конвейеру деления и квадратного корня. [10] Принимая во внимание только блоки FMA и их 32-кратный параллелизм SIMD, векторное ядро способно выполнять 192 операции двойной точности за цикл. [10] В «упакованных» векторных операциях, где два значения одинарной точности загружаются в пространство одного слота двойной точности в векторных регистрах, векторный блок обеспечивает вдвое больше операций за такт по сравнению с двойной точностью.
Скалярный процессор (SPU) обрабатывает невекторные инструкции на каждом из ядер.
Память процессора SX-Aurora TSUBASA состоит из шести модулей памяти HBM2 второго поколения с высокой пропускной способностью, реализованных в том же корпусе, что и ЦП, с помощью технологии Chip-on-Wafer-on-Substrate. В зависимости от модели процессора модули HBM2 представляют собой 4- или 8-кристальные 3D-модули емкостью 4 или 8 ГБ каждый. Таким образом, процессоры SX-Aurora имеют либо 24 ГБ, либо 48 ГБ памяти HBM2. Модели, реализованные с большими модулями HBM2, имеют пропускную способность памяти 1,2 ТБ/с. [11]
Ядра векторного двигателя совместно используют 16 МБ "Last-Level-Cache" (LLC), кэш обратной записи, напрямую подключенный к векторным регистрам и кэшу L2 SPU. Размер строки кэша LLC составляет 128 байт. Приоритет сохранения данных в LLC может в некоторой степени контролироваться программно, что позволяет программисту указывать, какие из переменных или массивов должны сохраняться в кэше, функция, сопоставимая с функцией Advanced Data Buffer (ADB) NEC SX-ACE .
В настоящее время NEC продает векторный двигатель SX-Aurora TSUBASA, интегрированный в четыре платформы: [12] [9]
В узле VH VE могут взаимодействовать друг с другом через PCIe. Большие параллельные системы, созданные с помощью SX-Aurora, используют Infiniband в настройке PeerDirect в качестве межсоединения.
NEC также продавала векторный двигатель SX-Aurora TSUBASA, интегрированный в пять платформ:
Все типы имеют исключительно воздушное охлаждение, за исключением серии A500, в которой также используется водяное охлаждение.
Операционная система векторного движка (VE) называется «VEOS» и полностью выгружена в хост-систему, векторный хост (VH). [14] VEOS состоит из модулей ядра и демонов пользовательского пространства, которые:
VEOS поддерживает многозадачность на VE, и почти все системные вызовы Linux поддерживаются в VE libc. [15] Выгрузка служб операционной системы в VH смещает дрожание ОС от VE за счет увеличения задержек. [15] Все пакеты, связанные с операционной системой VE, лицензируются в соответствии с GNU General Public License и опубликованы на github.com/veos-sxarr-nec .
Для разработчиков и клиентов NEC доступен комплект разработки программного обеспечения. Он содержит фирменные продукты и должен быть приобретен у NEC. SDK содержит:
NEC MPI также является собственной реализацией и соответствует спецификации стандарта MPI-3.1. [19]
Можно создавать гибридные программы, которые используют VE в качестве ускорителя для определенных функций ядра хоста, используя C-API разгрузки VE. [20] В некоторой степени разгрузка VE сравнима с OpenCL и CUDA, но обеспечивает более простой API и позволяет разрабатывать ядра на обычных языках C, C++ или Fortran и использовать практически любые системные вызовы в VE. [ требуется ссылка ] Привязки Python к VEO доступны на github.com/SX-Aurora/py-veo .
НЛК 1 | МКЛ | CUDA | ||
---|---|---|---|---|
Линейная алгебра | Плотная матрица | ✓ | ✓ | ✓ |
Разреженная матрица | ✓ | ✓ | ✓ | |
Функция Трансформации | Фурье | ✓ | ✓ | ✓ |
Реальное-реальное (DCT, …) | ✓ | ✓ | ||
Лаплас , Вейвлет, … | ✓ | |||
Статистика | Генератор случайных чисел | ✓ | ✓ без MPI | ✓ без MPI |
Многомерный, Регрессия, … | ✓ | |||
Другой | Сортировка | ✓ | ||
Специальные функции | ✓ | |||
Интегралы, производные, … | ✓ | |||
Код трафарета | ✓ | |||
Глубокое обучение | ✗ (планируется) | ✓ | ✓ |
1 Коллекция числовых библиотек NEC — это коллекция математических библиотек, поддерживающая разработку программ численного моделирования.