Ускорение на GPU
Гибридный CPU+GPU режим для видеокарт NVIDIA и AMD.
Что это даёт
На расчётах RANS (вязкий) с сетками до 500 тысяч ячеек перенос части вычислений на GPU даёт ускорение в 5-10 раз по сравнению с чистым CPU. На простых сетках (Euler, 50 тысяч ячеек) ускорение может быть 15-20-кратным.
Например, расчёт одной точки поляры, который на 6 ядрах CPU занимает 10 минут, на RTX 3060 с гибридным режимом занимает 1-2 минуты. Полная поляра из 7 точек — 7-15 минут вместо 70.
Требования
- Видеокарта
- NVIDIA GeForce RTX 20xx / 30xx / 40xx, минимум 4 ГБ видеопамяти. Или AMD Radeon RX 6000/7000 с поддержкой ROCm (5.x и новее).
- SU2, собранный с GPU-поддержкой
- Официальные бинарники SU2 на su2code.github.io собираются без CUDA/HIP. Для GPU-режима нужна самостоятельная сборка:
git clone https://github.com/su2code/SU2.git
cd SU2
meson setup build -Dwith-cuda=enable
ninja -C build install
Для AMD ROCm аналогично: meson setup build -Denable-hip=enable.
Включение
Откройте Solver Settings → Производительность и ресурсы. В разделе «Вычислитель» выберите «CPU + GPU (гибридный SU2)». Появится слайдер «Нагрузка GPU» (0-100%). По умолчанию 50% — половина работы на GPU, половина на CPU.
Нажмите «Применить», затем запустите расчёт.
Как это работает
AeroOpt автоматически выбирает стратегию запуска в зависимости от того, что поддерживает ваш MPI:
-
Microsoft MPI с поддержкой -gpu.
AeroOpt запускает SU2 командой
mpiexec -n N -gpu 0,1,2,3 SU2_CFD.exe config.cfg. ПеременнаяOMP_TARGET_OFFLOAD=MANDATORYустанавливается автоматически. -
OpenMPI (Linux).
OpenMPI не поддерживает опцию -gpu. AeroOpt пробует
её, ловит ошибку «unrecognized option», затем
перезапускает SU2 в режиме OpenMP target offload
(
OMP_TARGET_OFFLOAD=MANDATORY+ACC_DEVICE_TYPE=NVIDIAилиAMD). - SU2 без GPU-сборки. Если SU2 собрана без CUDA/HIP, AeroOpt увидит ошибку «GPU support not compiled» в логе и автоматически переключится на чистый CPU. Расчёт продолжится как обычно.
В логе вы увидите, какая стратегия была выбрана:
Гибридный режим (mpiexec-gpu): GPU 50%, ядер CPU 6
MPI: msmpi
[16:42:13] Запуск: mpiexec -n 6 -gpu 0,1,2,3,4,5 SU2_CFD.exe config.cfg
Когда GPU-режим не поможет
- Сетки больше 1 миллиона ячеек: видеопамяти 4 ГБ недостаточно, нужно 8+ ГБ (RTX 3070 и выше).
- SU2 собрана без GPU-поддержки. AeroOpt автоматически откатится на CPU.
- Очень короткие расчёты (несколько итераций): время на передачу данных GPU превышает выигрыш.
Диагностика
В Solver Settings нажмите кнопку «Проверить связь» —
AeroOpt покажет, какие GPU обнаружены, через
nvidia-smi или WMI.
Если GPU не виден:
- Установите драйвер NVIDIA версии 525 или новее.
- Проверьте, что
nvidia-smiдоступен в PATH. - Для AMD убедитесь, что
rocm-smiустановлен и ROCm 5.x или новее.