DPU — это специальные процессоры для обработки данных. Аббревиатура расшифровывается как Data Processing Unit. Технологически это разновидность умных сетевых карт. Их главная цель — разгрузить центральный процессор (ЦП), взвалив на себя часть его работы.
Чтобы понять, в чем важность DPU и какие перспективы у этой технологии, нужно вернуться на несколько десятков лет назад.
90-е годы 20 века. Процессор Intel x86 в сочетании с программным обеспечением предлагает компаниям непревзойденную мощность. Развиваются клиент-серверные вычисления, вслед за ними — многоуровневые вычисления, затем — распределенные. Организации запускают серверы приложений, базы данных, специальное ПО — и все это на множестве серверов x86.
В начале 21 века распространение получают гипервизоры. Теперь на одном мощном сервере можно запускать несколько виртуальных машин. Ресурсы больше не разлетаются по воздуху, а используются рационально.
Благодаря гипервизорам аппаратное обеспечение стало программируемым. У администраторов появилась возможность писать код для автоматического определения и инициации виртуальных машин. Это стало основой современной парадигмы облачных вычислений.
Следующий шаг — виртуализация сетей и хранилищ. В итоге мощный ЦПУ — это основа для эмуляции всего. Его ресурсы используют для создания виртуальных процессоров, сетевых карт, интерфейсов хранения. Этот подход реализуют и провайдеры облачных сервисов, в том числе timeweb.cloud.
Обратная сторона такого развития — увеличение давления на ЦП. Он отвечает за все — от запуска операционной системы и приложений до сетевого трафика, операций ввода-вывода хранилища, безопасности и многого другого. Все аспекты системы конкурируют за ресурсы.
Функции ЦП выходят далеко за пределы изначального назначения процессора. В это время начинают проявляться две тенденции. Первая — это появление специализированного оборудования для искусственного интеллекта (ИИ). Вторая — эволюция программируемого оборудования.
Для решения задач из области искусственного интеллекта требуется параллелизм. Его невозможно обеспечить центральным процессором общего назначения. Поэтому хедлайнерами развития ИИ стали графические процессоры (GPU).
Графические процессоры, которые изначально разрабатывались для ускорения графики, стали сопроцессорами для параллельного выполнения сложных математических операций. NVIDIA быстро воспользовалась этой возможностью, выпустив GPU, предназначенные для обучения и логических выводов рабочих нагрузок ИИ.
Графические процессоры — это первый шаг к разгрузке CPU. Они взвалили на себя математические операции. После этого на рынке стали появляться другие программируемые чипы.
Эти микросхемы известны как специализированные интегральные схемы (ASIC) и вентильные матрицы (FPGA), которые можно запрограммировать для определенных целей, таких как оптимизация сетевого трафика или ускорение операций ввода-вывода в хранилище. Появились Broadcom-процессоры, которые стали устанавливать на сетевые карты, решения от Intel, NVidia, других участников рынка.
Благодаря развитию GPU и программируемых контроллеров с CPU снимается чрезмерная нагрузка. Сетевые функции, хранение и обработка передаются специальному оборудованию. Это и есть простой ответ на вопрос, что такое сопроцессор. Это устройство, которое разделяет функции ЦП, что позволяет получить максимальную производительность от аппаратных ресурсов. Секрет успеха прост — каждый занимается своим делом.
Прежде чем говорить о DPU, нужно немного разобраться с тем, что такое ASIC-процессор и при чем здесь вообще схема сетевой карты.
Сетевая карта — это устройство, через которое компьютер взаимодействует с другими устройствами в сети. Их еще обозначают аббревиатурой NIC (network interface controller). В основе сетевой карты лежит ASIC, который спроектирован для выполнения функций Ethernet-контроллера.
Микросхемам можно задать и другие роли. Ключевой момент — функциональность NIC нельзя менять постфактум. Для чего создавали, те задачи и будет выполнять.
Зато ограничений на изменение функциональности нет у SmartNIC. Такие микросхемы позволяют загружать дополнительное ПО. Благодаря этому пользователь может расширить или изменить функциональность ASIC. Для этого даже не нужно знать, как устроен процессор.
Чтобы провернуть фокус с изменением или расширением функциональности, SmartNIC использует повышенную вычислительную мощность и дополнительную память. Добавляют ресурсы по-разному: с помощью многоядерных ARM-процессоров, специальных сетевых процессоров, FPGA.
Сопроцессоры, которые предназначены для обработки данных — это расширения SmartNIC. На сетевые платы добавляют функциональность NVMe или NVMe over Fabrics (NVMe-oF). Устройство с Arm NVMe без труда разбирается с вводом-выводом, разгружая центральный процессор. Простое и элегантное решение, благодаря которому на CPU высвобождаются ценные ресурсы.
DPU имеет программируемые интерфейсы для работы с сетью и хранилищем. Благодаря этому приложения и нагрузки получают основную долю процессора, который теперь не занят повседневными задачами по управлению сетью и хранением данных.
Одно из самых известных решений — блок обработки создания данных NVIDIA® BlueField. В 2021 году компания представила уже третье поколение.
BlueField DPU предназначена для создания безопасной инфраструктуры с высокой скоростью работы, которая способна решать задачи в любой среде. Основные преимущества:
Собственные решения предлагает компания Pensando, которая разрабатывает Distributed Services Card. Это карта с DPU-процессором для обработки данных. У нее установлены дополнительные ARM-ядра, а также аппаратные ускорители отдельных функций вроде шифрования и обработки дисковых операций.
Собственные ASIC-проекты развивают Google и Amazon.
Google TPU — специальный процессор для машинного обучения. Предназначен для запуска передовых моделей машинного обучения с помощью сервисов искусственного интеллекта в Google Cloud.
AWS Graviton — чип на ядре ARM. Их задача — дать оптимальное соотношение производительности и стоимости облачных рабочих нагрузок, которые запускаются в Amazon EC2.
Вполне возможно, что ДПУ — это то, что в будущем станет обязательным третьим компонентом серверов в центрах обработки данных наряду с CPU (центральными процессорами) и GPU (графическими процессорами). Все благодаря их способности выполнять сетевые функции и функции хранения.
Архитектура может выглядеть так:
Кажется, у DPU большое будущее. На это указывает постоянно растущий объем данных. Сопроцессоры могут вдохнуть новую жизнь в существующие серверы, поскольку они снизят загрузку ЦП серверов, забрав у них отдельные рутинные операции. И не надо разбираться, что такое NVIDIA RAID Function и искать другие способы оптимизации для увеличения производительности.
Оценки показывают, что сейчас около 30% загрузки идет на сетевые функции. Их перенос на контроль ДПУ предоставит дополнительную вычислительную мощность CPU. Это также поможет продлить срок службы серверов на месяцы или даже годы. Сроки зависят от того, сколько ресурсов используется для сетевых функций.
Добавляя DPU к серверам, клиенты смогут максимально использовать ЦП для приложений, а не обременять их рутинным доступом к сети и хранилищу. И это выглядит логичным продолжением того процесса, который начался больше 30 лет назад с того, что организации стали выстраивать производительные системы на основе одного единственного центрального процессора.