Có các thư viện chuẩn của các chức năng đổ bóng, chẳng hạn như đối với Cg. Nhưng có những tài nguyên cho bạn biết phải mất bao lâu ... Tôi nghĩ tương tự như cách bạn sử dụng để có thể tra cứu bao nhiêu chu kỳ mà mỗi ASM op sẽ thực hiện.Hiệu suất của các chức năng CG/GLSL/HLSL khác nhau
Trả lời
Không có đáng tin cậy tài nguyên sẽ cho bạn biết các chức năng shader tiêu chuẩn khác nhau mất bao lâu. Thậm chí không cho một phần cụ thể của phần cứng.
Lý do cho việc này liên quan đến lập lịch trình hướng dẫn và cách các kiến trúc shader hiện đại hoạt động. Lấy hàm sin
đơn giản. Giả sử rằng phần cứng có phần cứng đặc biệt để tính sin của một giá trị, vì vậy nó không được sử dụng một cách thủ công một chuỗi Tailor hoặc một cái gì đó. Tuy nhiên, chúng ta hãy nói rằng phải mất một chuỗi 4 opcodes để tính toán nó. Do đó, sin
sẽ mất "4 chu kỳ".
Tuy nhiên, tất cả các opcodes đó là hoạt động vô hướng. Do đó, trong khi chúng đang diễn ra, trên thực tế bạn có thể có một số sản phẩm có 3 điểm vectơ, hoặc trong trường hợp một số phần cứng, 4-vector dot-products sẽ xuất hiện cùng một lúc, trên cùng một bộ xử lý. Do đó, nếu phần cứng có 4-vector dot-products với các phép toán vô hướng, số chu kỳ cần để thực hiện một sin
và một ma trận-vector nhân là ... vẫn còn 4.
Vậy hoạt động sin
là bao nhiêu Giá cả? Nếu bạn lấy ma trận nhân lên, không có gì nhanh hơn. Nếu bạn lấy ra các sin
, không có gì vẫn được nhanh hơn. Chi phí là bao nhiêu? Bạn không thể nói, bởi vì chi phí của một hoạt động đơn lẻ là không liên quan; số lượng có thể đo lường duy nhất là chi phí của bóng đổ chính nó.
Cuối cùng, tất cả những gì bạn có thể làm là cố gắng xây dựng trình đổ bóng của bạn một cách hợp lý và xem hiệu suất là gì. Trừ khi bạn có các công cụ gỡ lỗi mức thấp để loại bỏ lắp ráp shader cơ bản (và không, assembly DX không đủ tốt), đó thực sự là điều tốt nhất bạn có thể làm.
- 1. Haskell: sự khác biệt về hiệu suất từ thành phần chức năng khác nhau?
- 2. Sẽ có sự khác biệt về hiệu suất giữa các chức năng ẩn danh và các chức năng bình thường?
- 3. Cải thiện hiệu suất của chức năng đánh bóng raytracing
- 4. Tại sao các phép đo hiệu suất lại khác nhau?
- 5. Hiệu suất Scala: bắt buộc so với kiểu chức năng
- 6. Hiệu suất của HashMap với công suất ban đầu khác nhau và hệ số tải
- 7. Javascript - Đối số Vs Chức năng lồng nhau Hiệu suất Vs
- 8. Sử dụng chức năng Chuyển qua chức năng khác nhau
- 9. Các nhóm Mulitprocess với các chức năng khác nhau
- 10. Mảng PHP sao chép các phím nhất định, các chức năng tích hợp sẵn? Hiệu suất vòng lặp lồng nhau?
- 11. Loại trả về khác nhau cho các chức năng ảo
- 12. Jquery: Chức năng gọi từ các tài liệu khác nhau
- 13. tổng hợp nhiều biến với các chức năng khác nhau
- 14. Hiệu suất C# khác nhau do bộ nhớ
- 15. RankNTypes: áp dụng các chức năng tương tự cho các cặp của các loại khác nhau
- 16. con trỏ hàm chức năng khác nhau với các đối số khác nhau trong C
- 17. Hiệu suất của Interlocked.Increment
- 18. Mở chức năng của mảng lồng nhau
- 19. Hiệu suất của Bộ đếm hiệu suất
- 20. Javascript: hiệu suất của var functionName = function() {} vs chức năng functionName() {}
- 21. Việc sử dụng các chức năng ẩn danh có ảnh hưởng đến hiệu suất không?
- 22. Tổ chức và hiệu suất mã jQuery
- 23. Hiệu suất của dynamic_cast?
- 24. Hiệu suất của ArrayList
- 25. Hiệu suất của Fortran
- 26. Sự khác nhau giữa & chức năng và function() trong perl
- 27. Bản đồ chức năng tăng cường của các loại khác nhau?
- 28. Hiệu suất của Boost Python
- 29. Hiệu suất của jQuery Parallax/Scroll Hiệu suất
- 30. Sự khác biệt giữa năng suất bằng Python và hiệu suất trong C#
Nó thay đổi từ thiết bị đến thiết bị – Flexo
Tôi đoán, ngày nay quan trọng hơn là bạn có thể tải bao nhiêu bộ vi xử lý. Nếu bạn thiết lập một shader nặng với kết cấu phụ thuộc lần đọc, bạn sẽ nhận được các quầy hàng và chờ đợi và những thứ khó chịu khác. "Số chu kỳ" thuần túy sẽ không giúp ích trong trường hợp này. – Lyth
Cả hai đều đúng - nhưng một số ý tưởng sẽ vẫn hữu ích như một điểm khởi đầu. Ví dụ các hàm toán học/hình học ... cách phân chia so sánh với cos, hoặc cos so với acos, hoặc sqrt so với tân ... –