[問題] CUDA 使用stream後的thread block分配
各位好 目前在學習stream與SM內的thread block分配關係
使用的工具是GPGPU-Sim
目前手邊只有一支使用stream的範例
是CUDA SDK附的範例 "concurrentKernels"
範例完整程式碼網址↓
https://goo.gl/LcgfPV
其實我主要想問的是 如何將多個kernel 放到同個SM執行
請各位前輩指教~
------------------以下原文------------------
以下是我的一些觀察:
1.
這個範例有八個同樣的kernel 每個kernel各一個block
每個kernel放進一個stream丟到device執行
根據輸出的訊息 每個SM負責一個kernel的一個thread block
所以總共八個SM在動作
2.
後來我把每個kernel改成兩個block 也是放進不同的stream
變成兩個SM負責一個kernel
各分配一個thread block
3.
再來我把兩個kernel放進同個stream 每個kernel一個block
原本預想兩個block都會分到同個SM
不過看輸出好像變成序列執行 也就是執行完kernel 1 後才執行kernel 2
目前對於stream的概念還不太熟悉
請問該如何達到多個kernel的block在同個SM中執行呢?
這在cuda有辦法完成嗎 還是說必須要改模擬器?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.118.155.204
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1492682442.A.4EE.html
→
04/22 02:12, , 1F
04/22 02:12, 1F
→
04/22 02:12, , 2F
04/22 02:12, 2F
→
04/22 18:40, , 3F
04/22 18:40, 3F
→
04/22 18:40, , 4F
04/22 18:40, 4F
※ 編輯: v00623 (175.183.71.1), 04/23/2017 14:12:30
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章