日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解CUDA线程层次以及关于设置线程数的思考

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解CUDA线程层次以及关于设置线程数的思考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深入理解CUDA線程層次以及關于設置線程數的思考

215人閱讀 評論(0) 收藏 舉報 分類: cuda(24) GPU線程以網格(grid)的方式組織,而每個網格中又包含若干個線程塊,在G80/GT200系列中,每一個線程塊最多可包含512個線程,Fermi架構中每個線程塊支持高達1536個線程。同一線程塊中的眾多線程擁有相同的指令地址,不僅能夠并行執(zhí)行,而且能夠通過共享存儲器(Shared memory)和柵欄(barrier)實現塊內通信。這樣,同一網格內的不同塊之間存在不需要通信的粗粒度并行,而一個塊內的線程之間又形成了允許通信的細粒度并行。這些就是CUDA的關鍵特性:線程按照粗粒度的線程塊和細粒度的線程兩個層次進行組織、在細粒度并行的層次通過共享存儲器和柵欄同步實現通信,這就是CUDA的雙層線程模型。
? ? ? ?在執(zhí)行時,GPU的任務分配單元(global block scheduler)將網格分配到GPU芯片上。啟動CUDA 內核時,需要將網格信息從CPU傳輸到GPU。任務分配單元根據這些信息將塊分配到SM上。任務分配單元使用的是輪詢策略:輪詢查看SM是否還有足夠的資源來執(zhí)行新的塊,如果有則給SM分配一個新的塊,如果沒有則查看下一個SM。決定能否分配的因素有:每個塊使用的共享存儲器數量,每個塊使用的寄存器數量,以及其它的一些限制條件。任務分配單元在SM的任務分配中保持平衡,但是程序員可以通過更改塊內線程數,每個線程使用的寄存器數和共享存儲器數來隱式的控制,從而保證SM之間的任務均衡。任務以這種方式劃分能夠使程序獲得了可擴展性:由于每個子問題都能在任意一個SM上運行,CUDA程序在核心數量不同的處理器上都能正常運行,這樣就隱藏了硬件差異。
? ? ? ?對于程序員來說,他們需要將任務劃分為互不相干的粗粒度子問題(最好是易并行計算),再將每個子問題劃分為能夠使用線程處理的問題。同一線程塊中的線程開始于相同的指令地址,理論上能夠以不同的分支執(zhí)行。但實際上,在塊內的分支因為SM構架的原因被大大限制了。內核函數實質上是以塊為單位執(zhí)行的。同一線程塊中的線程需要SM中的共享存儲器共享數據,因此它們必須在同一個SM中發(fā)射。線程塊中的每一個線程被發(fā)射到一個SP上。任務分配單元可以為每個SM分配最多8個塊。而SM中的線程調度單元又將分配到的塊進行細分,將其中的線程組織成更小的結構,稱為線程束(warp)。在CUDA中,warp對程序員來說是透明的,它的大小可能會隨著硬件的發(fā)展發(fā)生變化,在當前版本的CUDA中,每個warp是由32個線程組成的。SM中一條指令的延遲最小為4個指令周期。8個SP采用了發(fā)射一次指令,執(zhí)行4次的流水線結構。所以由32個線程組成的Warp是CUDA程序執(zhí)行的最小單位,并且同一個warp是嚴格串行的,因此在warp內是無須同步的。在一個SM中可能同時有來自不同塊的warp。當一個塊中的warp在進行訪存或者同步等高延遲操作時,另一個塊可以占用SM中的計算資源。這樣,在SM內就實現了簡單的亂序執(zhí)行。不同塊之間的執(zhí)行沒有順序,完全并行。無論是在一次只能處理一個線程塊的GPU上,還是在一次能處理數十乃至上百個線程塊的GPU上,這一模型都能很好的適用。

? ? ? ?目前,某一時刻只能有一個內核函數正在執(zhí)行,但是在Fermi架構中,這一限制已被解除。如果在一個內核訪問數據時,另一個內核能夠進行計算,則可以有效的提高設備的利用率。

? ? ? ?每一個塊內線程數應該首先是32的倍數,因為這樣的話可以適應每一個warp包含32個線程的要求,每一個warp中串行執(zhí)行,這就要求每一個線程中不可以有過多的循環(huán)或者需要的資源過多。但是每一個塊中如果線程數過多,可能由于線程中參數過多帶來存儲器要求過大,從而使SM處理的效率更低。所以,在函數不是很復雜的情況下,可以適當的增加線程數目,線程中不要加入循環(huán)。在函數比較復雜的情況下,每一個塊中分配32或是64個線程比較合適。每一個SM同時處理一個塊,只有在粗粒度層面上以及細粒度層面上均達到平衡,才能使得GPU的利用到達最大。我用的顯卡為GeForce GTX560 Ti,每一個網格中允許的最大塊數位65535個,而每個塊中的線程數為1024個,所以說粗粒度平衡對于我來說影響比較小,就細粒度來說,每一個塊中的線程數以及每一個線程中的循環(huán)就變得至關重要了。

總結

以上是生活随笔為你收集整理的深入理解CUDA线程层次以及关于设置线程数的思考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲免费色视频 | 亚洲成人v | 99热com| 成人超碰| 一级做a爰| 四虎在线视频 | 亚洲av区无码字幕中文色 | va视频在线观看 | 免费中文字幕日韩欧美 | 嫩草在线观看 | 成人精品一区二区三区电影 | 欧美黑人一区 | 欧美做受| 理论片大全免费理伦片 | 一级黄色视 | 亚洲视频在线免费 | 国产女主播在线播放 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 印度午夜性春猛xxx交 | 五月婷婷激情视频 | 久久久一二三四 | 国产网站视频 | 亚洲第一网站 | 性欧美一区 | 日韩麻豆 | 成a人v| 99看片 | 草视频在线观看 | 美女黄色真播 | 亚洲网站免费看 | 97超视频在线观看 | 亚洲视频手机在线观看 | 欧洲成人免费视频 | 天天插夜夜操 | 国产乱子轮xxx农村 岛国久久久 | 国产黄在线观看 | 日日色av| 午夜激情免费视频 | 巨胸爆乳美女露双奶头挤奶 | 18禁裸乳无遮挡啪啪无码免费 | 播色网| 91午夜交换视频 | 污网站在线免费 | 男男一级淫片免费播放 | 无码人妻精品丰满熟人区 | 国产一级黄色电影 | 欧美一区二区在线免费观看 | 成人久草 | 日本老小玩hd老少配 | cao死你 | 欧美激情一区在线 | www.久久久| 国产日韩精品一区二区 | 成人精品久久久 | 嫩草视频在线免费观看 | 男人天堂v| 久久久久久午夜 | 亚洲国产欧美日韩 | 久久精品无码一区二区三区 | 大地资源二中文在线影视观看 | av资源中文在线 | 永久久久久久 | 日产久久久久久 | 久久精品国产视频 | 美女扒开尿口让男人爽 | 超碰在线天天 | 捆绑无遮挡打光屁股调教女仆 | 日本无遮羞调教打屁股网站 | 插女生下面| 欧美在线小视频 | 白石茉莉奈番号 | 欧美国产免费 | 羞羞成人| а天堂中文在线官网 | 小萝莉末成年一区二区 | 亚洲自拍偷拍一区二区三区 | 美女视频一区二区 | 香港一级淫片免费放 | 欧美高h | 久久都是精品 | 欧美偷拍视频 | 超碰cc| 97精品熟女少妇一区二区三区 | 医生强烈淫药h调教小说视频 | 嫩草视频免费观看 | 欧美一区二区三区激情啪啪 | 视频在线观看一区 | 成年人视频在线免费观看 | 最近中文字幕在线免费观看 | 精品人妻一区二区三区久久 | 国产精品91在线 | 999久久久免费精品国产 | 李华月全部毛片 | 96在线观看| 亚洲天堂五月 | 黄黄视频在线观看 | 国产日韩在线看 | 激情999| 日本三级韩国三级美三级91 |