Выбор линейного решателя для вычисления GPGPU (OpenCL)

10

Я уже разработал рабочее решение метода конечных элементов для решения задач теплопередачи, используя GPU и OpenCL, используя метод сопряженных градиентов. Основным недостатком этого метода является высокий спрос на память. Более того, в случае видеокарт память часто очень ограничена. Я вижу два варианта:

  1. Создание поддоменов и замена частей сетки с памятью хоста.
  2. Используйте мультифронтальные методы

Я должен принять во внимание конкретную архитектуру. Обмен может быть очень дорогим. Метод CG популярен в контексте вычислений GPGPU, но я не могу найти никакого сравнения между CG и мультифронтальными методами (в случае GPGPU). Может ли мультифронтальный метод быть быстрее, чем CG? Это общий вопрос, на самом деле он все еще зависит от реализации.

Кшиштоф Бзовски
источник
2
Вы делаете глобальную сборку матриц в своем коде FEM? или вы используете реализации без матрицы? (т.е. без явного формирования матриц)
Аллан П. Энгсиг-Каруп
3
Какой предварительный кондиционер вы используете и на что похож домен? Десятилетний рабочий стол, использующий хороший алгоритм, превзойдет кластер графических процессоров, используя дрянной алгоритм.
Джед Браун
Вы используете шестигранные или упрощенные сетки? Если проблема с памятью, и вы используете шестнадцатеричные элементы с тензорными базисными функциями, в некоторых случаях вы можете сэкономить память, сохранив только одномерные операторы и используя безматричную реализацию (как упоминалось Алланом).
Джесси Чан

Ответы:

2

Я руководитель проекта на LibGeoDecomp , так что я подумал, что могу вмешаться.

Да, вы можете реализовать FEM с LibGeoDecomp. В настоящее время мы работаем над улучшенным контейнером данных именно для этого варианта использования. Но, честно говоря, до завершения этой работы еще много месяцев, и до тех пор производительность не будет оптимальной. Не стесняйтесь связаться со мной по электронной почте, если вы все еще хотите попробовать LibGeoDecomp.

Другим вариантом будет Fenics , который имеет хорошо оптимизированные решатели для нерегулярных задач. Но AFAIK, вы не можете написать свой собственный решатель в этом случае.

gentryx
источник
1

Я не знаю, поможет ли это вам. Здесь вы найдете ссылку на libgeodecomp , инструмент, который использует настраиваемые методы декомпозиции домена (с сайта). Насколько я знаю, его можно использовать с графическими процессорами. Если это поможет вам, проголосуйте за меня ;-)

vanCompute
источник