看板 C_and_CPP 關於我們 聯絡資訊
各位好 目前在學習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
opl164: 如果要多個kernel同時執行的話 好像要放到不同的stream才 04/22 02:12
opl164: 行@@ 04/22 02:12
v00623: 恩恩 範例程式就是使用多個stream, 不過我要的是 多個kern 04/22 18:40
v00623: el的block在同個SM執行 04/22 18:40
※ 編輯: v00623 (175.183.71.1), 04/23/2017 14:12:30