Домой Статьи и аналитика Технологии Вышел пакет для вычислительной гидродинамики FluidX3D v3.7

Вышел пакет для вычислительной гидродинамики FluidX3D v3.7

Разработчики FluidX3D представили версию 3.7 с оптимизированным ядром визуализации, повышающим производительность на старых GPU до двух раз.

Вышел пакет для вычислительной гидродинамики FluidX3D v3.7
Вышел пакет для вычислительной гидродинамики FluidX3D v3.7 — иллюстрация к материалу. Источник: linux.org.ru

Вышло обновление FluidX3D до версии 3.7. Это специализированный пакет для вычислительной гидродинамики (CFD), который использует метод решёточных уравнений Больцмана (LBM) и работает через стандарт OpenCL. Проект позиционируется как решение с высокой производительностью и эффективным потреблением памяти, способное эффективно функционировать на GPU и CPU различных производителей.

Оптимизация визуализации

Ключевым нововведением версии 3.7 стала доработка ядра отрисовки изоповерхности Q-критерия, которая необходима для визуализации вихревых структур в потоках жидкости и газа. Ранее при расчётах ядро обращалось к видеопамяти для загрузки тяжёлого шаблона из 32 трёхмерных скоростей для каждой ячейки.

Разработчики изменили подход: теперь рабочая группа потоков размером 8×8×8 загружает блок 11×11×11 скоростей в 16 КБ локальной памяти первого уровня (L1). Благодаря этому соседние потоки могут повторно использовать данные. По словам автора, это решение позволило сократить количество обращений к VRAM примерно в 12 раз (до 2,6 скоростей на ячейку), переведя ядро из состояния, ограниченного пропускной способностью памяти, в состояние, ограниченное вычислительными мощностями.

Результаты производительности

Эффективность оптимизации зависит от архитектуры графического ускорителя:

  • На современных GPU с развитыми системами кэширования прирост может быть незначительным или отсутствовать.
  • На устаревшем оборудовании автор зафиксировал значительный прогресс: например, скорость отрисовки на NVIDIA Titan Xp выросла с 7 до 13 кадров/с, на встроенной графике Intel UHD 770 — с 8 до 14 кадров/с, а на дискретной Intel Arc A750 — с 22 до 26 кадров/с.

Для сохранения стабильности на старых или маломощных GPU предусмотрен автоматический откат к предыдущей версии ядра, если устройство не поддерживает группы по 512 потоков или имеет менее 16 КБ локальной памяти L1.

Дополнительные улучшения и возможности

В релизе 3.7 также реализованы следующие изменения:

  • Упрощены условия для отрисовки в VR.
  • Отключено разворачивание циклов в растеризации, что позволило сократить «спагетти-код» в ассемблерном выводе.
  • Добавлена микрооптимизация функций convert_triangle и _interpolated.
  • Исправлены ошибки вывода в адаптере OpenCL при пустом имени ядра или некорректном размере рабочей группы.

FluidX3D по-прежнему оснащён встроенным интерактивным 3D-рендерером, позволяющим анализировать поля скоростей, линии тока и сечения в процессе расчёта без экспорта данных во внешнее ПО. Также поддерживаются модели турбулентности Smagorinsky-Lilly, тепловая конвекция, работа с несколькими GPU и экспорт в формат VTK.

Лицензия

Исходный код проекта открыт и опубликован на GitHub. Важно отметить, что лицензия FluidX3D не является полностью свободной (не соответствует стандартам OSI/FSF): она разрешает использование в образовательных, личных и научных целях, но строго запрещает коммерческое применение, военные разработки и обучение ИИ-моделей на основе предоставленного кода.

Источник: https://www.linux.org.ru