簡體   English   中英

金屬計算着色器threadgroup和threadExecutionWidth

[英]Metal compute shaders threadgroup & threadExecutionWidth

有人可以用簡單的術語來解釋“金屬計算”着色器和其他術語(例如SIMD組,threadExecutionWidth(波前))在概念上是什么線程組嗎? 我閱讀了文檔,但更加困惑。 例如,如果我有一個1024x1024的圖像,那么我可以擁有幾個線程組,如何將線程映射到每個像素,可以同時運行幾個,等等? 我找不到描述計算着色器和這些概念的WWDC視頻。

線程組是一組線程,它們共同解決某個(子)問題。 一個線程組中最多可以有5121024線程(取決於您使用的設備)。

threadExecutionWidth是所使用的SIMD組的大小。 通常為32 ,這意味着每個SIMD組中都有32線程。 為了獲得最佳性能,線程組中的線程數應為threadExecutionWidth (這確實是其他人所稱的波前或翹曲。)

如果你有一個1024x1024圖像,你想一個線程來處理一個像素,最大線程組大小為512 ,那么你就可以創建一個網格1024x1024線程由32x64大小的線程組32x16 (即512 )。

但是實際上,您可以根據需要划分線程。 您還可以擁有2x1024線程組的網格,大小為512x1或其他。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM