作者v00623 (阿哩他命EX PLUS)
看板C_and_CPP
標題[問題] CUDA Stream, Hyper-Q方法
時間Tue Jun 20 15:07:56 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux GPGPU-Sim
CUDA
問題(Question):
最近在練習stream時看到一個Hyper-Q的東西
官方文件說這個可以讓不同stream中的kernel達到真正的concurrent execution
而這功能是在kepler架構之後才有的
我的問題是在fermi架構下
使用stream的語法不也可以同時把多個kernel放到GPU跑嗎
請問我的理解有錯嗎? 還請各位前輩指導
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.118.155.192
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1497942479.A.D63.html
1F:推 hn12404988: 我之前也思考過類似的問題,我在猜他所指的真正併發 06/20 16:27
2F:→ hn12404988: 是指(一次同時觸發」的意思,因為很多時候的併發是 06/20 16:29
3F:→ hn12404988: 是接二連三出去平行執行,並不是真正的同時觸發 06/20 16:30
那想問一下 假設有兩個kernel 程式有使用stream
在執行時 會兩個一起?
或是先分配一個 等到快結束有空閒的SM時再把另一個kernel分配進去?
還蠻好奇這部分的 不知您知不知道?
4F:推 jun0325: stream是一個software queue的概念 如果你把兩個kernel b 06/20 19:58
5F:→ jun0325: ound在同一個stream 那就會sequential執行 如果在不同str 06/20 19:58
6F:→ jun0325: eam就會用spatial的方式來將兩個kernel 綁到SM上 06/20 19:58
7F:→ jun0325: 建議直接爬gpu-sim怎麼運作的會更清楚 06/20 20:28
恩恩 stream的運作有跑過幾個例子 大概已經瞭解了
模擬器部分還在trace 謝謝回覆
8F:推 hn12404988: 你可能沒抓到我的意思,執行時期當然是同時執行 06/20 20:42
9F:→ hn12404988: 我剛指的是(發射時期),一般人是不需要去要求到 06/20 20:43
10F:→ hn12404988: (同時發射),只需要接二連三發射就可以,差別很小 06/20 20:44
11F:→ hn12404988: 我在猜他所指的(real)是這個意思吧 06/20 20:45
12F:推 hn12404988: 我也有在看官方文件,我有印象看到這段 06/20 20:47
OK 懂你的意思了 謝謝回覆 我再多跑幾個範例試試
※ 編輯: v00623 (114.43.110.210), 06/20/2017 21:54:32