Ich möchte einen Code portieren, der einen Satz partieller Differentialgleichungen (PDE) nach der Methode des endlichen Volumens in IMPLICIT-Form (für die Zeitdiskretisierung) auflöst.
Als Ergebnis gibt es ein tridiagonales Gleichungssystem in x-, y- und z-Richtung, das vom ADI / TDMA-Schema behandelt wird.
Ich kann anscheinend nichts über die implizite Lösung von PDEs mit CUDA finden.
Kann das ADI / TDMA-Schema in CUDA implementiert werden? Gibt es irgendwo ein Beispiel wie eine 2D-Wärmediffusionsgleichung?
Ich konnte nur einen CUDA-Beispielcode für die 2D-Wärmediffusionsgleichung in endlichen Differenzen, aber in EXPLICIT-Form (University of Cambridge) finden.
Jeder Hinweis / Hinweis wäre sehr dankbar.
Antworten:
Dieses Problem bietet sich für eine stark vektorisierte Form an. Wie Sie bereits bemerkt haben, bietet die ADI-Methode einige Schritte für tridiagonale Systeme. Da es sich um lineare Gleichungen handelt, können Sie mit CUsolver und CUblas parallele GPU-Versionen von Standardroutinen für lineare Algebra aufrufen. Mit diesen sollten Sie in der Lage sein, den expliziten Code zu nehmen und einfach die innere Schleife in einen geeigneten CUsolver-Aufruf zu ändern und ihn so zu lösen, dass der Code fast genau wie eine CPU-Implementierung aussieht, jedoch mit den Matrixoperationen, die auf den GPUs über ausgeführt werden Bibliotheksaufrufe.
quelle