●强大的线程调度能力
关于线程的调度问题,我们首先需要了解一些G80以来CUDA架构的线程关系。
线程结构:CUDA将计算任务映射为大量的可以并行执行的线程,并且硬件动态调度和执行这些线程。Kernel以线程网格(Grid)的形式组织,每个线程网格由若干个线程块(block)组成,每个线程块又由若干个线程(thread)组成。实质上,kernel是以block为单位执行的,CUDA引入Grid只是用来表示一系列可以被并行执行的block的集合。各block是并行执行的,block间无法通信,也没有执行顺序。目前一个kernel函数中有一个grid,而未来支持DX11的硬件采用了MIMD(多指令多数据)架构,允许在一个kernel中存在多个不同的grid。
线程、线程块和执行内核的关系
Block:CUDA中的kernel函数实质上是以block为单位执行的,同一block中的线程需要共享数据,因此它们必须在同一个SM中发射,而block中的每一个线程(thread)则被发射到一个SP上执行。一个block必须被分配到一个SM中,但是一个SM中同一时刻可以有多个活动线程块(active block)在等待执行,即在一个SM中可以同时存在多个block的上下文。当一个block进行同步或者访问显存等高延迟操作时,另一个block就可以“趁虚而入”,占用GPU资源,最大限度利用SM的运算能力。
arp:在实际运行中,block会被分割为更小的线程束,这就是warp。线程束的大小由硬件的计算能力版本决定。在目前所有的NVIDIA GPU中,一个线程束由连续的32个线程组成。warp中的线程只与thread ID有关,而与block的维度和每一维的尺度没有关系,这种分割方式是由硬件决定的。以GT200的角度来解释,warp中包含32条线程是因为每发射一条warp指令,SM中的8个SP会将这条指令执行4遍。在硬件中实际运行程序时,warp才是真正的执行单位。虽然warp是一个由硬件决定的概念,在抽象的CUDA编程模型中并不存在,但是其影响力绝对不容忽略。
●SM单元的双warp调度能力
Fermi的每一个SM都有两个指令发送单元,可以同时让两个warp相互独立的并发运行。Fermi的Dual warp调度机制可以同时并发调度两个warp的一条指令分别在16个一组的CUDA core上进行计算,或者在16个存/取单元运行,或者4个SFU上运行。Fermi的调度器并不需要在指令流之间进行附属检查。利用如此优美的双发射调度机制,使得Fermi可以让硬件的计算能力达到极致。
在Fermi架构中,非常多的指令可以进行双发射,例如两条整数运算指令,两条浮点数运行指令,或者混合的整数,浮点,存取,和SFU特殊处理指令都可以被并发执行。单精度和双精度的指令一样可以并发执行。
●并行指令更自由
NV不断充实周边资源,使用更激进的架构,而AMD不断扩大流处理器规模,都是为了更好的隐藏延迟。GT200架构已经可以控制SMIT活用跳转来在实现线程在不同的SM单元之间进行跳跃。命令单元为multi-thread模式,能够执行Out-of-Order指令,而当处理warp命令流时则是In-Order,而根据NV架构设计师John Nickolls的介绍,GT200架构实际warp中的线程也能够支持Out-of-Order。
Fermi在每个SM前端都有两个Warp调度器和两个独立分配单元,和SM其它部分完全独立,均可在一个时钟循环里选择发送一半Warp,而且这些线程可以来自不同的Warp。分配单元和执行硬件之间有一个完整的交叉开关(Crossbar),每个单元都可以像SM内的任何单元分配线程(不过存在一些限制)。
作为运算单元的CUDA核心在Fermi的SM每个单元中共2个组,每组16个,SFU有4组,载入/存储单元16个。这4个小组能够各自并行执行不同的Warp不同的指令。由于CUDA核心是16个一组,16线程并列会让物理vector变长。因此2个周期能够以32线程构成的单Warp的一个指令。载入/存储单元也同样如此。SFU因为是4线程并列,因此是以8周期执行1个warp。这样指令单元本身增加到了2个,各个指令单元能够每个周期发出2条指令。可以说Fermi实现的并行化指令自由度更高。
●GigaThread线程调度优化
Fermi架构的另一个重要特性,就是它的双层分布式调度机制。在片上的层面(SPA Streaming Processor Array,流式处理器矩阵级别),全局的分布式线程调度引擎(global work distribution engine)分发block到每一个SM上,在SM层面,每一个warp分布式调度引擎按照32个线程为一个warp执行。
Fermi实现了SM级别的双发射,意味着SPMD(单线程多任务)的实现。从并行kernel下探到最底层,实际上就是靠的SM级别的双发射。SM级别的SPMD上升到GPU核心级别,Fermi就是MPMD(多线程多任务)。这种设计已经越来越像CPU,而且随着GPU的发展,每走一步,就多像一份。
第一代GigaThread线程调度引擎,在G80架构中实现了12288个线程的实时的调度管理。Fermi架构不只是增强了原有的机制,而且引进了更快的context上下文交换机制,并行kernel执行机制,增强了线程block的调度能力。Fermi的这项能力相对于上一代GPU提高了10倍。
同时像CPU一样,GPU也可以利用context上下文交换机制来管理多任务的切换,每一个任务都可以用分时的方式利用处理器的计算资源。Fermi的运算流水线经过优化设计,把context上下文的切换时间减少到了10~20毫秒,极大的优化了上一代的GPU架构。不只是性能的提高,这个设计可以让开发者创建更快的kernel-to-kernel应用程序,例如让程序在图形和PhysX上的应用,图形与物理效果处理之间的运算也将受益于更快的context上下文交换机制。
● 并行执行内核Concurrent Kernel Execution
Fermi支持kernel并发运行,同一应用程序的不同kernel可以同时运行在GPU上。Kernel并发机制可以让应用还曾向执行更多的kernel来发挥GPU的能力。例如,PhysX应用程序需要计算流体和固体,如果是串行执行,只能利用一半的线程处理器。Fermi的架构可以让同一个CUDA context的kernel都同时运行在同一个GPU上,这样可以更有效的利用GPU的资源。不同应用程序context的kernel函数也可以通过更快速的context切换,更快地运行在GPU上。
注:(本章节作者由林光楠和濮元恺合作完成)
- 第1页:NVIDIA首款DX11显卡 GTX480诞生
- 第2页:最强DX11单卡诞生 米人装机要费米
- 第3页:公版GTX480金属质感 全新散热设计
- 第4页:暴力拆解GTX480 展示最真实的它
- 第5页:独立核心散热器 镇压32亿晶体管
- 第6页:6+2相供电 协助GTX480全速运转
- 第7页:亲民型高端作品 GTX470全面解析览
- 第8页:4+1相经济实惠供电组合 助力GTX470
- 第9页:揭开GTX470神秘面纱 探秘物理设计
- 第10页:麻雀小五脏全 GTX470同样5热管
- 第11页:看N卡和A卡高端 了解10.5和9.5故事
- 第12页:GTX480/GTX470身份亮相 蓄势待发
- 第13页:Fermi架构GF100核心 新增强劲神器引擎
- 第14页:可读写缓存引入GPU 计算能力倍增
- 第15页:Fermi架构针对GPU通用计算优化
- 第16页:升级DX11体验HDAO高画质特效
- 第17页:强大性能实现更高反锯齿/阴影效
- 第18页:浮点能力翻4倍 GF100不再仅是显卡
- 第19页:性能测试的硬件、软件平台状况
- 第20页:理论性能测试-3Dmark 06
- 第21页:理论性能测试-3Dmark Vantage
- 第22页:DX9.0c游戏-使命召唤之现代战争2
- 第23页:DX9.0c游戏-求生之路
- 第24页:DX10游戏-英雄连之前线
- 第25页:DX10游戏-孤岛危机
- 第26页:DX10.1游戏-孤岛惊魂2
- 第27页:DX10.1游戏-汤姆克兰西之鹰击长空
- 第28页:DX11游戏-异形大战铁血战士
- 第29页:DX11游戏-战地之叛逆连队2
- 第30页:DX11游戏-科林麦克雷之尘埃2
- 第31页:DX11测试-Heaven Benchmark 1.0
- 第32页:DX11测试-Heaven Benchmark 2.0
- 第33页:DX11游戏-地铁2033
- 第34页:DX11游戏-潜行者之普里皮亚召唤
- 第35页:PhysX游戏-蝙蝠侠之阿卡姆疯人院
- 第36页:PhysX游戏-黑暗虚空
- 第37页:应用测试-系统功耗检测
- 第38页:Tesslation测试-Stone Giant
- 第39页:Tesslation测试-Heaven Benchmark 1.0
- 第40页:视频解析-Tessellation和PhysX
- 第41页:GPU通用计算-Folding@Home
- 第42页:应用测试-产品温度检测
- 第43页:专项PK—GTX480 SLI对决GTX480
- 第44页:专项PK—GTX470 SLI对决GTX470
- 第45页:专项PK—GTX480 SLI对决HD5970
- 第46页:专项PK—GTX480对决GTX470
- 第47页:专项PK—GTX480对决GTX285
- 第48页:专项PK—GTX480对决HD5870
- 第49页:专项PK—GTX470对决HD5850
- 第50页:ZOL独家活动 百片GTX480等你领取