2013-10-28 20 views
10

Bộ nhớ cache L2 hoạt động như thế nào trong GPU với kiến ​​trúc Kepler về mặt địa phương của các tham chiếu? Ví dụ: nếu một chuỗi truy cập địa chỉ trong bộ nhớ chung, giả sử giá trị của địa chỉ đó không nằm trong bộ nhớ cache L2, giá trị được lưu trong bộ nhớ cache như thế nào? Là nó thời gian? Hoặc là các giá trị lân cận khác của địa chỉ đó được đưa vào bộ nhớ cache L2 quá (không gian)?Bộ nhớ cache L2 trong Kepler

Ảnh dưới đây là từ báo cáo chính thức của NVIDIA.

Picture is from NVIDIA whitepaper

+1

Bộ nhớ cache L2 được giới thiệu với khả năng tính toán 2.0 trở lên và tiếp tục được hỗ trợ trên kiến ​​trúc Kepler. Chính sách bộ nhớ đệm được sử dụng là LRU (ít được sử dụng gần đây nhất), ý định chính của nó là tránh tắc nghẽn băng thông bộ nhớ toàn cầu. Tôi đã đọc điều này từ cuốn sách "Thiết kế và phát triển ứng dụng Cuda". Bạn không chắc chắn nếu câu trả lời cho câu hỏi của bạn. –

+3

Bộ nhớ cache L1 có kích thước bộ nhớ cache là 128 byte. Bộ nhớ cache L2 có kích thước bộ nhớ cache là 32 byte. Vì vậy, một L2 bỏ lỡ gây ra một tải 32-byte. Kepler thường không có L1 được kích hoạt cho tải toàn cầu thông thường. –

Trả lời

10

bộ nhớ cache L2 Unified đã được giới thiệu với khả năng tính toán 2.0 và cao hơn và tiếp tục được hỗ trợ trên kiến ​​trúc Kepler. Chính sách bộ nhớ đệm được sử dụng là LRU (ít được sử dụng gần đây nhất), ý định chính của nó là tránh tắc nghẽn băng thông bộ nhớ toàn cầu. Ứng dụng GPU có thể trưng bày cả hai loại địa phương (thời gian và không gian).

Bất cứ khi nào có nỗ lực đọc bộ nhớ cụ thể, nó sẽ tìm trong bộ nhớ cache L1 và L2 nếu không tìm thấy, sau đó nó sẽ tải 128 byte từ dòng bộ nhớ cache. Đây là chế độ mặc định. Điều tương tự có thể được hiểu từ sơ đồ dưới đây là tại sao mẫu truy cập 128 bit cho kết quả tốt.

enter image description here

+2

Đoạn đầu tiên của bài đăng trên trả lời câu hỏi. Về đoạn thứ hai của câu trả lời này, tôi nghĩ rằng nó chỉ đúng khi (trong chế độ mặc định) kiến ​​trúc thiết bị là Fermi. Như @Robert Crovella đã đề cập trong các bình luận, trong Kepler một lỗi bộ nhớ cache L2 kết quả trong một tải 32-byte. Ngoài ra, tôi nghĩ rằng sơ đồ là gây hiểu nhầm. Khi một SM bị tận dụng bởi số lượng thấp các luồng, các yêu cầu bộ nhớ toàn cầu rộng hơn có thể bão hòa băng thông bộ nhớ toàn cầu. Khi SM trở nên bận rộn hơn với nhiều chủ đề hơn, băng thông bộ nhớ toàn cầu có thể được bão hòa ngay cả với tải 4 byte. – Farzad

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