Буферный объект и буфер изображения в OpenCL - PullRequest
7 голосов
/ 28 марта 2012

В чем разница между объектом Buffer и объектом буфера изображения в opencl? Очевидно, что буфер изображения быстрее, но в какой степени? Где они должны быть использованы?

Ответы [ 2 ]

16 голосов
/ 28 марта 2012

OpenCL Buffer - это 1D, 2D или 3D массив в глобальной памяти.Это абстрактный объект, к которому можно обратиться через указатель.Буферы только для чтения или только для записи или только для чтения и записи.Буфер изображения представляет текстурную память графического процессора.Он представляет собой массив пикселей, доступ к которому можно получить через функции, определяющие координаты x, y, z пикселей.Нет доступа указателя к пикселям изображения на графическом процессоре.

Аппаратное обеспечение по-разному относится к этим двум типам буферов.Буфер OpenCL находится либо в ОЗУ хоста, либо в ОЗУ графического процессора и передается между ними.Буфер изображений OpenCL имеет аналогичные характеристики буфера OpenCL.Но различия в том, что Image Buffer доступен только для чтения или только для записи.Для буферов изображений, доступных только для чтения, графический процессор может кэшировать копии пикселей изображения в каждой вычислительной единице (= 32 или 64 ALU).Типичный размер кэша составляет 8 КБ (байтов или пикселей?).Кроме того, поскольку пиксели изображения не могут быть доступны через указатель на графическом процессоре.Их отображение из координат x, y, z в физический адрес может быть отображено несколькими способами.Одним из способов является Z-порядок.Это кластеризует пиксели в двух измерениях, так что соседние пиксели в направлениях x, y сохраняются линейно.Это помогает ускорить доступ к соседним пикселям в фильтрах изображений.

Буферы OpenCL используются для общих массивов и особенно для массивов с возможностью чтения-записи или двойной точности.OpenCL Image Buffers используются для обработки изображений или других алгоритмов обработки сигналов, где входное изображение / сигнал может обрабатываться только для чтения.

4 голосов
/ 09 апреля 2014

FYI, начиная с OpenCL 2.x, объект изображения можно читать и писать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...