2012-03-28 10 views

risposta

14

Un OpenCL Buffer è un array 1D o 2D o 3D nella memoria globale. È un oggetto astratto che può essere indirizzato attraverso un puntatore. I buffer sono di sola lettura o Write_only o Read-Write. Un buffer immagine rappresenta la memoria Texture GPU. Rappresenta una serie di pixel a cui è possibile accedere tramite funzioni che specificano le coordinate pixel x, y, z. Non c'è l'accesso puntatore a Image Pixel sulla GPU.

L'hardware tratta questi due tipi di buffer in modo diverso. Un OpenCL Buffer è nella Host RAM o GPU RAM e trasferito tra i due. Un OpenCL Image Buffer ha analoghe caratteristiche di di un OpenCL Buffer. Ma le differenze sono Image Buffer o sono di sola lettura o di sola scrittura. Per i buffer di immagini di sola lettura, la GPU può memorizzare nella cache copie dei pixel dell'immagine in ogni unità di elaborazione (= 32 o 64 ALU). Tipicamente la dimensione della cache è 8K (byte o pixel?). Inoltre, poiché non è possibile accedere ai pixel dell'immagine tramite un puntatore sulla GPU. La loro mappatura dalle coordinate x, y, z all'indirizzo fisico può essere mappata in diversi modi. Un modo è quello di ordinare un Z. Questo raggruppa i pixel in due dimensioni in modo che i pixel adiacenti nelle direzioni x, y siano memorizzati in modo lineare. Questo aiuta a velocizzare l'accesso ai pixel vicini nei filtri immagine .

I buffer OpenCL vengono utilizzati per gli array generali e in particolare per gli array che sono in lettura-scrittura, o doppia precisione. I buffer di immagine OpenCL sono utilizzati per l'elaborazione di immagini o altre algorie di elaborazione dei segnali in cui l'immagine/segnale di ingresso può essere considerato di sola lettura.

+0

grazie mille per il vostro replay. Ho imparato molto, ma volevo anche sapere quale è più veloce e in quale percentuale – Megharaj

+0

Non esiste una risposta generica alla quale è più veloce e da quale percentuale. Dipende da come il tuo codice accede alla memoria e a quale dispositivo stai usando. –

3

FYI, a partire da OpenCL 2.x, l'oggetto immagine può essere letto-scrittura.

Problemi correlati