我知道GPU上的共享內存不會在不同的內核中持續存在。但是,L1緩存是否會在不同的內核調用中持續存在?跨CUDA內核的L1高速緩存持久性
3
A
回答
6
SM L1高速緩存在相同流或空流的所有操作之間無效,以確保一致性。但它並不重要,因爲GPU上的L1緩存並非真正用於改善給定執行線程中的時間局部性。在大規模並行處理器上,重要的是並行空間局部性。這意味着你希望彼此執行的線程能夠訪問彼此相鄰的數據。
執行緩存的內存加載時,會執行單個warp,並且緩存會存儲由該warp中的線程訪問的緩存線(理想情況下只有一行)。如果下一個warp訪問相同的高速緩存行,則高速緩存將命中並且等待時間將減少。否則,緩存將使用不同的緩存行進行更新。如果內存訪問非常分散,那麼稍後的變形可能會在重新使用之前從早期的變形中逐出緩存行。
到另一個內核運行時,高速緩存中的數據不可能有效,因爲許多warps可能已經由該SM針對以前的內核運行,所以它是否真的無關緊要仍然存在。
相關問題
- 1. 高速緩存持久性
- 2. CUDA編程 - L1和L2高速緩存
- 3. __threadfence()和L1高速緩存一致性
- 4. GPU L1高速緩存一致性
- 5. 預填充Hibernate L1高速緩存
- 6. DataNucleus將 - L1高速緩存,分離
- 7. 保持你的代碼在L1高速緩存
- 8. L1緩存與主內存
- 9. GPU上的L1高速緩存存儲器
- 10. NSURLConnection緩存持久性
- 11. 使用spring高速緩存的屬性高速緩存
- 12. 與發佈/訂閱持久數據高速緩存的OnChange
- 13. 測量L1和L2高速緩存的大小和順序
- 14. 的Cortex A53 L1 L2高速緩存信息
- 15. 高速緩存性能
- 16. 如何使ASP.NET應用程序高速緩存持久
- 17. SQL服務器:持久性「高速緩存」表在整個連接
- 18. SQLite持久性存儲作爲緩存
- 19. 持久緩存內存不足
- 20. 高速緩存跨越的作用,同時刷新CPU緩存
- 21. Spring Data Neo4j - 跨存儲持久性
- 22. Django - 持久緩存
- 23. CUDA內核的並行性
- 24. 進程跳轉內核時是否刷新了L1緩存?
- 25. Firebase持久性,清除Firebase緩存
- 26. 用戶持久性:asp.net緩存:
- 27. NGINX內存高速緩存時出現
- 28. 高速緩存內存大小限制
- 29. C#共享內存高速緩存
- 30. 共享內存中高速緩存
一篇研究論文評估了在二級緩存中使數據持久存在的問題:http://dl.acm.org/citation.cfm?id=2159443該功能不在現有的GPU中。 – Heatsink