Ich versuche Fitted Value Iteration (FVI) in Python durchzuführen (einschließlich approximieren einer 5-dimensionalen Funktion mit stückweise lineare Interpolation).scipy.interpolate.griddata Äquivalent in CUDA
scipy.interpolate.griddata funktioniert perfekt dafür. Allerdings muss ich die Interpolationsroutine mehrere tausend Mal aufrufen (da FVI ein MC-basierter Algorithmus ist).
Also im Grunde ist die Menge der Punkte, wo die Funktion bekannt ist, statisch (und groß - sagen 32k), aber die Punkte, die ich approximieren muss (die kleine Störungen des ursprünglichen Satzes sind) ist sehr groß (32k x 5000) sagen).
Gibt es eine Implementierung dessen, was scipy.interpolate.griddata tut, das auf CUDA portiert wurde? Oder gibt es eine Möglichkeit, die Berechnung irgendwie zu beschleunigen?
Danke.
Hallo, ja gehen zu müssen - ich habe schließlich tun die meiste Arbeit selbst enden. Ich habe die Implementierung von find_simplex in scipy.spatial.Delauny untersucht und festgestellt, dass die Grundidee für genügend viele Punkte leicht parallelisiert werden kann. Ich führe also grundsätzlich zwei Schleifen aus - eine, um den Simplex für jedes MC-Sample zu finden (und zu speichern), und einen, um den gespeicherten Simplex nachzuschlagen und seine baryzentrischen Koordinaten für die Interpolation zu berechnen. Es ist durch Videospeicher begrenzt, aber es ist sehr schnell. – user1726633