Проблема архитектуры Olympus
Архитектура NVIDIA Olympus использует симметричную многопоточность (SMT) с двумя вычислительными элементами (PE). В режиме одного потока PE получает доступ ко всем ресурсам ядра, а в режиме двух потоков ресурсы делятся. Ключевая проблема заключается в задержке возврата к однопоточному режиму: после того как второй поток (PE1) завершает работу, системе требуется время (квалификационный интервал в 10 000 циклов), чтобы восстановить полную производительность первого потока. Частые переключения между потоками из-за стандартного поведения планировщика неэффективны.
Решение: SD_ASYM_PACKING
Новая серия патчей, представленная инженером Andrea Righi, вводит поддержку SD_ASYM_PACKING для доменов SMT. Планировщик теперь:
- Сначала выбирает простое ядро на основе существующих правил размещения.
- Внутри выбранного ядра отдает приоритет PE0 (первому потоку).
- Избегает ненужного пробуждения PE1, если PE0 занят или простаивает, предотвращая «дребезг» между режимами SMT.
Результаты бенчмарков
Тестирование проводилось на двухузловой системе NVIDIA Vera с использованием 88-поточного workload однопоточной матричной операции GEMM (Single-Precision) на 88 физических ядрах узла NUMA 0. Патчи демонстрируют значительный прирост производительности и предсказуемости:
| Конфигурация / Версия ядра | Пропускная способность (TFLOP/s) | Примечание |
|---|---|---|
| Базовое ядро (до оптимизаций) | 6.2 | Исходный уровень производительности |
| Ядро с патчем NOHZ (v7.3) | 9.2 | Предпочтение полностью пустым ядрам |
| Ядро с патчами SMT Olympus (текущий) | 10.1 | Фиксация приоритета PE0 |
Прирост с 9.4 TFLOP/s (базовая ветка с NOHZ) до 10.1 TFLOP/s составляет около 7.5%. Кроме того, workload перестал хаотично переключаться между потоками, стабилизируясь на PE0, что делает поведение системы более предсказуемым.
Значение для экосистемы
Данные патчи уже отправлены на рассмотрение в список рассылки разработчиков ядра Linux. Успешный мейнстриминг этого решения позволит всем пользователям NVIDIA Vera (и потенциально других архитектур с аналогичной чувствительностью к SMT) получать оптимизированную производительность «из коробки» без необходимости ручного тюнинга планировщика.
Источник: Phoronix ↗
