GPU中的SM和warp的关系
生活随笔
收集整理的這篇文章主要介紹了
GPU中的SM和warp的关系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹
我們在cpu上做好了準備工作,然后將指令發送給GPU, 在這里我們看到grid為10,block為128,也就說有10個block,每一block有128個thread,
如何分配這些block?
原則
- 在GPU中一個block是不能拆分到兩個SM中
- 一個SM中的block要滿足SM的條件限制
SM有哪些限制?
簡單有這些,當然還有其他的沒有展示,這里數值都是我瞎編的,具體的可以去官網文檔查看參數:
一個block需要哪些資源?
一個SM能給的資源如上,那么一個block需要哪些資源呢?簡單如下:
分配結果如下:
可以看到還有4個block沒地方擱,不用擔心,中間的調度器會一直輪詢所有SM的,只要有空閑的位置就會將還沒安排的block安排上去。
block里面所有線程都是同時執行嗎?
在SM中,block繼續分割為warp.一個warp為32個thread,共用一套指令,至于為啥是32,這和硬件有關系,比如人家卡里就32個cuda core,那可不是一次就只能執行1個warp(32個線程)。
warp如何執行?
好了,到現在為止warp也切割好了,具體執行方式如下:
這個就不詳細解釋了,跟CPU調度類似,就是你io耽誤了,其他的任務上,你IO結束了,你在繼續占有計算資源。
總結
以上是生活随笔為你收集整理的GPU中的SM和warp的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高级编程技术 课后作业十三(第8周第2次
- 下一篇: 共话新科技新商业,2017全球虚拟现实产