工作項和流處理器(cuda core)之間的關係如何。我在某處讀到工作項目的數量應該大大超過核心數量,否則就沒有性能改進。但爲什麼這樣呢?我認爲1核心代表1個工作項目。有人能幫助我理解這一點嗎? 謝謝Opencl Workitems和流處理器
2
A
回答
0
原因主要是調度 - 單個內核/處理器/單元通常可以運行多個線程並在它們之間切換以隱藏內存延遲(SMT)。因此,每個內核通常都有一個好主意,讓它有多個線程排隊等待。
線程通常會對應至少一個工作項,儘管取決於驅動程序和硬件,多個工作項可能會合併爲一個線程,以利用內核的SIMD /向量功能。
1
GPU和大多數其他硬件往往比他們可以訪問大多數可用內存的速度快得多。有更多的工作項目比你有處理器讓調度程序錯開內存使用,而那些已經讀取其數據的工作項目正在使用ALU硬件來處理。
Here is a good page about optimization in opencl.向下滾動到「 2.4。去除'代價高昂'的全局GPU內存訪問」,它進入了這個概念。
相關問題
- 1. OpenCL中的處理器親和性
- 2. OpenCL視頻處理
- 3. OpenCL編譯器預處理定義?
- 4. OpenCL Comptuing單元和處理單元
- 5. 流多處理器,每個流處理器的核心cuda
- 6. 教程OpenCl事件處理
- 7. 流|處理器和線程模型
- 8. 流中的OpenCL
- 9. C++容器和openCL
- 10. 預處理器,後處理器,幾何處理器和NC處理器
- 11. OpenCL:查詢處理元素的數量
- 12. 用於批處理的Java OpenCL FFT
- 13. OpenCL的工作組處理順序
- 14. PyOpenCL圖像處理VRS的OpenCL圖像處理
- 15. 處理RTP流
- 16. GPGPU,OpenCL,CUDA,ATI流
- 17. 預處理器指令是否影響OpenCL內核性能?
- 18. 處理含衍生流流
- 19. 如何處理流的流?
- 20. openCL - 處理數組和標量的區別
- 21. 處理OpenCL內核中的臨時矩陣和私有內存
- 22. openCL中由CPU和GPU處理的數據之間的區別
- 23. 是PDF處理器處理輸出流嗎? (iTextSharp)
- 24. 使用Flink和kinesis流的流窗口處理處理不起作用
- 25. 處理流媒體服務器
- 26. PHP流媒體視頻處理器
- 27. 重載流處理器運營商
- 28. 定製的流處理器爲
- 29. 數據分析流處理(Storm)和複雜事件處理
- 30. 文件流處理