Растущее превосходство графических процессоров над x86-платформами в сфере высокопроизводительных параллельных вычислений, ставшее очевидным в майнинге криптовалюты, вызывает к жизни прогнозы, согласно которым текущий год может стать началом заката x86. Избегая столь поспешных выводов, проанализируем, что получат (вернее, уже получили) GPU NVidia, «оторвавшись» от платформы Intel?
Поскольку все познается в сравнении, рассмотрим две системы с ускорителями NVidia, различающиеся типом центрального процессора — на основе Intel Xeon и IBM Power 8:
- в первой платформе, назовем ее консервативной, подключение CPU-GPU выполняется по PCIe-интерфейсу, который в контексте данной публикации придется определить как устаревший; для частичного нивелирования ограничений, присущих такой топологии, организован дополнительный peer-to-peer канал связи между ускорителями в обход центрального процессора на основе проприетарной шины NVLink от NVIDIA;
- вторая (революционная) платформа, использует исключительно NVLink для всех типов межпроцессорных соединений: CPU-GPU и GPU-GPU.
NVidia Tesla GV100
Прежде чем приступить к анализу топологий на основе ускорителей от NVidia, рассмотрим базовый строительный блок для их создания — Tesla GV100 GPU. Кристалл микросхемы содержит около 21.1 миллиардов транзисторов, на площади около 815 квадратных миллиметров. Модуль несет на борту 16 GB локальной оперативной памяти.
Рис.1 Сопроцессор-ускоритель Tesla V100 (вид со стороны компонентов)
Потребляемая мощность, согласно параметру TDP (Thermal Design Power) составляет около 300W, поэтому не удивительно, что значительную долю площади печатной платы занимают элементы импульсных регуляторов напряжения: дроссели и силовые ключи (Рис 1).
Рис.2 Сопроцессор-ускоритель Tesla V100 (вид с монтажной стороны)
Ускоритель использует интерфейсы PCI Express 3.0 и NVLink 2.0. Разъемные соединения расположены с тыльной стороны платы (Рис 2).
PCI Express
В силу известных ограничений x86-платформ, обмен данными между CPU Intel и GPU NVidia может осуществляться только по PCIe. При ширине линка x16 и частоте передачи 8 гигатранзакций в секунду, PCIe-порт обеспечивает пропускную способность около 16 гигабайт в секунду в каждом направлении (32 GB/S с учетом дуплекса).
NVLink
Проприетарный интерфейс NVLink позволяет организовать прямое взаимодействие между несколькими GPU, частично нивелируя ограничения, присущие подсистеме ввода-вывода процессоров Intel Xeon. В свою очередь для систем на основе процессоров IBM Power 8, IBM Power 9, высокопроизводительный интерфейс NVLink используется для связи как GPU-GPU, так и GPU-CPU.
Базовым элементом NVLink 1.0 является канал с пропускной способностью 20 гигабайт в секунду. Агрегирование четырех каналов NVLink 1.0 в ускорителе предыдущего поколения GP100 обеспечивает трафик до 80 GB/S (160GB/S с учетом дуплекса).
В NVLink 2.0 пропускная способность одного канала увеличена до 25 GB/S. Агрегирование до шести каналов NVLink 2.0 в рассматриваемом ускорителе GV100 обеспечивает трафик до 150 GB/S (300GB/S с учетом дуплекса).
Консервативный вариант: Intel Xeon + NVidia GPU
Рассмотрим сервер NVIDIA DGX-1 на основе двух процессоров Intel Xeon и массива из восьми ускорителей NVidia Tesla V100. Двухсокетная платформа (Рис 3) содержит два процессора Intel Xeon, соединенных проприетарным интерфейсом Intel Quick Path Interconnect (серая горизонтальная линия). При частоте передачи 9.6 гигатранзакций в секунду и эффективной ширине шины два байта, пропускная способность составляет около 19 гигабайт в секунду. QPI используется для межпроцессорного коннекта и не допускает подключения микросхем разработки не-Intel.
Связь с периферией, в том числе ускорителями, реализована на базе интерфейса PCI Express (фиолетовые линии), возможности которого расширяются посредством разветвителей PCIe Switches. Как видно из блок-схемы, при данном соотношении количества линков и подключенных устройств, PCIe-трафик, предоставляемый каждому из них будет кратно меньше теоретических 16 гигабайт в секунду.
Рис 3. Система на основе двух CPU Intel Xeon и восьми ускорителей NVidia Tesla V100
Сильной стороной платформы является соединение ускорителей NVidia проприетарной шиной NVLink 2.0. Каждый из каналов этого интерфейса (утолщенные зеленые линии) обеспечивает пропускную способность около 25 гигабайт в секунду в каждом направлении (50 GB/S с учетом дуплекса). При анализе блок-схемы следует принимать во внимание агрегирование каналов, умножая указанную величину на изображенное количество параллельных линий. Таким образом, интерфейс NVLink создает «обходной маршрут» для взаимодействия между GPU, частично нивелируя ограничения PCIe-топологии, обусловленные применением процессоров Intel.
Революционный вариант: NVLink Enabled CPU + NVidia GPU
Топология, изображенная на Рис 4, не может быть построена на основе центральных процессоров Intel Xeon, поскольку предполагает наличие интерфейса NVLink в составе CPU.
Рис 4. Система на основе CPU с поддержкой NVLink и двух ускорителей NVidia Tesla V100
Действующим примером NVLink Enabled CPU может служить процессор IBM Power 8.
Рис 5. Система на основе двух CPU IBM Power 8 с поддержкой NVLink и четырех ускорителей NVidia Tesla P100
В системе на основе центрального процессора IBM Power 8 и ускорителей NVidia GP100, показанной на Рис 5, оба вида соединений (CPU-GPU и GPU-GPU) разделяют четыре канала интерфейса NVLink 1.0 суммарной пропускной способностью 80 GB/S (160 GB/S с учетом дуплекса).
Отметим, что на сегодня этот пример утратил статус экстремального. Как уже было сказано выше, ускорители NVidia GV100, совместимые с центральными процессорами IBM Power 9, располагают шестью каналами NVLink 2.0 суммарной пропускной способностью 150 GB/S (300 GB/S с учетом дуплекса).
Фактор программного обеспечения
Преимущества быстрого канала связи CPU-GPU повлияют на результаты бенчмарок лишь в том случае, если вычислительный алгоритм требует интенсивного обмена информацией между параллельно работающими ускорителями и хост-системой. В обратной ситуации — если каждый из ускорителей обрабатывает сравнительно небольшой объем локальной информации в течение длительного времени, скорость доставки данных не играет существенной роли. Пример — вычисление криптовалют.
Неочевидные преимущества консервативного варианта
Поскольку производительность интерфейса NVLink выше, чем PCI Express, вторую рассмотренную серверную платформу, построенную исключительно на основе NVLink можно считать более производительной, чем платформу с гибридной топологией, в которой CPU и GPU связаны по PCI Express, а NVLink используется только для прямой коммуникации между GPU в режиме peer-to-peer. Вместе с тем, внимательно посмотрев на блок-схемы можно заметить, что при использовании PCI Express для связи CPU-GPU, разработчик может задействовать большее количество каналов NVLink для связи между GPU, что ставит выбор лидера в зависимость от специфики вычислительных алгоритмов.
Вместо послесловия
Означает ли все вышесказанное, что в будущем у нас есть шансы увидеть x86-процессоры с интерфейсом NVLink? На сегодня такой сценарий кажется маловероятным в силу многочисленных контр-аргументов. Вместе с тем, стоит вспомнить историю более чем десятилетней давности, связанную с имплементацией технологии AMD64 в процессорах Intel…