如何使用並行接口瞭解非合併讀/寫和銀行衝突的數量?
此外,當我使用nsight時,我應該看的是一個分析器?什麼是可能導致我的計劃放慢速度的重要領域?使用Nsight確定銀行衝突併合並
1
A
回答
1
我不使用NSight,但你會看到一個探查典型的領域基本上是:
- 內存消耗
- 時間花費在功能
更具體地說,使用CUDA時,您會注意GPU的佔用情況。
其他有趣的值是編譯器設置本地變量的方式:在寄存器或本地內存中。
最後,您將檢查花費在從GPU傳回數據的時間,並將其與計算時間進行比較。
1
對於銀行衝突,您需要觀看warp serialization
。見here。
和here is a discussion關於監控內存合併< - 基本上你只需要觀看Global Memory Loads/Stores - Coalesced/Uncoalesced
並標記Uncoalesced
。
0
M. Tibbits基本上回答了你需要知道的銀行衝突和非合併內存交易。
關於什麼是重要的領域/事情(使用Nsight分析器時),可能會導致我的計劃,以減緩在看這個問題:
- 使用應用程序或系統跟蹤,以確定您是否CPU綁定,內存綁定或內核綁定。這可以通過查看時間表來完成。
a。 CPU綁定 - 你會看到大面積沒有內核或內存拷貝發生,但你的應用程序線程(線程狀態)是綠色
b。內存限制 - 內存傳輸進出設備時阻塞內核。你可以通過查看內存行來看到這一點。如果您在Memory Copies中花費了大量時間,那麼您應該考慮使用CUDA流來處理您的應用程序。這可以讓你重疊內存傳輸和內核。在更改代碼之前,您應該比較傳輸和內核的持續時間,並確保獲得性能提升。
c。內核綁定 - 如果大部分應用程序時間都花在等待內核完成上,那麼您應該切換到「Profile」活動,重新運行應用程序,並開始收集硬件計數器,以瞭解如何使內核的實際執行時間更快。
相關問題
- 1. 解決衝突 - 嘗試合併GMEM訪問,使用SMEM,但銀行衝突
- 2. 使用交錯尋址方法並行減少銀行衝突
- 3. TFS合併衝突
- 4. svn合併衝突
- 5. libgit2:合併衝突
- 6. Github合併衝突
- 7. Git合併衝突
- 8. 合併衝突Gemfile.lock
- 9. Git合併(衝突)
- 10. Git合併衝突
- 11. DevelopmentServerPort合併衝突
- 12. 合併衝突Git
- 13. 合併衝突.gitignore
- 14. 水銀:編輯器不顯示衝突合併後的衝突文件
- 15. 整合與銀行衝突(Cuda)
- 16. 合併衝突:從衝突文件
- 17. svn:使用vim合併衝突
- 18. CONFLICT(內容):合併衝突
- 19. Mercurial,檢測合併衝突
- 20. Gemfile鎖合併衝突
- 21. 合併衝突解決
- 22. 什麼是合併衝突?
- 23. SVN樹衝突,而合併
- 24. 意外的合併衝突
- 25. 避免合併衝突
- 26. 修復合併衝突?
- 27. SVN合併樹衝突
- 28. Bitbucket - 修復合併衝突
- 29. 協作上定影合併衝突
- 30. 相鄰行上的Mercurial合併衝突