Tính toán Shader vs CUDA / OpenCL


8

Vì vậy, tôi mới tìm hiểu về Compute Shader và nó xuất phát từ những gì tôi đã chọn cùng một ý tưởng như lập trình song song bạn sẽ làm với CUDA hoặc OpenCL, nhưng trong đường dẫn shader.

Nếu tôi muốn vẽ một triệu hình khối trong một cảnh thì tôi nên sử dụng một phương pháp so với phương pháp kia hoặc cả hai. Nếu cả hai bạn chia nó ra như thế nào thì GPU không cố gắng tính toán song song cả shader và tiến trình khác cùng một lúc


2
Tại sao bạn muốn sử dụng GPGPU để vẽ hàng triệu khối ở vị trí đầu tiên?
Derag

3
Tính toán shader được sử dụng để tính toán khối lượng công việc, không kết xuất. Nguyên tắc chung là nếu bạn cần rasterization (nghĩa là xử lý hình học tam giác thành pixel), bạn nên sử dụng đường ống kết xuất; nếu bạn chỉ cần xử lý một phần lớn dữ liệu, bạn nên sử dụng tính toán. Tôi cũng quan tâm đến các đối số âm thanh cho và chống lại các shader tính toán và CUDA / OpenCL (với sự can thiệp API đồ họa). Một điều mà tôi đã nghe nói là việc xếp hàng khối lượng công việc tính toán tốt hơn với API dành riêng cho máy tính, nhưng tôi muốn biết thêm (ví dụ như cách tính toán async đi vào hình ảnh).
IneQ khu vực

@Derag Chỉ cần cố gắng để ăn tôn sùng khối của tôi càng nhanh càng tốt
FrickeFresh

Nếu bạn muốn vẽ một triệu khối, hãy sử dụng tia sáng diễu hành :)
russ

Câu trả lời:


7

Ngày nay, điều đó không hoàn toàn chính xác khi nghĩ về các shader tính toán là "trong đường ống đổ bóng" theo cùng một nghĩa là các shader đỉnh và mảnh của bạn được nối vào một đường ống theo nghĩa đen. Các shader tính toán không được "kết nối" với bất cứ điều gì hiện tại, không thể điều khiển quá trình rasterization hoặc trực tiếp tiêu thụ các đầu ra của rasterization.

Tuy nhiên, những gì nó cho phép bạn làm là tiêu thụ và sản xuất tài nguyên bộ nhớ cũng được sử dụng bằng cách thực hiện các cuộc gọi theo cách tương đối hiệu quả. OpenCL làm cho điều này khá khó khăn (xem ví dụ https://software.intel.com/en-us/articles/opencl-and-opengl-interoperability-tutorial ). Điều này cho phép bạn tích hợp hiệu quả các đường tính toán trong trình kết xuất của mình, nhưng nó không được tích hợp vào đường dẫn kết xuất

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.