kepler架构GPU新特性--HyperQ
对于Kepler架构GPU的新特性——HyperQ,往上的讨论贴子还是比较少的,官方文档中也只是有一个sample,给出了代码,但对于有些情况下,HyperQ不能成功的原因没有过多的涉及,我们今天就来谈一谈。HyperQ允许多个CPU线程或进程同时向一个GPU发射任务,提高了GPU的使用率。
我们来看一个例子:
1
2
3
4
5
6
|
for ( int i = 0; i < 3; i++)
{
A<<<gdim, bdim, smem, streams[i]>>>();
B<<<gdim, bdim, smem, streams[i]>>>();
C<<<gdim, bdim, smem, streams[i]>>>();
}
|
如果是在Fermi架构上运行上述代码,每一个流的三个Kernel函数会串行执行,它们有各自的任务队列,根据流的特性,只有A1 C0和A2 C1会具有并行性,如下图:
我们再来看一个开发包自带的例子:
1
2
3
4
5
6
7
|
for ( int i = 0; i < nstreams; ++i)
{
kernel_A<<<1, 1, 0, streams[i]>>>(&d_a[2 * i], time_clocks);
total_chocks += time_clocks;
kernel_B<<<1, 1, 0, streams[i]>>>(&d_a[2 * i + 1], time_clocks);
total_clocks += time_clocks;
}
|
下图是在Fermi架构的时序图:
而在具有HyperQ特性的Kepler架构的GPU上,时序图是这样子的:
可见,HyperQ特性将同时执行所有流的Kernel函数。
下面我们来讨论两个问题:
1. HyperQ和流的关系:
HyperQ和流的区别。我们看到上边的例子都有流的参与,流可以实现“数据的传输和kernel函数同步执行”,即传输数据的同时,执行kernel函数;而HyperQ则是更高大上的实现了kernel同时执行。如果程序的函数执行时间远远大于数据的传输时间,那么HyperQ就减少了很多很多的执行时间。二者实现的功能是不一样的,这对于初次接触HyperQ的小伙伴们是容易迷惑的地方。
2. 只要是Kepler架构的GPU,按照上述例子那样写代码,就一定能实现kernel函数并行吗?
不一定。这句话正确的描述应该是:“只要是Kepler架构的GPU就可以支持HyperQ特性,而HyperQ能不能达到使kernel函数并行的目的是不一定的,要看GPU的资源状况”。什么意思?就是说:如果GPU还有资源,包括显存、空闲的SMX等,那么是可以并行的,如果一个kernel已经让GPU满载运作了,还怎么加入第二个kernel,更不用说多个并行了。有兴趣的小伙伴们可以自行将CUDA中HyperQ的例子使用的资源量加大,在观察时序图。因此,任何高大上的新特性,都是有使用前提的,不能一味的盲目使用。
上述两点就是本人使用HyperQ的心得,如果在资源允许、GPU没有满载的情况下,HyperQ还是一个很好的特性,减少了程序运行时间;但如果kernel函数的任务量很繁重,那么HyperQ就体现不出kernel并行的特点了,实际执行还是串行的。大家也来谈谈你们使用HyperQ时遇到的问题吧~
kepler架构GPU新特性--HyperQ相关推荐
- 超融合基础架构HCI新特性
重复数据删除和压缩: 重复数据擦除支持REFS格式(原来仅支持NTFS),通过重擦和压缩,SDS可以获得高达10倍的空间使用,Windows Admin Center一键式启用,多线程处理体系结构最大 ...
- Docker跨平台架构的新特性buildx的启用方式
Docker在19.03引入了一个新的特性,使得Docker可以构建不同CPU体系结构的镜像,比如ARM镜像,这是不必引入模拟器的情况下,Docker自身所提供的原生统一构建机制,但是使用时需要进行设 ...
- 老黄投下新核弹:英伟达十年力作图灵架构,新GPU支持光线追踪
夏乙 发自 凹非寺 量子位 出品 | 公众号 QbitAI "买得越多,省得越多." 今天早上,英伟达CEO黄仁勋,在温哥华的SIGGRAPH会议上,又喊出了他的GPU发布宣言,扔 ...
- oracle 12c dg新特性,oracle 12c:新特性-网格(Grid)基础架构的增强
oracle 12c:新特性-网格(Grid)基础架构的增强,传统标准集群和Flex集群. Flex 集群 Oracle 12c 在集群安装时支持两类配置:传统标准集群和Flex集群.在一个传统标准集 ...
- Intel Skylake (Server) 架构/微架构/流水线 (2) - 体系结构新特性
Intel Skylake Server微架构引入了如下的新特性(某些特性可能不是全系处理器标配),允许程序员为应用程序优化性能和能耗. 处理器核基于Intel Skylake Server微架构,这 ...
- 不停歇的Java即将发布JDK16新特性速览及从菜鸟到架构师[图]
一.不停歇的Java即将发布JDK16新特性速览 当开发者深陷Java8版本之际,这边下一版本Java16有了最新的消息,与Java15一样,作为短期版本,Oracle仅提供6个月的支持. 根据发布计 ...
- hadoop3.0新特性介绍
hadoop3.0新特性介绍 1. 基于jdk1.8(最低版本要求) 2. mr采用基于内存的计算,提升性能(快spark 10倍) 3. hdfs 通过最近black块计算,加快数据获取速度(块大小 ...
- 如何利用 NVIDIA 安培架构 GPU 的新一代 Tensor Core 对计算进行极致加速
时隔三年,英伟达最强芯片 Tesla V100 终于有了继任者,那就是在2020年5月14日, NVIDIA发布的最新GPU A100. GPU A100不仅能实现 1-50 倍的扩展,还让其吞吐性能 ...
- AI算力霸主诞生!英伟达发布首款安培架构GPU,性能提升20倍
来源:雷锋网 由于疫情缘故,本该在今年3月英伟达(NVIDIA)GTC 2020上发布的安培(Ampere)架构曝光多次却一直未发布. 5月15日,英伟达CEO黄仁勋发布了英伟达新一代GPU架构安培, ...
最新文章
- DOCX file format element list
- JAVA进阶day07JNI(java调用c)A部分
- TeXmacs - 所见即所得 - 专业排版软件
- 继Nat Friedman离开Github之后,Xamarin联合创始人离开微软
- TIOBE 12 月编程语言排行榜:争夺年度编程语言,Java、C、Python、C# 即将开战!...
- L3-029 还原文件 (30 分)-PAT 团体程序设计天梯赛 GPLT
- 解决JSP路径问题的方法(jsp文件开头path, basePath作用)
- Firefox扩展推荐
- linux和windows php pdf转图片,扩展安装imagick和ImageMagick
- 好书推荐之周立功《抽象接口技术和组件开发规范及其思想》
- 鼠标单击双击事件监听
- Tmux_Hotkey
- Vue template挂载中el和mouted的使用和区别
- 计算机开不了机反复重启,电脑一直重启就是开不了机怎么样解决
- Unity3D 2D游戏摄像机的跟随实现
- 【Arduino学习笔记】使用L298N电机驱动模块驱动直流电机
- [转]普通软件项目开发过程规范(五)—— 总结
- 如何从0快速上线一个网站---详细
- 如何使用开源搜索引擎制作属于自己的个人网络?
- 小孩子竟然也会得抑郁症,孩子得抑郁症怎么办?