Прорыв в сетевой обработке: 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 ↗
