2012-03-28 23 views

Trả lời

14

Một OpenCL Buffer là một 1D hoặc 2D hoặc 3D mảng trong bộ nhớ toàn cầu. Một đối tượng trừu tượng của nó có thể được giải quyết thông qua một con trỏ. Bộ đệm là chỉ đọc hoặc Write_only hoặc đọc-ghi. Bộ đệm hình ảnh đại diện cho bộ nhớ Kết cấu GPU. Nó đại diện cho một mảng các điểm ảnh mà có thể truy cập thông qua các hàm xác định tọa độ pixel x, y, z. Không có con trỏ truy cập vào Image Pixels trên GPU.

Phần cứng đối xử với hai loại những bộ đệm khác nhau. Bộ đệm OpenCL nằm trong RAM máy chủ hoặc RAM GPU và được truyền giữa hai bộ đệm. Bộ đệm hình ảnh OpenCL có các đặc tính tương tự của bộ đệm OpenCL. Nhưng sự khác biệt là Bộ đệm hình ảnh là Chỉ đọc hoặc Chỉ ghi. Đối với bộ đệm hình ảnh chỉ đọc, GPU có thể lưu trữ bản sao của các điểm ảnh trong mỗi đơn vị tính toán (= 32 hoặc 64 ALU). Điển hình kích thước bộ nhớ cache là 8K (byte hoặc pixel?). Ngoài ra, vì không thể truy cập pixel hình ảnh qua con trỏ trên GPU. Việc ánh xạ của chúng từ các tọa độx, y, z đến địa chỉ thực có thể được ánh xạ theo nhiều cách. Một cách là đặt hàng Z. Cụm này pixel theo hai chiều để các pixel lân cận theo các đường dẫn x, y được lưu trữ tuyến tính. Điều này giúp tăng tốc độ truy cập các pixel lân cận trong các bộ lọc hình ảnh .

Bộ đệm OpenCL được sử dụng cho các mảng chung và đặc biệt là đối với các mảng đọc, ghi, hoặc độ chính xác gấp đôi. OpenCL Buffers hình ảnh được sử dụng để xử lý hình ảnh hoặc algos xử lý tín hiệu khác nơi đầu vào image/tín hiệu có thể coi là read-only.

+0

thanks a lot cho phát lại của bạn. Đã học nhiều, nhưng cũng muốn biết cái nào nhanh hơn và tỷ lệ phần trăm nào – Megharaj

+0

Không có câu trả lời chung cho cái nào nhanh hơn và bằng% nào. Nó phụ thuộc vào cách mã của bạn truy cập bộ nhớ và thiết bị nào bạn chạy trên đó. –

3

FYI, bắt đầu từ OpenCL 2.x, đối tượng hình ảnh có thể được đọc-ghi.

Các vấn đề liên quan