[导读]在先前文章《近距离看GPU计算(2)》中,我们谈到现代GPU发展出SIMT(SingleInstructionMultipleThread)的执行结构,硬件线程池的线程们有相对独立的运行上下文,以Warp为单位分发到一组处理单元按SIMD的模式运行。这些Warp内的线程共享同样的...
在先前文章《近距离看GPU计算(2)》中,我们谈到现代GPU发展出SIMT(Single Instruction Multiple Thread)的执行结构,硬件线程池的线程们有相对独立的运行上下文,以Warp为单位分发到一组处理单元按SIMD的模式运行。这些Warp内的线程共享同样的PC,以锁步的方式执行指令,但是每个线程又可以有自己的执行分支。很自然衍生的一个问题就是现代GPU如何有效的处理Branch Divergence(分支分歧)?一方面为适应复杂图形渲染以及通用计算的要求,GPU编程语言像其它高级语言一样需要支持各种各样的流控制(Flow Control)指令,比如if\switch\do\for\while等等,这些指令都会导致分支分歧。另一方面GPU并行计算的特点要求所有处理单元整齐划一地执行相同指令,才能够取得性能最大化。如何较好地解决这两种不同要求导致的冲突,一直是GPU研究中的热点难点问题。在这里笔者没有能力深入探讨,只是浅尝辄止做一般介绍,主要求这个系列内容完整,不足甚至谬误之处,请各位看官不吝指正。一,分支分歧对性能的影响这一节我们首先来讨论下分支分歧对GPU性能的影响。以如下if\else代码为例,我们看下GPU一般是如何来处理分支分歧的?if (cond) {...} else {...}假设一个Warp中有16个线程判断条件为真,另外16个线程条件为假,所以一半线程会执行if中的语句,另一半线程执行else中的语句。这看起来像个悖论,我们知道Warp中的线程同一时刻只能执行相同的指令。实际上遇到分支分歧时GPU会顺序执行每个分支路径,而禁用不在此路径上的线程,直到所有有线程使能的分支路径都走完,线程再重新汇合到同一执行路径。如下图所示,每个分支都有些线程不干活或者干无用功,Warp实际上需要执行的指令数目大增。假设每个分支任务量大致相同,分支分歧造成的性能损失少则原先的一半,最坏的情况如果每个线程执行分支都不一致,性能下降为最高时候的1/32。所以无论在设计算法还是分配处理数据的时候,我们都要小心尽量避免同一个Warp内线程出现分支分歧的状况,在遇到流控制指令的时候,最好能够选择同样的路径。二,如何实现Reconvergence
上一节我们讲了Warp的线程产生了分支分歧之后,为求性能最佳,不可能让它们一直放任自流,最终还是要尽可能在合适时机把它们重新汇合(Reconverge)起来。但这一切是如何实现的呢?按照参考1的说法,“The SM uses a branch synchronization stack to manage independent threads that diverge and converge” 。下面根据可接触到的文献我们看看大概是如何实现的,不一定跟GPU产商的实际做法一致。我们称这个Warp运行时栈为SIMT Stack,每个Warp拥有一个SIMT栈用于处理SIMT执行模式中的分支分歧。首先我们需要先确定分支分歧的最近重汇合点(Reconvergence Point),一般可以选用造成分支分歧节点的直接后序支配节点(Immediate post-dominator,若控制流图的节点n 到终结节点的每一条路径均要经过节点d,则称节点d后序支配节点n,如d与n之间没有任何其他节点后序支配n,则称节点d直接后序支配节点n),这可以通过编译时的控制流分析得到。如下图所示,左边是我们假想的一段GPU伪代码,右边是对应的控制流图,我们假设SIMD通道的数目是4,每个节点边上的掩码数字代表通道上线程在该节点基本块有没有使能。SIMT栈结构每个条目由执行指令PC、分支重汇合PC(RPC)和使能线程掩码三部分组成。下图反映了执行流从节点B分支分歧到节点E重新汇合时SIMT栈的更新过程。执行的时候,遇到流控制指令,我们将各个分支依次入栈,栈顶条目的PC会被送到取指单元开始相应分支路径的处理,只有条目掩码中使能的线程会处于活跃状态,当下一条PC等于栈顶条目RPC的时候,说明该分支已经到了汇合点,栈顶条目会被弹出,开始下一分支的处理以至所有执行线程汇合并共同执行接下来的指令。值得注意的是真实环境下GPU都设计有一些特殊指令来维护SIMT栈。下图表示上面代码在时间轴上的执行过程,实心箭头表示对应线程在该执行节点处于活跃状态,反之空心箭头代表不活跃状态。基于SIMT栈的Reconvergence方案并不完美,其中一个很大的问题是Warp内线程细粒度同步的时候很容易引发死锁。按照Nvidia的说法,"algorithms requiring fine-grained
sharing of data guarded by locks or mutexes can easily lead to deadlock,
depending on which warp the contending threads come from."。以下面代码为例,某幸运线程拿到锁之后,在最近重汇合点C等着与大部队接头,不幸的是它无法执行下面的Exch指令以释放锁,导致其它线程只能在B处空转,形成死锁。从更高的层次上理解,分支分歧导致的顺序执行只发生在Warp内的线程,Warp之间却相互不受干扰,这种不一致的处理方式对算法移植的适应性还是可预测性都会带来影响。Nvidia从Volta GPU开始做出了改进,提出了"Independent Thread Scheduling"的方法,使得所有线程无关所在Warp可以具有同样并发执行能力,为此相比之前的GPU其Warp内所有线程共享PC以及运行栈,Volta GPU的线程都分别有各自的PC和运行栈,如下图所示。如此针对同样的GPU程序以及分支分歧,Volta与之前的GPU相比有截然不同的调度行为。我们注意到在Volta中所有的Warp线程并没有一起强制汇合执行Z基本块,主要考虑到Z可能作为生产者需要提供其它执行分支依赖的的数据。回到我们先前死锁的例子,在Volta中这个死锁便可迎刃而解。如果我们明显了解相关分支不存在同步行为,为优化性能计,CUDA提供了 __syncwarp() 函数以便强制汇合。主要参考资料:NVIDIA Tesla: A Unified Graphics and Computing Architecture
- Dynamic Warp Formation and Scheduling for Efficient GPU Control Flow
- https://developer.nvidia.com/blog/inside-volta/
- General-Purpose Graphics Processor Architectures
~~~~~~~~~~~~~~~~~~~~~~~~~~~~如果觉着内容有帮助,请帮忙关注、点赞、在看并分享给更多的朋友。谢谢!
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
当地时间 3 月 30 日消息,法国大模型厂商 Mistral AI 完成首轮债务融资,总额达8.3 亿美元,资金将全部用于扩建 AI 算力基础设施,核心用途为采购英伟达 GPU。
关键字:
AI
Mistral
英伟达
GPU
面向所有热爱硬核技术的你:这一次,用代码说话,用性能封神。 北京2026年3月25日 /美通社/ -- 在 DeepSeek-R1 和 Kimi K2.5 等顶级开源模型确立了万亿参数的工业基准后,真正的极限性能压榨才...
关键字:
AMD
EPS
PSE
GPU
March 18, 2026 ---- 根据TrendForce集邦咨询最新AI Server研究,在大型云端服务供应商(CSP)加大自研芯片力道的情况下,NVIDIA(英伟达)在GTC 2026大会改为着重各领域的AI...
关键字:
ASIC
GPU
CPU
Nscale收购Monarch计算园区——美国首个获州认证的AI微电网,现场供电能力最高可扩展至8吉瓦以上 Nscale与Microsoft签署意向书,提供高达1....
关键字:
NVIDIA
MICROSOFT
GPU
TE
加州圣荷西2026年3月17日 /美通社/ -- 全球高效能、节能服务器解决方案领导厂商,神达控股股份有限公司(股票代号:3706)旗下子公司神雲科技股份有限公司(MiTAC Computing Technology C...
关键字:
NVIDIA
TC
AI
GPU
加利福尼亚州圣何塞 —— GTC —— 太平洋时间 2026 年 3 月 16 日 —— NVIDIA 今日宣布,正与包括 Cadence、达索系统、PTC、西门子和新思科技等在内的全球领先工业软件厂商合作,将 NVID...
关键字:
GPU
AI
数字孪生
上海2026年3月12日 /美通社/ -- 继3月5日在硅谷成功举办全球品牌发布会后,图灵进化携其AI全栈解决方案首次亮相中国家电及消费电子博览会(AWE 2026)。 在展会上,图灵进化展示了覆盖AI算力、存储、...
关键字:
芯片
GPU
PS
全栈
芯原成熟的GPU、显示处理与畸变矫正IP三者协同,支持AR显示处理实现高度集成与低时延
关键字:
AR显示
处理器
GPU
Feb. 25, 2026 ---- 根据TrendForce集邦咨询最新AI server产业研究,为加速AI应用导入与升级,全球云端服务供应商(CSP)持续加强投资AI server及相关基础建设,预计2026年八大...
关键字:
AI
ASIC
GPU
Feb. 13, 2026 ---- 根据TrendForce集邦咨询最新HBM产业研究,随着AI基础建设扩张,对应的GPU需求也不断成长,预期NVIDIA(英伟达) Rubin平台量产后,将带动HBM4需求。目前三大存...
关键字:
HBM4
AI
GPU
Feb. 10, 2026 ---- 根据TrendForce集邦咨询最新高速互连市场研究,为应对AI所需的庞大运算需求,Google(谷歌)新世代Ironwood机柜系统结合3D Torus网络拓扑、Apollo OC...
关键字:
AI
数据中心
GPU
1月27日消息,国产GPU迎来了重磅更新,这家名叫天数智芯的公司发布的四代架构路线图显示,明年超英伟达Rubin架构。
关键字:
GPU
5nm
上海2026年1月22日 /美通社/ -- 以下报道来自海峡导报: 2025年末,随着摩尔线程、沐曦股份在科创板上市后股价表现强劲,及2026年初壁仞科技成功登陆港股,国产高端GPU领军企业集群加速对接资本市场。如今,...
关键字:
GPU
IP
进程
BSP
1月21日消息,被称为国产GPU第一股的摩尔线程今晚发布了2025年报预告,营收14.5亿元到15.2亿元,同比增长230.70%到246.67%,但依然亏损9.5亿元到10.6亿元。
关键字:
GPU
5nm
1月20日消息,最近,基于兆芯开胜KH-40000 32核心处理器打造的高性能服务器产品,成功落地南非塞拉利昂宝石矿区预测系统,为矿产资源勘探提供核心算力支撑。
关键字:
CPU
GPU
上海2026年1月2日 /美通社/ -- 北京时间2026年1月2日,启明创投投资企业、国产GPU领军企业壁仞科技成功登陆港交所,成为2026年港股首家上市企业。壁仞科技(06082.HK)发行价为19.6港元/股,开盘...
关键字:
GPU
AI
芯片
智能计算
1月6日消息,在“全球最快游戏CPU”这个头衔上,现在的AMD不可能让步。
关键字:
CPU
GPU
随着GPU功耗的持续攀升,AI服务器环境中的供电需求不断增长,本文围绕此趋势展开讨论。文中重点阐述了供电架构从48V向800V的转型变化,并探讨了随着数据中心基础设施的演进,ADI在高压热插拔保护领域的持续创新成果。
关键字:
热插拔保护
GPU
AI服务器