В чем разница между объектом буфера и объектом буфера изображения в opencl? Очевидно, что буфер изображения быстрее, но в какой степени? Где они должны использоваться?Объект буфера и объекта буфера изображения в OpenCL
ответ
OpenCL Buffer - это 1D или 2D или 3D массив в глобальной памяти. Его абстрактный объект , который может быть адресован через указатель. Буферы доступны только для чтения или Write_only или Read-Write. Буфер изображения представляет собой графическую память графического процессора. Он представляет собой массив пикселей, к которому может обращаться через функции, определяющие координаты пикселей x, y, z. Нет доступа к указателям на пиксели изображения на графическом процессоре.
Аппаратное обеспечение обрабатывает эти два типа буферов по-разному. Буфер OpenCL находится либо в Host RAM, либо RAM GPU и передается между ними. Буфер OpenCL Image аналогичен характеристикам буфера OpenCL. Но отличия: Image Buffer - это только чтение или запись. Для буферов изображений только для чтения графический процессор может кэшировать копии пикселей изображения в каждом вычислительном блоке (= 32 или 64 ALU). Типичный размер кеша составляет 8K (байты или пиксели?). Кроме того, поскольку пиксели изображения не могут быть доступны с помощью указателя на графическом процессоре. Их отображение от x, y, z координат к физическому адресу может быть отображено несколькими способами. Одним из способов является Z-упорядочение. Это кластеры пикселей в двух измерениях, так что соседние пиксели в направлениях x, y сохраняются линейно. Это помогает ускорить доступ к соседним пикселям в фильтрах изображений .
Буферы OpenCL используются для общих массивов и особенно для массивов, которые считываются-записываются, или двойной точности. Буферы изображения OpenCL используются для обработки изображений или других сигналов обработки сигналов , где входное изображение/сигнал может обрабатываться как только для чтения.
FYI, начиная с OpenCL 2.x, объект изображения можно читать и записывать.
- 1. Объект буфера OpenCL
- 2. opencl вектор буфера изображения/огромное количество данных для буфера изображения
- 3. Очистка буфера OpenCL clEnqueueMapBuffer
- 4. Заполнение буфера OpenCL
- 5. Оптимизация размещения и сопоставления буфера OpenCL
- 6. Создание объекта Mat из буфера изображения YV12
- 7. Выделение объекта буфера вершин
- 8. Ошибка объекта буфера кадра?
- 9. Как обновить данные общего буфера OpenCL-OpenGL в ядре OpenCL?
- 10. Ожидаемый объект буфера символов
- 11. Объект буфера потоков ввода Java?
- 12. Отправка командного буфера DX против OpenCL
- 13. Реализация пикового буфера буфера
- 14. Длина буфера переполнения буфера
- 15. Установка буфера буфера
- 16. при использовании объекта Image, он медленнее, чем использовать объект буфера
- 17. Внутренние работы объекта буфера OpenGL?
- 18. OpenGL: копирование объекта буфера кадра
- 19. Ожидаемая ошибка объекта буфера символов
- 20. TypeError: ожидается односегментный объект буфера
- 21. TypeError: ожидается, объект буфера символов
- 22. Копирование изображения из буфера обмена
- 23. Загрузить изображения из буфера обмена
- 24. Рендеринг растрового изображения из буфера
- 25. Python ожидает объект буфера символов
- 26. питон файл-подобный объект буфера
- 27. Python - Ожидаемый объект символьного буфера?
- 28. передать объект буфера в библиотеку ImageMagick правильно
- 29. получить вершины из буфера вершинного буфера
- 30. Объект исчезает после обновления буфера
большое спасибо за ваш повтор. Многому научился, но также хотел узнать, какой из них быстрее и по какому проценту – Megharaj
Нет общего ответа на то, что быстрее и на что%. Это зависит от того, как ваш код обращается к памяти и к какому устройству вы работаете. –