[問題] CUDA 使用stream後的thread block分配

看板C_and_CPP (C/C++)作者 (阿哩他命EX PLUS)時間9年前 (2017/04/20 18:00), 9年前編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
各位好 目前在學習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
如果要多個kernel同時執行的話 好像要放到不同的stream才
04/22 02:12, 1F

04/22 02:12, , 2F
行@@
04/22 02:12, 2F

04/22 18:40, , 3F
恩恩 範例程式就是使用多個stream, 不過我要的是 多個kern
04/22 18:40, 3F

04/22 18:40, , 4F
el的block在同個SM執行
04/22 18:40, 4F
※ 編輯: v00623 (175.183.71.1), 04/23/2017 14:12:30
文章代碼(AID): #1O-8RAJk (C_and_CPP)
文章代碼(AID): #1O-8RAJk (C_and_CPP)