GPU native FEM

Я бы хотел сегодня с вам порассуждать, и послушать ваши комментарии. Наверно мало кто будет спорить, что GPU-native решaтeли выполняют расчеты на порядки быстрее, чем традиционный код, исполняемый на CPU. Также, моделирование на основе методов частиц (DEM, SPH, MPS, MPM, LBM) кажется достаточно просто реализуется на GPU. По крайней мере, большинство кодов с такой направленностью неистово взлетают, когда могут дотянуться до видеокарты от NVIDIA.

Сейчас мы видим, что GPU-native решетили понемногу приходят в мир большого промышленного CFD. В прошлом году Ansys Fluent стал первым тяжелым CFD кодом, который получил GPU-native решатель. В этом году что-то похожее выкатил Star-CCM+.

Но у меня есть вопрос. А что у нас с задачами прочности? Уже на протяжении наверно 5 лет единственным GPU-native прочностным решателем остается Ansys Discovery Live (он же одновременно был и самым первым GPU-native CFD решателем на рынке). Discovery Live безусловно знаковый продукт, который пока так никто и не смог скопировать.

Но, серьезно, где конкурирующие промышленный FEM коды с GPU-native подходом? Почему мир тяжелого FEM моделирования замер на GPU-offload. Более того, в основном реализована поддержка только прямых решателей СЛАУ, а реализация ускорения итеративных решателей все еще является чем-то особенным.

Какие есть у вас идеи?

https://www.nvidia.com/en-us/gpu-accelerated-applications/?filter=eyJJbmR1c3RyeVNlZ21lbnQiOlsiSFBDIC8gU3VwZXJjb21wdXRpbmciXSwid29ya2xvYWRzIjpbIlNpbXVsYXRpb24gLyBNb2RlbGluZyAvIERlc2lnbiJdfQ==

8 comments

GPU FEM.
https://on-demand.gputechconf.com/gtc/2015/presentation/S5403-Nelson-Inoue%20.pdf

Мне кажется, что проблемы с хранением высоко-разреженных матриц в памяти. Интуиция подсказывает, что неконсистентное хранение приводит к проблемам быстрого доступа к ячейкам памяти, что перекрывает всю скорость вычислений, как следствие нужно будет оптимизировать низкоуровневые алгоритмы, а прикладные программисты не готовы этим заниматься. И наверняка инвесторы не готовы давать денег на такое R&D. Но могу ошибаться. Сюда бы спецов из центра суперкомпьютерного моделирования. У них точно есть ответ на этот вопрос. Например институты РАН такие конференции проводят по вопросам суперкомпьютерного моделирования с GPU вычислениями.
Если классический фем брать, то он же не очень параллелится. Мб бессеточные методы для прочности на гпу подошли бы лучше
В fem расчетах нужна в первую очередь память. А узкое место всех gpu вычислений видеопамять. На видеокартах ее относительно мало. Так мало, что код самого неявного решателя вместе с слау туда запихнуть очень сложно. Поэтому выбран путь иной- отдавать туда матрицы слау с простейшими инструкциями, что с ними делать. Оснавная часть кода решателя обрабатывается все так же процессором. В fluent еще далеко до полного gpu решателя. Реализована только самая простая в реализации схема simple с ограниченным набором моделей, а не coupled, как все хотели. Что то допиливается. Так что сделать fem на gpu можно, просто, видимо оно того не стоит.
Max Nurmuhambetov
В fem расчетах нужна в первую очередь память. А узкое место всех gpu вычислений видеопамять. На видеокартах ее относительно мало. Так мало, что код самого неявного решателя вместе с слау туда запихнуть очень сложно. Поэтому выбран путь иной- отдавать туда матрицы слау с простейшими инструкциями, что с ними делать. Оснавная часть кода решателя обрабатывается все так же процессором. В fluent еще далеко до полного gpu решателя. Реализована только самая простая в реализации схема simple с ограниченным набором моделей, а не coupled, как все хотели. Что то допиливается. Так что сделать fem на gpu можно, просто, видимо оно того не стоит.
Ну про пямять я не соглашусь. У NVIDIA H100 на боту 80ГБ памяти. Этого должно хватать для типовых прочностных задач, даже если расчет идет прямым обращением матрицы. Но видимо действительно, всем большим игрокам пока слабо полностью переписывать код своих решателей, который они уже под 50 лет пилят на каком-нибудь Fortran90 в лучшем случае.
Yury Novozhilov
Не до конца уверен. Но что еще?
Насколько мне известно, они используют метод решёточных уравнений Больцмана (Lattice Boltzmann methods, LBM)