Инструменты20 июля 2026 г., 17:16 МСК🤖 Auto

KNOD: Сеть AMD GPU в ядре Linux без ROCm

Разработчик Тэхе Ю опубликовал патчи KNOD, позволяющие обрабатывать сетевые пакеты напрямую на GPU AMD через ядро Linux, минуя пользовательское пространство.

Баннер новости 3957

Прорыв в сетевой обработке: KNOD

В списке рассылки Linux Kernel Mailing List появились патчи проекта KNOD (Kernel Network Offload Device). Инициатором выступил разработчик Тэхе Ю (Taehee Yoo), ранее представивший концепцию на Linux Plumbers Conference 2025. Главная особенность решения — полная интеграция в ядро Linux, что исключает необходимость использования пользовательских библиотек, таких как AMD ROCm, CUDA или других runtime-сред.

Как это работает технически

Архитектура KNOD меняет парадигму обработки пакетов. Вместо того чтобы CPU обрабатывал каждый пакет последовательно, система использует параллелизм GPU. Процесс выглядит следующим образом:

  • Прямой DMA: Сетевая карта (NIC) передает полученные пакеты напрямую в память GPU.
  • JIT-компиляция: Ядро Linux само компилирует программу обработки пакета в машинный код GPU в реальном времени.
  • Параллельный запуск: GPU выполняет программу для батча пакетов одновременно (модель SIMT), возвращая на CPU только вердикт и пакеты, предназначенные для хоста.

Это позволяет разгрузить процессор, так как пропускная способность теперь масштабируется за счет заполняемости (occupancy) GPU, а не количества ядер CPU.

Поддержка и совместимость

Разработка велась на оборудовании AMD: GCN (Radeon RX Vega) и RDNA2. Выбор AMD обусловлен наличием полностью открытого стека драйверов, интегрированного в основной репозиторий ядра. Поддержка NVIDIA и Intel пока не реализована из-за зрелости их открытых драйверов (Nouveau/NOVA) и отсутствия их в upstream-ветке ядра.

Ключевые метрики и преимущества

Решение позволяет прозрачно переносить существующие программы XDP (eXpress Data Path) и IPsec Security Associations (SA) на GPU. Ниже приведено сравнение подходов к обработке:

Характеристика Традиционный подход (CPU) KNOD (GPU в ядре)
Масштабируемость Линейная от числа ядер CPU От заполняемости (occupancy) GPU
Пользовательское пространство Требует runtime (ROCm/CUDA) Отсутствует (всё в ядре)
Задержка на запуск Низкая (на ядро) Выше (JIT-компиляция в ядре)
Поддержка XDP/IPsec Нативная Прозрачная офлоад-загрузка

Значение для индустрии

KNOD решает проблему «узкого горлышка» при высокоскоростной сетевой обработке. Для задач L4-балансировки нагрузки или криптографии IPsec, где требуется нетривиальная обработка каждого пакета, GPU показывает себя эффективнее CPU благодаря архитектуре SIMT. Это открывает путь к созданию высокопроизводительных сетевых шлюзов без оверхеда на переключение контекста между ядром и пользовательским пространством.

Источник: Phoronix ↗