Metal框架詳細(xì)解析(九) —— 關(guān)于GPU Family 4之關(guān)于線程組共享(六)

版本記錄

版本號(hào) 時(shí)間
V1.0 2018.10.06 星期六

前言

很多做視頻和圖像的,相信對(duì)這個(gè)框架都不是很陌生,它渲染高級(jí)3D圖形,并使用GPU執(zhí)行數(shù)據(jù)并行計(jì)算。接下來的幾篇我們就詳細(xì)的解析這個(gè)框架。感興趣的看下面幾篇文章。
1. Metal框架詳細(xì)解析(一)—— 基本概覽
2. Metal框架詳細(xì)解析(二) —— 器件和命令(一)
3. Metal框架詳細(xì)解析(三) —— 渲染簡單的2D三角形(一)
4. Metal框架詳細(xì)解析(四) —— 關(guān)于GPU Family 4(一)
5. Metal框架詳細(xì)解析(五) —— 關(guān)于GPU Family 4之關(guān)于Imageblocks(二)
6. Metal框架詳細(xì)解析(六) —— 關(guān)于GPU Family 4之關(guān)于Tile Shading(三)
7. Metal框架詳細(xì)解析(七) —— 關(guān)于GPU Family 4之關(guān)于光柵順序組(四)
8. Metal框架詳細(xì)解析(八) —— 關(guān)于GPU Family 4之關(guān)于增強(qiáng)的MSAA和Imageblock采樣覆蓋控制(五)

About Threadgroup Sharing - 關(guān)于線程組共享

了解增強(qiáng)的內(nèi)存模型,該模型允許在線程之間靈活高效地共享數(shù)據(jù)。


Overview - 概覽

A11上的Metal 2引入了一種新的內(nèi)存模型,它采用并擴(kuò)展了C ++ 11一致性模型。 此模型具有新功能,允許線程組和線程組內(nèi)的線程使用原子操作或內(nèi)存柵欄相互通信,而不是昂貴的barriers

線程組需要通信的一個(gè)示例是一個(gè)對(duì)浮點(diǎn)數(shù)組合求和的內(nèi)核,如圖1所示。傳統(tǒng)上,您可以使用計(jì)算每個(gè)線程組的值總和的內(nèi)核實(shí)現(xiàn)此求和,并將這些值寫入中間緩沖區(qū)。 因?yàn)檫@些線程組無法通信,所以您需要調(diào)度第二個(gè)內(nèi)核來計(jì)算中間緩沖區(qū)值的最終總和。

因?yàn)閱?dòng)每個(gè)內(nèi)核需要成本,所以這種方法可能效率不高。 此外,由于第二個(gè)內(nèi)核使用單個(gè)線程組,因此可能無法完全利用圖形處理單元(GPU)。

Figure 1 Using two kernels to sum an array of floats

通過線程組共享,一個(gè)內(nèi)核和一個(gè)dispatch可以對(duì)輸入數(shù)組中的每個(gè)元素求和。 您可以使用原子操作來計(jì)算已完成的線程組的數(shù)量。 當(dāng)所有線程組完成后,最后一個(gè)執(zhí)行線程組可以計(jì)算最終的總和,如圖2所示。

Figure 2 Using one kernel to sum an array of floats

A11上的Metal 2引入了原子函數(shù),允許對(duì)內(nèi)存位置進(jìn)行互斥訪問,并允許您指定在線程組內(nèi)或線程組之間的線程之間如何同步內(nèi)存。 您可以為每個(gè)原子操作指定內(nèi)存順序和內(nèi)存范圍。

內(nèi)存順序用于指定圍繞同步操作如何排序內(nèi)存操作。 內(nèi)存順序可以放寬 - 這是最快的模式,并提供僅對(duì)原子操作進(jìn)行獨(dú)占訪問的保證。 如果需要在線程之間同步數(shù)據(jù),請(qǐng)使用acquire-release內(nèi)存順序。 在此模式下,寫入內(nèi)存的線程執(zhí)行釋放以允許線程獲取相同的內(nèi)存并讀取最新數(shù)據(jù)。

內(nèi)存范圍基于GPU內(nèi)存層次結(jié)構(gòu),并指定是否需要在SIMD組,線程組或設(shè)備中的線程之間同步原子操作。

后記

本篇主要講述了線程組共享,感興趣的給個(gè)贊或者關(guān)注~~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容