作者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/cn.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