日韩性视频-久久久蜜桃-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线程层次以及关于设置线程数的思考的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 99精品欧美一区二区 | 日日爱666 | аⅴ资源天堂资源库在线 | 五十路熟母 | 成人深夜免费视频 | 天天躁夜夜躁av天天爽 | 一区二区三区视频网站 | 一区二区三区偷拍 | 黄色污小说 | 男生插女生网站 | 99亚洲视频 | 欧美精品二区三区四区免费看视频 | 欧美日韩视频一区二区 | 98久久久| 日韩av电影网 | 91成人天堂久久成人 | 中文字幕亚洲无线码在线一区 | 波多野结衣视频免费看 | 美女屁股网站 | 一区二区三区四区精品 | 夜夜操网站 | 国产精品无码一区二区桃花视频 | 国产精品久久久久久久久久久久午夜片 | 黄av在线 | 成人综合网站 | 黄色免费一级视频 | 国产成人观看 | 国产特黄级aaaaa片免 | 成人免费视频国产 | 亚洲欧美日韩一区在线观看 | 91久久精 | 日本人体视频 | 影音先锋成人资源网 | 69久久精品| 日本高清视频www夜色资源 | av在线免费观看网址 | 久久鲁视频 | 亚州成人 | www.色偷偷| 久久精品欧美日韩 | 涩涩视频免费在线观看 | 狠狠鲁狠狠干 | 污污视频在线观看网站 | 午夜精品极品粉嫩国产尤物 | 51久久久| 一区二区三区亚洲精品 | www色天使| 午夜日韩欧美 | 国产99久久久久久免费看 | 精品人妻无码一区二区三区蜜桃一 | 91精品人妻一区二区三区蜜桃2 | 男人的天堂在线观看av | 国内精品人妻无码久久久影院蜜桃 | 久久精品久久精品久久精品 | 成人丁香婷婷 | 亚洲 欧美 国产 另类 | 黑人巨大精品 | 亚洲福利在线观看 | 日本xxxx免费 | 国产又黄又粗又爽 | 色婷婷中文字幕 | 欧美性受xxx | 欧美日韩第一页 | 天天干天天日 | 亚洲精品网站在线观看 | 精品国产91久久久久久久妲己 | 日韩免费高清视频网站 | 日韩视频不卡 | 在线综合av | 欧美在线另类 | 男女av在线| 91黄色视屏 | 日本3p视频 | 国产xxxx孕妇 | 丝袜淫脚| 在线视频在线观看 | 成人激情免费 | www黄色片网站 | 美女福利在线 | 91精品国产欧美一区二区成人 | 免费在线播放毛片 | 国产视频1 | 殴美一级黄色片 | 欧美性生话 | 白石茉莉奈番号 | 黄色免费网站视频 | 国产精华7777777 | 99久久精品日本一区二区免费 | 久久中文字幕无码 | 先锋影音av在线 | 自拍日韩亚洲一区在线 | 日本一区二区三区四区视频 | 国产草草| 日本高清黄色电影 | 999精品 | 国产女优在线播放 | 国产黄在线播放 | 亚洲欧美日韩一区二区三区在线观看 | 欧美黄色录像带 |