2012-03-28 14 views

Antwort

14

Ein OpenCL-Puffer ist ein 1D-, 2D- oder 3D-Array im globalen Speicher. Es ist ein abstraktes Objekt , das durch einen Zeiger adressiert werden kann. Puffer sind schreibgeschützt oder Write_only oder Read-Write. Ein Bildpuffer repräsentiert den GPU-Texturspeicher. Es stellt eine Anordnung von Pixeln dar, auf die über Funktionen zugreifen kann, die Pixel x, y, z-Koordinaten angeben. Es gibt keinen Zeigerzugriff auf Bildpixel auf der GPU.

Die Hardware behandelt diese beiden Arten von Puffern unterschiedlich. Ein OpenCL-Puffer befindet sich entweder in Host-RAM oder GPU-RAM und wird zwischen beiden übertragen. Ein OpenCL-Bildpuffer hat analoge Eigenschaften eines OpenCL-Puffers. Aber die Unterschiede sind Image Buffer sind entweder schreibgeschützt oder schreibgeschützt. Bei schreibgeschützten Bildpuffern kann die GPU Kopien der Bildpixel in jeder Recheneinheit zwischenspeichern (= 32 oder 64 ALU). Typisch ist die Cache-Größe 8K (Bytes oder Pixel?). Auch, da Bildpixel nicht über einen Zeiger auf der GPU zugegriffen werden können. Ihre Zuordnung von x, y, z-Koordinaten zur physikalischen Adresse kann auf verschiedene Arten abgebildet werden. Ein Weg ist eine Z-Bestellung. Dadurch werden Pixel in zwei Dimensionen geclustert, so dass benachbarte Pixel in x, y Richtungen linear gespeichert werden. Dies beschleunigt den Zugriff auf benachbarte Pixel in Bildfilter.

OpenCL-Puffer werden für allgemeine Arrays und insbesondere für Arrays mit Lese-/Schreibzugriff, oder doppelte Genauigkeit verwendet. OpenCL-Bildpuffer werden für die Bildverarbeitung oder andere Signalverarbeitungsalgorithmen verwendet, wobei das Eingangsbild/Signal als schreibgeschützt behandelt werden kann.

+0

vielen Dank für Ihre Wiederholung. Viel gelernt, wollte aber auch wissen, welcher schneller ist und um wie viel Prozent – Megharaj

+0

Es gibt keine generische Antwort auf die was schneller ist und um wieviel%. Es hängt davon ab, wie Ihr Code auf Speicher zugreift und auf welchem ​​Gerät Sie laufen. –

3

FYI, ab OpenCL 2.x, Bild-Objekt kann gelesen werden-schreiben.