CUDA SDK中的各種CUDA演示指的是「分散寫入」。這是什麼零散的寫作,爲什麼這麼偉大?與它的立場相反?CUDA:什麼是分散寫入?
8
A
回答
5
我打算在這裏使用CUDA的術語。
scattered write
表示您正在從每個cuda線程寫入任意地址(例如,您的warp線程不會寫入連續內存中,例如)。它與2d相關的幀緩衝區寫入形成對比,並且可以由硬件合併。在不久之前,這些是唯一可用於GPU的寫入。
它們是gather read
的相反操作,它從分散的位置讀取數據,並在收集的數據上以SIMD方式執行的線程變形之前收集所有數據。但是,通過任意紋理提取,GPU集合讀取早已在GPU上可用。
5
分散寫入很棒,因爲它允許您寫入任何內存地址。在給定着色器程序可以寫入的存儲器地址中,先前的着色器通常受到限制。
「儘管圖形API中的片段程序僅限於在預先指定的位置輸出32個浮點數(RGBA * 8個渲染目標),但CUDA支持分散寫入 - 即無限數量的存儲到任何地址。那是不可能的算法使用圖形API來高效地進行使用CUDA」
從CUDA FAQ:
基本上,它讓CUDA程序更容易編寫,因爲他們沒有在那裏爲他們的限制可以寫結果。請記住,在GPU上獲得良好性能的關鍵之一是利用內存局部性。通過大量寫入全局內存過度使用分散的寫入很可能會影響您的性能。
相關問題
- 1. 什麼是CUDA
- 2. 什麼是「分散唯一性算法」?
- 3. 什麼是CUDA上下文?
- 4. CUDA線程是分時。這是什麼意思?
- 5. CUDA線程發散和分支,示例
- 6. 什麼是離散動畫?
- 7. 「散貨」是什麼意思?
- 8. 什麼是密碼/散列?
- 9. 什麼是散列函數?
- 10. 什麼是「分散隱式擴展」scalac消息是什麼意思?
- 11. 什麼是緩衝區?什麼是緩衝讀取和寫入?
- 12. 我怎麼能寫在CUDA
- 13. 在CUDA分析期間,<overflow>是什麼意思?
- 14. 是什麼意思的Makefile在CUDA common.mk
- 15. 什麼是CUDA變量的含義?
- 16. 爲TEqualityComparer.Construct編寫散列函數的規範方法是什麼?
- 17. 什麼是緩衝區寫入?
- 18. _(「寫入錯誤」)是什麼意思?
- 19. 什麼是塑料SCM寫入?
- 20. 是什麼導致寫入活動
- 21. 什麼是「HDFS寫入管道」?
- 22. 「緩存寫入」是什麼意思?
- 23. 這是寫入什麼彙編語言?
- 24. 枚舉寫入時,C++寫入套接字是什麼
- 25. 寫入和寫入有什麼區別?
- 26. 什麼是回寫?
- 27. 離散分佈中負概率的後果是什麼?
- 28. 「散列函數的分佈」是什麼意思?
- 29. 爲什麼在寫入設備內存時此CUDA程序崩潰?
- 30. 類對象的HashSet。什麼是散列?
這仍然發生在「設備內存」上,對嗎? (而不是I/O分散/聚集操作,這將允許DMA引擎將來自不同主存儲器位置的內容驅動到例如單個I/O條帶中) – PypeBros 2014-01-17 10:01:59
正確。這是指GPU上的內存,而不是全局內存。 – 2014-01-17 17:53:16