Ich habe ein großes Array (z.B. 512K Elemente), das auf der GPU residiert und bei dem nur ein kleiner Teil der Elemente (z.B. 5K zufällig verteilte Elemente - Menge S) verarbeitet werden muss. Der Algorithmus, um herauszufinden, welche Elemente zu S gehören, ist sehr effizient, so dass ich leicht ein Array A mit Zeigern oder Indizes auf Elemente aus der Menge S erstellen kann.
Was ist der effizienteste Weg, um einen CUDA- oder OpenCL-Kernel nur über Elemente von S auszuführen? Kann ich einen Kernel über ein Array A ausführen? Alle Beispiele, die ich bisher gesehen habe, befassen sich mit zusammenhängenden 1D-, 2D- oder 3D-Arrays. Gibt es ein Problem mit der Einführung einer indirekten Ebene?