Ich habe eine spärlich gebänderte Matrix A und ich möchte (direkt) lösen Ax = b. Ich habe ungefähr 500 Vektoren b, also würde ich gerne für die entsprechenden 500 x's auflösen. Ich bin neu bei CUDA, daher bin ich ein wenig verwirrt darüber, welche Möglichkeiten ich habe.Batch CUDA Lösung von spärlich gebändert Ax = b für verschiedene b
cuSOLVER hat einen Batch-Direktlöser cuSolverSP für Sparse A_i x_i = b_i mit QR here. (Ich würde auch mit LU in Ordnung sein, da A anständig konditioniert ist.) Allerdings kann ich, soweit ich das beurteilen kann, nicht die Tatsache ausnutzen, dass alle meine A_i gleich sind.
Wäre es eine Alternative, zuerst eine spärliche LU (QR) -Faktorisierung auf der CPU oder der GPU zu ermitteln und dann parallel die Backsubstitution (Backsub und Matrix mult) auf der GPU durchzuführen? Wenn cusolverSp< t >csrlsvlu() für einen b_i ist, gibt es eine Standardmethode, um diese Operation für mehrere b_i durchzuführen?
Schließlich, da ich keine Intuition dafür habe, sollte ich eine Beschleunigung auf einer GPU für eine dieser Optionen erwarten, angesichts der notwendigen Overhead? x hat eine Länge von ~ 10000-100000. Vielen Dank.