DPU
DPU (Data Processing Unit, блок обработки данных) — это специализированный программируемый микропроцессор, предназначенный для высокопроизводительной обработки, перемещения и управления данными в центрах обработки данных (ЦОД). В отличие от центрального процессора (CPU), оптимизированного для последовательных вычислений и управления логикой, и графического процессора (GPU), нацеленного на параллельные вычисления с плавающей запятой, DPU сфокусирован на задачах инфраструктурного уровня: обработка сетевых пакетов, управление хранением данных, шифрование, виртуализация и обеспечение безопасности. DPU часто называют «третьим чипом» в архитектуре современных ЦОД, наряду с CPU и GPU.
История и предпосылки появления
Развитие DPU неразрывно связано с ростом объёмов данных и усложнением сетевой инфраструктуры. В начале 2000-х годов, с распространением технологий виртуализации, нагрузка на центральные процессоры серверов резко возросла. Операционная система и гипервизор (программа, управляющая виртуальными машинами) тратили значительные вычислительные ресурсы на обработку сетевых пакетов, управление вводом-выводом (I/O) и обеспечение изоляции виртуальных машин. Это снижало производительность приложений, работающих на сервере.
Первым шагом к решению проблемы стало появление SmartNIC (умных сетевых карт). Эти устройства представляли собой сетевые адаптеры со встроенными программируемыми чипами (FPGA или ASIC), которые могли брать на себя часть задач по обработке трафика, разгружая CPU. Однако SmartNIC имели ограниченную функциональность и были жёстко привязаны к сетевой подсистеме.
В середине 2010-х годов, с ростом популярности облачных вычислений, стало очевидно, что требуется более универсальное и мощное решение. Компании, такие как NVIDIA, Intel, AMD и Marvell, начали разработку специализированных процессоров, которые могли бы не только обрабатывать сетевые пакеты, но и управлять хранением данных, выполнять криптографические операции и обеспечивать аппаратную изоляцию виртуальных машин. Термин DPU был введён в широкий оборот компанией NVIDIA в 2020 году с анонсом семейства процессоров BlueField, хотя аналогичные устройства (например, Intel Xeon D, AMD EPYC с интегрированными функциями, а также решения от Pensando Systems, приобретённой AMD) существовали и ранее.
Архитектура и устройство
DPU представляет собой сложную систему на кристалле (SoC), объединяющую несколько ключевых компонентов:
- Ядра общего назначения (ARM, RISC-V, x86): Обычно используются энергоэффективные ядра архитектуры ARM (например, Cortex-A72, Neoverse N1). Они выполняют управляющие функции, обрабатывают управляющие плоскости (control plane) сетевых протоколов и запускают специализированное ПО.
- Высокоскоростные сетевые интерфейсы: DPU обязательно оснащается портами Ethernet (от 25 Гбит/с до 400 Гбит/с и выше) или InfiniBand. Эти интерфейсы обеспечивают прямой доступ к сети без задействования CPU сервера.
- Аппаратные ускорители: Ключевое отличие DPU от CPU. Сюда входят:
- Ускорители обработки пакетов: Реализуют полный стек сетевых протоколов (TCP/IP, RDMA, NVMe-oF) на аппаратном уровне, обеспечивая минимальную задержку и максимальную пропускную способность.
- Ускорители хранения: Выполняют операции сжатия, дедупликации, шифрования и коррекции ошибок (ECC) для данных на дисках и твердотельных накопителях (SSD).
- Криптографические ускорители: Обеспечивают аппаратное ускорение алгоритмов шифрования (AES, RSA, ECC), хеширования (SHA) и генерации случайных чисел, что критически важно для безопасности.
- Ускорители виртуализации: Аппаратно реализуют изоляцию виртуальных машин и контейнеров, управление таблицами страниц памяти и виртуальными функциями (SR-IOV).
- Высокоскоростная память: DPU имеет собственную память (HBM, DDR4/DDR5), которая используется для хранения таблиц маршрутизации, буферов пакетов и временных данных. Это позволяет избежать задержек при обращении к основной памяти сервера.
- Интерфейс с хост-системой: DPU подключается к серверу через шину PCI Express (PCIe 4.0, PCIe 5.0). Это обеспечивает высокоскоростной обмен данными между DPU и CPU, а также памятью сервера.
Классификация DPU
DPU можно классифицировать по нескольким признакам:
- По типу используемых ядер:
- На базе ARM: Наиболее распространённый тип (NVIDIA BlueField, Marvell OCTEON). Обеспечивает оптимальное соотношение производительности и энергопотребления.
- На базе RISC-V: Перспективное направление, позволяющее создавать открытые и гибкие архитектуры.
- На базе x86: Встречается реже, обычно в составе интегрированных решений (например, Intel Xeon D).
- По функциональному назначению:
- Сетевые DPU: Сфокусированы на обработке сетевого трафика и управлении виртуальными сетями.
- DPU для хранения данных: Оптимизированы для работы с протоколами NVMe-oF и ускорения операций ввода-вывода.
- Универсальные DPU: Сочетают все функции (сеть, хранение, безопасность).
- По производительности:
- DPU начального уровня: Обеспечивают пропускную способность до 25 Гбит/с и используются в серверах начального уровня.
- DPU среднего уровня: Пропускная способность 100-200 Гбит/с, предназначены для большинства корпоративных ЦОД.
- Высокопроизводительные DPU: Пропускная способность 400 Гбит/с и выше, используются в крупных облачных провайдерах и суперкомпьютерах.
Применение
Основные области применения DPU включают:
- Облачные вычисления: DPU являются ключевым компонентом для построения «облака на чипе». Они позволяют полностью разгрузить CPU от инфраструктурных задач, обеспечивая изоляцию арендаторов (тенантов) и повышая плотность виртуализации. Крупнейшие облачные провайдеры (Amazon Web Services, Microsoft Azure, Google Cloud) активно используют DPU в своих ЦОД.
- Центры обработки данных (ЦОД): DPU используются для оптимизации работы сетевого и дискового оборудования, ускорения протоколов RDMA (Remote Direct Memory Access) и NVMe-oF (NVMe over Fabrics), что позволяет снизить задержки и повысить пропускную способность.
- Высокопроизводительные вычисления (HPC): В суперкомпьютерах DPU используются для управления межсоединениями (например, InfiniBand), ускорения обмена данными между узлами и обеспечения эффективной работы параллельных приложений.
- Безопасность: DPU могут выполнять функции аппаратного брандмауэра, системы обнаружения вторжений (IDS) и системы предотвращения вторжений (IPS) на уровне сети, не затрагивая производительность приложений. Они также обеспечивают аппаратное шифрование данных на лету.
- Хранение данных: DPU ускоряют работу систем хранения данных (SAN, NAS), выполняя операции сжатия, дедупликации и шифрования на аппаратном уровне, а также управляя протоколами NVMe-oF.
Преимущества и недостатки
Преимущества:
- Разгрузка CPU: Освобождение до 30-40% ресурсов CPU для выполнения прикладных задач, что повышает общую производительность сервера.
- Снижение задержек: Аппаратная обработка сетевых пакетов и протоколов обеспечивает микросекундные задержки, что критически важно для финансовых приложений и HPC.
- Повышение безопасности: Аппаратная изоляция виртуальных машин и выполнение криптографических операций на DPU снижают поверхность атаки.
- Энергоэффективность: DPU потребляют меньше энергии на обработку одного пакета данных по сравнению с CPU.
- Масштабируемость: DPU позволяют строить однородную инфраструктуру, где управление сетью и хранением вынесено на специализированные устройства.
Недостатки:
- Сложность программирования: Разработка ПО для DPU требует глубоких знаний в области сетевых протоколов, аппаратного ускорения и архитектуры SoC.
- Высокая стоимость: DPU являются дорогостоящими компонентами, что ограничивает их применение в бюджетных серверах.
- Экосистема: На данный момент экосистема DPU (программные стеки, SDK, инструменты отладки) менее развита по сравнению с CPU и GPU.
- Зависимость от производителя: Многие DPU используют проприетарные архитектуры и программные интерфейсы, что создаёт риск vendor lock-in.
Перспективы развития
Рынок DPU продолжает активно развиваться. Ожидается, что в ближайшие годы DPU станут стандартным компонентом серверов, аналогично тому, как это произошло с GPU. Основные тенденции включают:
- Интеграция с CPU и GPU: Появление гибридных чипов, объединяющих функции CPU, GPU и DPU на одном кристалле.
- Развитие открытых стандартов: Появление открытых архитектур (например, на базе RISC-V) и программных платформ (например, DPDK, SPDK) для DPU.
- Рост производительности: Увеличение пропускной способности до 800 Гбит/с и выше, а также внедрение более мощных ядер общего назначения.
- Применение в периферийных вычислениях (Edge Computing): DPU будут использоваться в устройствах на границе сети для обработки данных в реальном времени.
Критика
Основные критические замечания в адрес DPU связаны с их высокой стоимостью и сложностью внедрения. Некоторые эксперты утверждают, что для большинства корпоративных ЦОД достаточно использования SmartNIC на базе FPGA, которые дешевле и проще в настройке. Другие указывают на то, что DPU создают дополнительную точку отказа в инфраструктуре, а их программное обеспечение может содержать уязвимости, которые сложно обнаружить. Также отмечается, что DPU не решают проблему «узкого места» в архитектуре фон Неймана, а лишь переносят её на другой уровень.
Источники
- NVIDIA. (2020). NVIDIA BlueField DPU: The Data Processing Unit.
- Marvell. (2021). Marvell OCTEON 10 DPU: The Industry's First 5nm DPU.
- Intel. (2022). Intel Infrastructure Processing Unit (IPU).
- AMD. (2022). AMD Pensando DPU.
- Mellanox Technologies (приобретена NVIDIA). (2019). SmartNICs and DPUs: The Evolution of Data Center Networking.
- Open Compute Project (OCP). (2021). Data Processing Unit (DPU) Specification.
- The Register. (2023). What is a DPU? A guide to the data center's third chip.
- IEEE Spectrum. (2022). The Rise of the Data Processing Unit (DPU).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →