OpenCL/C++ AMP unbd Vector von structs

C

Crymes

Guest
Ich habe ein vector-Template, dass structs enthält.
Ist es mögkich, diesen vector an einen OpenCL Kernel oder C++ AMP Lambda zu übergeben?

Wenn nein, ist es sinnvoll, für die Inhalte der Structs eigene Arrays anzulegen und die dann an dern Kernel zu übergeben, oder würde das Kopieren zu viel Rechenzeit benötigen?
 
Ich bin mir jetzt nicht 100% sicher, aber ich meine du musst zuerst immer den Kram auf die GPU kopieren, da diese nicht direkt auf den RAM des Hosts zugreifen kann. War zumindest bei CUDA so, als ich mich zuletzt damit beschäftigt habe.
 
Ja klar, aber kann ich dann auf diese Strichs im Vector mit z.B. vector[0].item1[0] ?
Bei meiner aktuellen C++Amp. Version geht das nämlich nicht :(
 
Stimmt, geht auch bei CUDA nicht :( Habe mir damals selbst was gebastelt, das hatte ich vergessen... Das Problem war bei mir, dass die Standard-Vector Klasse nicht zwischen Device- und Host-Speicher unterscheiden konnte und daher auf den falschen Speicher zugreifen wollte.

Hier gibt's was zu dem Thema mit C++ AMP: http://msdn.microsoft.com/en-us/library/hh265136
Habe es aber nur überflogen ;-) (bei array<> gucken)
 
Zurück