2012-11-25 26 views
6

Khi chúng tôi sử dụng CUDA profiler nvvp, có một số "chi phí" s tương quan với các hướng dẫn, ví dụ:Trong CUDA profiler nvvp, "Phần chia sẻ lại toàn bộ bộ nhớ chia sẻ/toàn cầu" nghĩa là gì? Nó được tính như thế nào?

  • Chi nhánh phân kỳ trên cao;
  • Shared/Global Memory Replay Overhead; và
  • Chi phí phát lại bộ nhớ cache cục bộ/toàn cầu.

Câu hỏi của tôi là:

  1. nguyên nhân gì (s) những chi phí chung Và
  2. làm thế nào họ tính toán?
  3. Tương tự như thế nào, tính tải trên toàn cầu/Hiệu quả cửa hàng được tính như thế nào?

Đính kèm: Tôi đã tìm thấy tất cả các công thức tính toán các chi phí này trong 'CUDA Profiler Hướng dẫn sử dụng' được đóng gói trong bộ công cụ CUDA5.

Trả lời

2

Bạn có thể tìm thấy một số câu trả lời cho câu hỏi của bạn ở đây:

Why does CUDA Profiler indicate replayed instructions: 82% != global replay + local replay + shared replay?

Hướng dẫn tái hiện lại (%) Điều này cho phép tỷ lệ hướng dẫn tái hiện lại trong quá trình thực kernel. Hướng dẫn được phát lại là sự khác biệt giữa số lượng hướng dẫn thực sự được cấp bởi phần cứng với số lượng hướng dẫn được thực thi bởi hạt nhân. Lý tưởng nhất nên là số không. Đây là tính như 100 * (hướng dẫn ban hành - hướng dẫn thực hiện)/ hướng dẫn ban hành

bộ nhớ toàn cầu phát lại (%) Tỷ lệ hướng dẫn tái hiện lại gây ra do ký ức toàn cầu truy cập. Này được tính như 100 * (l1 bỏ lỡ tải toàn cầu)/hướng dẫn ban hành

Local nhớ replay (%) Tỷ lệ hướng dẫn tái hiện lại gây ra do bộ nhớ địa phương truy cập. Này được tính như 100 * (l1 địa phương tải bỏ lỡ + l1 địa phương cửa hàng bỏ lỡ)/hướng dẫn ban hành

ngân hàng chung cuộc xung đột phát lại (%) Tỷ lệ tái hiện lại hướng dẫn gây ra do xung đột ngân hàng bộ nhớ chia sẻ. Đây là được tính là 100 * (xung đột được chia sẻ l1)/hướng dẫn đã được phát hành

+1

Cảm ơn câu trả lời của bạn, BenC, tôi đã tìm ra "phần trăm phát lại xung đột" và "Chia sẻ xung đột ngân hàng được chia sẻ". Tuy nhiên, với các công thức cho replay "Global/Local memory", tôi vẫn không thể hiểu tại sao cache cục bộ/cục bộ bị lỡ sẽ gây ra replay hướng dẫn. Khi nhớ cache xảy ra, nó chỉ cần vào bộ nhớ toàn cục để tìm nạp những gì cần thiết, TẠI SAO REPLAY? – troore

+1

Tôi nghĩ bạn có thể tìm thấy một số câu trả lời cho câu hỏi của mình trong [các trang trình bày này] (http://developer.download.nvidia.com/CUDA/training/bandwidthlimitedkernels_webinar.pdf).Các hoạt động bộ nhớ được phát hành trên mỗi sợi dọc, giống như mọi lệnh khác. Khi một warp yêu cầu các từ tiếp theo, một bộ nhớ kém coalescing sẽ dẫn đến nhiều tải l1 bỏ lỡ, do đó gây ra replay hướng dẫn. Lưu ý rằng tôi không có chuyên gia CUDA để hiểu biết của tôi có thể không chính xác :-) – BenC

+1

[liên kết khác] này (http://www.freepatentsonline.com/8266383.html) có thể là những gì bạn đang tìm kiếm, nhưng các chi tiết kỹ thuật yêu cầu một số động lực thực sự. – BenC

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