工作項和流處理器(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 Comptuing單元和處理單元
- 3. 教程OpenCl事件處理
- 4. C++容器和openCL
- 5. 預處理器,後處理器,幾何處理器和NC處理器
- 6. OpenCL的工作組處理順序
- 7. GPGPU,OpenCL,CUDA,ATI流
- 8. 處理RTP流
- 9. 預處理器指令是否影響OpenCL內核性能?
- 10. 處理含衍生流流
- 11. 是PDF處理器處理輸出流嗎? (iTextSharp)
- 12. 使用Flink和kinesis流的流窗口處理處理不起作用
- 13. 重載流處理器運營商
- 14. 處理流媒體服務器
- 15. 定製的流處理器爲
- 16. 數據分析流處理(Storm)和複雜事件處理
- 17. 文件流處理
- 18. 流錯誤處理
- 19. 複雜事件處理流處理
- 20. 在處理時進行流式處理
- 21. 處理JWT和刷新令牌流
- 22. 處理註銷與流星和應對
- 23. C工藝和分流處理
- 24. 使用流加載和處理文件
- 25. 有狀態和無狀態流處理
- 26. Akka流和委託處理給演員
- 27. Javascript事件處理和流量控制
- 28. sitecore mvc中的自定義流水線處理器和IOC
- 29. CDN,Web App和處理服務器的邏輯流程
- 30. 自定義處理器和背壓,節流