Wybór solwera liniowego do obliczeń GPGPU (OpenCL)

10

Opracowałem już działające rozwiązanie metody elementów skończonych do rozwiązywania problemów związanych z przenoszeniem ciepła za pomocą GPU i OpenCL przy użyciu metody gradientu sprzężonego. Główną wadą tej metody jest duże zapotrzebowanie na pamięć. Co więcej, w przypadku kart graficznych pamięć jest często bardzo ograniczona. Widzę dwie opcje:

  1. Twórz poddomeny i zamieniaj części siatki za pomocą pamięci hosta
  2. Stosuj metody wielopłaszczyznowe

Muszę wziąć pod uwagę specyficzną architekturę. Zamiana może być bardzo droga. Metoda CG jest popularna w kontekście obliczeń GPGPU, ale nie mogę znaleźć żadnego porównania między CG a metodami wielopłaszczyznowymi (w przypadku GPGPU). Czy metoda wielopłaszczyznowa może być szybsza niż CG? To jest ogólne pytanie, w rzeczywistości wciąż zależy od wdrożenia.

Krzysztof Bzowski
źródło
2
Czy wykonujesz globalny montaż macierzy w swoim kodzie MES? czy korzystasz z implementacji bez macierzy? (tj. brak wyraźnego formowania matryc)
Allan P. Engsig-Karup
3
Jakiego warunku używasz i jaka jest domena? Dziesięcioletni pulpit wykorzystujący dobry algorytm pokona klaster GPU za pomocą gównianego algorytmu.
Jed Brown
Czy używasz siatek sześciościennych lub prostych? Jeśli problemem jest pamięć i korzystasz z elementów szesnastkowych z funkcjami bazowymi produktu tensorowego, w niektórych przypadkach możesz zaoszczędzić pamięć, zapisując tylko operatory 1D i stosując implementację bez matrycy (jak wspomniany Allan).
Jesse Chan

Odpowiedzi:

2

Jestem liderem projektu w LibGeoDecomp , więc pomyślałem, że mógłbym wejść.

Tak, możesz zaimplementować MES za pomocą LibGeoDecomp. Aktualnie pracujemy nad ulepszonym kontenerem danych dla dokładnie tego przypadku użycia. Ale szczerze mówiąc: ukończenie tej pracy jest jeszcze za kilka miesięcy i do tego czasu wydajność nie będzie optymalna. Jeśli nadal chcesz wypróbować LibGeoDecomp, skontaktuj się ze mną przez e-mail .

Inną opcją byłyby Fenics , który ma dobrze zoptymalizowane rozwiązania dla nieregularnych problemów. Ale AFAIK, w takim przypadku nie możesz napisać własnego solvera.

gentryx
źródło
1

Nie wiem czy ci to pomaga. Znajdziesz tutaj link do libgeodecomp , narzędzia, które wykorzystuje dostosowywane techniki dekompozycji domen (z witryny). O ile mi wiadomo, można go używać z procesorami graficznymi. Jeśli ci to pomoże, zagłosuj mi ;-)

vanCompute
źródło