前一篇文章欣赏了近代高性能泛用处理器的“巨大存在感”,但在时下一大票人为了“挖矿”疯狂的世界,一说到本应“着毋庸议”的巨无霸芯片,大概也没有比GPU更有“亲切感”的产品了。
更何况苹果M1Max的“空照图”最值得让人多看几眼的特色,莫过于“占地甚广”的32核心GPU功能单元,现在将眼光看向晶粒面积一向大到“理所当然”的高端GPU,顺便也让各位思索一下苹果M1Max的GPU,大致属于怎样的“档次”。
苹果M1Max(面积平方毫米,台积电5纳米制程,亿晶体管)。
但在进入主题之前,先回到年代中后期,个人计算机3D游戏应用刚崛起的古老年代,也请各位先复习一下以往半个多世纪以来的绘图硬件发展史,替后面的故事做好事前功课。
从这张洋洋洒洒的重大里程碑,可清楚看到推动GPU肥大化的主要推手:GPU通用运算(GeneralPurposeGPU,GPGPU)。GPU通用运算大致可分为几个时期:
~年“酝酿期”:微软DirectX8制定的著色器架构模型(ShaderModel),让GPU具备最基础的可程序化能力。
~年“开创期”:微软DirectX10的统一着色器架构(UnifiedShader)强化GPU使用弹性,并以NvidiaG80(Tesla1.0微架构)为起点,GPU走向兼具SIMD与MIMD部分优点的SIMT(SingleInstruction,MultipleThreads)运算架构,如纺纱机千丝万缕的线程“灌入”拆散后的庞大运算单元。
~年“熟成期”:以微软DirectX11为起点,GPU支持IEEE-浮点格式,无论单倍还是双倍精度的浮点乘积和,都成为标准配备,而内存ECC等纠错机制,改善GPU的可靠性,让GPU更接近CPU,也更适合高性能计算(HPC)。~年“实用期”:GPU双雄Nvidia与AMD一同“黏死”台积电28纳米制程很多年,但这段期间CUDA、OpenCL、OpenMP与OpenACC等应用程序接口也逐渐成熟,克服GPU内存容量限制的共享虚拟内存,也在这时萌芽。年开始“迈向人工智能”:为了强化GPU较弱的“推论”与节约内存容量开销,支持FP16Int8等低精度资料格式,“学习”部分也引进GoogleBF16(Bfloat16)与NvidiaTF32(TensorFlow32)等特化资料格式,并扩展专属功能单元与添加专用指令。此外,高端GPU普遍导入带来巨量带宽的HBM2内存,并引进新型总线以便连接多颗GPU,如Nvidia的NVLink和AMD的InfinityFabric。
但万丈高楼平地起,各位读者也能从本系列首篇了解“原来这些芯片一开始也不是这么巨大,甚至还要好几颗才能组成”道理。让我们再次跳上时光机,回到年“还没有GPU”的年代,重温3dfx的崛起与陨落,回首Nvidia的机运与缘起。
在大家只需狂冲像素材质填充率的美好年代
请大家稍微复习一下绘图管线简图。集成几何转换硬件单元GPU之前,仍以游戏为主的消费型3D绘图芯片,规格竞争的重点指标,只有在光栅输出阶段(Rasterization)的像素填充率(PixelFillrate)与材质填充率(TexelFillrate),“将像素/材质处理管线的数量×时脉(或加入会影响实际填充率的内存规格)”就成为唯一的“赛猪公”比较基准。
曾以Voodoo系列在年代中后期独领风骚的3dfx,初代产品Voodoo加速卡(SST1),分别由一颗FrameBuffer处理器(FBI)和一颗材质映射单元(TMU)组成。第二代Voodoo2(SST2)追加第二颗TMU,一个时脉周期可同时搭建两个材质像素(Texel)。除了插件AllianceSemiconductorAT25/AT3D2D芯片的VoodooRush,单芯片方案VoodooBanshee之前,Voodoo系列产品都不具2D绘图能力,需搭配一张独立显卡。
从这里也可了解,因多芯片架构,每颗又都有自己的内存,3dfx产品成本结构极为高昂(各位可以回想一下IBM初代Power和Power2),并不利争取主流市场,也自己搞自家Glide3DAPI,留给Nvidia增长空间,蓄意并购Nvidia最大客户STB断其后路、让自己做显卡导致“球员兼裁判”的错误商业决策,变成压死3dfx的最后一根稻草。
即使到了公司快破产前的末代产品Rampage,也还是坚持多芯片方案,要插件另一颗Sage几何转换处理器。3dfx如意算盘如下:
从下表即可瞬间了解Rampage与Sage的组合,对上NvidiaGeForce恐怕还是凶多吉少,制程比人好,但晶体管多那么多。况且年底,也是3dfx宣布开发Rampage的20年后,《TheLegacyof3dfx》一书作者OscarBarea,测试手上Rampage显卡工程样品,证实性能对上GeForce也占不到任何便宜。
再来瞧瞧这时的Nvidia,在人类第一颗GPUGeForce之前,不知故意还是巧合,所有绘图芯片晶粒面积都统一为90平方毫米(天知道是不是师法追求“简单、迅速、便宜”的Centaur),这也替Nvidia带来很大的成本优势,姑且不论性能如何,一颗小芯片即可取代3dfx的多芯片巨兽,光凭这点就足以保证Nvidia迟早会取代3dfx的龙头地位。
当然被Nvidia并购后,3dfx遗产都默默消失在世界尽头。如同外界盛传的“Sage成为GeForce4(NV25)几何引擎、Rampage转生GeForce(NV40)的PixelShader技术基础”,究竟3dfx有多少“法宝”融入nVidia产品,就只有Nvidia自己知道了。
但3dfx垮台并不代表Nvidia背后就没有追兵:日后被AMD并购的ATi,Radeon家族前身Rage,以Rage系列最具代表性(89平方毫米,万晶体管,纳米制程)。ATi当时普遍定位成“性能比nVidia弱一些,但拿来放视频却是响当当的极品”。ATi摇身一变能与Nvidia分庭抗礼、并值得被AMD巨资买下的最强竞争对手,就是GPU时代初期的故事了。
GPU时代的来临与ATi发动的逆袭
奠定ATi成为GPU巨强基础的关键战役,发生在~年间ATiR全面击溃NvidiaNV30,后者历经多次延误,结果还是打不过半年前就登场的R,还闹出Nvidia为了让NV30的性能“好看一点”,弄出“仅限于GeForceFX系列”的Demo程序,还在驱动程序动手脚,引爆3DMark03作弊疑云,也差点毁掉Nvidia驱动程序稳定度的好口碑。
这场属于ATi的胜利,也确立与Nvidia长期对抗的态势,直到年7月24日,以54亿美元价格被AMD并购为止。
Nvidia会在寄以厚望的NV30重重摔了一跤,原因甚多,但可总结以下几点:
但Nvidia很快亡羊补牢,迅速推出强化版GeForceFX(NV35)和GeForceFX(NV38),设法拉利近与ATi的差距,且年5月4日GeForceUltra(NV40),反过来痛打ATiRadeonXXT(R),夺回领先优势。
然后GPU双雄的高端产品,晶粒面积也稳定增肥,使动辄超过平方毫米成为习以为常的常态,一路到年11月8日的GeForceGTX8(G80)以平方毫米的惊人尺寸,告诉世人GPGPU即将吹响GPU恐龙化的号角。
同场加映另一间错过3D浪潮、试图振衰起蔽的显卡厂商:以MGAMilliennium和Mystique闻名于世的加拿大Matrox,充满传奇色彩的2D王者。
年发布Parhelia系列,账面有极度暴力的规格,采用联电纳米制程,晶体管多达8,万,晶粒面积也是巨大的平方毫米,原引发热烈期待,但性能表现却远远不如预期,不仅明显不如更老旧的NvidiaGeForce4Ti(NV25),只勉强达到ATiRadeon(R)和NvidiaGeForce3(NV20)水准,还不幸直接一头撞上极度强势的ATiRadeonPro(R)。
造成MatroxParhelia失败的可能原因,大体不外乎驱动程序不够成熟(除GPU双雄外所有厂商的共同弱点)、每个像素管线配置四个材质单元适得其反(大部分游戏都用不到)、运行时脉太低(MHz,远不如R的MHz)、欠缺内存带宽节约技术(反观ATi的第三代Hyper-Z与nVidia第二代的LightningMemoryArchitecture)、DirectX只支持到8.1版等等,都断绝Matrox重返荣耀的一切可能,最终只能靠着多重显示输出等特殊功能,站稳一小块利基市场。
MatroxParheliaAGPMB。
打开GPGPU时代的Nvidia
年11月8日,nVidia号称耗费“近5亿美元研发经费”与“4年开发进程”,世界首款对应DirectX10(DirectCompute4.x)统一着色器(UnifiedShader)架构,支持32位元单浮点精确度的GeForce8系列(以G80为首的Tesla1.0微架构),为初代CUDA(ComputeUnifiedDeviceArchitecture,统一计算架构)的载体,堪称是GPU发展史上最大突破,也是Nvidia正式迈入GPGPU的起点。G80还有一个值得大书特书的里程碑:NvidiaGPU的总线纯原生PCIExpress化,甩开AGP过渡期的桥接器,对GPGPU应用也有潜在帮助。
Nvidia并购AEGIA而来的PhysX物理引擎,也顺势成功移植到CUDA,代表G80之后的NvidiaGPU均可让坐在计算机前的人有机会“亲自体验如强烈的爆炸、有交互反应的碎片、逼真的流水,以及栩栩如生的角色等动态”(笔者才疏学浅,实在想不出更生动的描述,就只能原文复制粘贴了)。
NvidiaG80问世之后,GPU定义也调整为“由数个兼备SIMD简易性与MIMD高弹性的单指令多线程(SIMT)”核心,组成的单芯片多处理器,利于密集处理大量先天有高平行度且高度同质性的运算工作。”
SIMT的初衷,不外乎希望程序开发模型维持现有的形式,让SIMD享有接近MIMD的自由度,企图兼具两者优点。以上这段“有字天书”看不懂也没关系,反正只要知道GPU将“捞过界”主宰高性能浮点运算应用需求就够了。
NvidiaGeForceGTX8(面积平方毫米,台积电90纳米制程,6亿8,万晶体管)。
颠覆ATiGPU技术发展方向的AMD并购案
年夏天,AMD以54亿美元价格并购ATi,震动业界,融合CPU与GPU的“Fusion大战略”,也彻底改变绘图技术的长期发展方向,更偏向“运算”而非“游戏”,这到了年才渐渐改变。
7年5月14日,AMD初次对应DirectX10与统一着色器架构的RadeonHD(R,初代VLIW5的TeraScale微架构)首度支持64位元双倍浮点精确度,但性能仅单精确度五分之一。走上“超大+超热+超贵=超生”之路的R家族,也暂时中断AMD“恐龙化”GPU、转向“两颗打一颗”的另类路线,如同年10月,用两颗RagePro组成的RageFuryMAXX。GPU双雄从此分道扬镳。
无独有偶的,此时AMD也是打算在服务器CPU市场,用“双馅水饺”对抗英特尔以排山倒海之势扑来的钟摆巨轮,接着AMD就慢慢沉沦,不管CPU还是GPU,两颗还是打不赢人家一颗,还出现高端产品赢不了对方中端的惨况,陷入超过十年的黑暗期。
AMD(ATi)RadeonHD(面积平方毫米,台积电80纳米制程,7亿2千万晶体管)。
DirectX10战争年还有第二回合,也充分展现GPU双雄的路线差距。开始支持OpenCL1.1的AMDRadeonHD4系列(R)创下单芯片32位元单浮点精确度理论性能达1TFlops的里程碑。R家族中继承RV、率先对应GDDR5内存的RV,因兼备性能与价格竞争力,公认是AMD显示芯片发展史上罕见的巨大成功。
NvidiaGT的55纳米制程微缩版GTB(晶粒面积平方毫米)“总算”带来落后AMD将近一年的双倍浮点精确度,但因“某种因素”,AMD并没有因此得到什么好处,就让我们继续看下去。
在这里提醒一件有趣小事,Nvidia自从RivaTNT,就持续致敬知名物理学家(或计算机科学家)姓名,命名不同时代的GPU微架构,但却无法从芯片名称看出端倪。Tesla2.0微架构的GT将两者合而为一(旧命名方式则变成芯片代码,但后来就没什么“逻辑性”了),也可从数字清楚看出同个GPU微架构的不同阶段,像是“小改动”还是“大翻修”等。
笔者整理如下表:
说到AMD嘛……进入TeraScale后的“群岛”命名只会让人整理到吐血,到“星座”出现后才稍微好转,只能寄望RDNA和CDNA分立后,能更简单明了。
让GPU名正言顺接任高性能计算的IEEE-浮点数规范
截至为止,这些高端GPU看似具越来越强的可程序化能力,但取代CPU的“泛用性”,特别是高性能浮点运算,横竖眼前仍有巨大的障碍物:完整支持IEEE浮点数规范,这也是微软DirectX11(DirectCompute5.0)的重头戏,过去缺乏游戏规则(怎么偷工减料谁也管不着)、由IEEE-版拍板定案的浮点乘积和(FMA),更是让GPU从此有个可依循的公定标准,至于浮点运算单元的肥大化,就是GPU双雄不得不硬扛的甜蜜负担了。
当代两位RISC大师合着的计算机结构教科书《计量方法》第五版“引领GPU更大幅接近主流泛用CPU”的重大革新,就即将成为现实,虽然那位赢家(从那时到现在也还没输过)踏出这步时,也是出师不利,导入台积电40纳米制程不顺,Nvidia的Fermi微架构等于先后出了两版,Nvidia旗舰GPU晶粒面积超过平方毫米也成为约定俗成的常识。
AMD仍继续推动Fusion大战略,新一代x86处理器微架构Bulldozer(推土机)的双整数运算核心共享一个浮点运算单元,摆明就是假以时日用GPU取代后者。
年12月15日的RadeonHD(CaymanXT,平方毫米)引进VLIW4格式的第三代TeraScale微架构,将“四个简单的矢量运算单元(4D)加上一个专属复杂特殊运算的单元”(TUnit)的VLIW5,改造为“四个可处理所有工作的运算单元”(4DTUnit),改善指令调度与执行单元的使用效率,为AMD真正迈向GPGPU的GCN(GraphicCoreNext)微架构预作准备。年1月9日的28纳米制程RadeonHD(TahitiXT,平方毫米)导入第一时代GCN,对AMD来说,这时GPU才正式进入GPGPU的世界。
不过,AMD的GPU发展策略偏“运算”,长期来看对游戏本业不利,可是毕竟资源有限,依旧只能单一微架构两边通吃,当Nvidia开始有余力分别针对高性能计算和游戏市场,研发“系出同源的微架构却分而治之,善尽在本分保持卓越的责任”产品线时,AMD就要倒大楣了。如出一辙的场景,也重现英特尔那时的CPU钟摆(Tick-Tock)节奏,看过本巨无霸处理器连载第一篇的读者,都应该很清楚这是什么意思。
年春天,Bulldozer微架构的AMDOpteron(3月20日)和Nvidia的GeForceGTX(3月22日)相隔两天问世,也成为AMD一长串噩梦的开端──CPU和GPU战线一起崩盘。
nVidia统治高性能计算的起点
今日超级计算机“赛猪公”指标Top的清单里,满满Nvidia旗舰GPU,早在到年,就被横空出世的Kepler微架构奠定了难以撼动的基础。不论游戏还是运算,AMDGCN才刚面世没多久就被NvidiaKepler一击K.O.,年独显市场占有率跌到历史新低的“18趴”,一蹶不振到年,至今都尚未完全挽回颓势。
事实上,Nvidia从Tesla到Fermi的GPU微架构,也和并购ATi的AMD一样,偏“运算”而非“游戏”,但俗语说的好:鱼与熊掌难以兼得,加上Nvidia在40纳米制程的Fermi“烫到”(在尚未熟悉的先进制程打造巨大芯片),索性一改先推出顶配芯片、再一路往下砍规格变出中低端产品线的作风,Kepler微架构先抢滩中端市场,也完全让运算专用的GPU独立出来。
另外,Nvidia放弃“高时脉极致效益”的两倍时脉Shader,转向激增执行单元规模,正面挑战AMD实行有些年头的“低时脉人海战术”(前面都这么多张规格比较表了,各位看过一定都会很有感)。受制于有效内存带宽,因自从NvidiaNV40就缺乏更好的内存压缩传输机制而不如对手,就算AMD再怎么“堆高”执行单元,实际反应在性能表现的“效益”还是一直输给Nvidia一大截,到了年,依然不得不业力引爆。添加运算指令和扩张执行单元看似简单,但能否提供足够的内存带宽,使之充分发挥,那又是另一回事。历史已经证明,要完成相近的性能表现,AMD总是需要比Nvidia更充沛的内存带宽。
然后AMDGCN微架构的初代“高端”产品RadeonHD(TahitiXT)就这样被Nvidia设置为“中端”的GTX(GK)整个打爆了,这“对Nvidia是惊喜,对AMD是惊吓”的结果(这段叙述好像也同样适用于今年的中华职棒总冠军战),恐怕连Nvidia自己也深感意外。
年11月12日才姗姗来迟的高端GTX(GK,但没有完全激活所有功能单元)一举扩大领先优势,年11月17日的TeslaK80(GK)更确立Nvidia在高性能计算(HPC)的领先地位,AMD专业运算卡FirePro产品线(以及后继者RadeonInstinct)就这样被硬生生打垮。
从年初到年中旬,Nvidia和AMD均志同道合“黏死”在台积电28纳米制程好几年(这记录日后才被英特尔14纳米牙膏打破),要在进步极度有限的制程挤出更多性能,最暴力也最稳当的手段莫过于让“游戏”和“运算”的微架构“兄弟登山,各自努力”。
所以Kepler后继者Maxwell,被nVidia彻底精炼成成专攻消费市场的过渡时期微架构,以牺牲64位元双倍浮点精确度的性能为代价,换取1.35倍的单一SP性能和“两倍”能耗比。前面的Kepler是以中端市场当起点还不打紧,年3月22日,Maxwell竟然以售价美元的GeForceGTXTi(GM-,平方毫米)在低端市场踏出第一步。
等一下,前面不是才扯一堆“GPU只会越来越肥”,怎么现在体重又仿佛回光返照到GPU刚诞生的婴儿期了?别担心,晶体管如同生命会自己找出路,Maxwell2.0的顶配GM让nVidiaGPU的晶粒面积首度突破平方毫米大关,中端GM也逼近平方毫米。
既然此时此刻的AMD已被Nvidia打到毫无还手之力,也就没有必要好好比较双方规格细节的必要性了。
在此也“附赠”AMD六个GCN时代的旗舰芯片,也堪称是AMD“GPU黑暗期”的象征。在28纳米制程“加持”下,AMD也将旗舰GPU的面积增加到逼近平方毫米。
但AMD年“突然”发布的Vega20,与背后暗藏的“双轨战略”,却替AMD即将发动的大反击,埋下充满悬疑的伏笔。
GPU终极增肥大法:人工智能
“人工智能”是今日随处可见、人人朗朗上口、一没它就什么都不对的关键名词,人工智能的深度学习与推论所需的各式各样资料格式,结合高性能计算必须的64位元双倍浮点精确度,催生更复杂的执行单元,也成为让高端GPU更肥胖的催化剂。
我们先来回顾一下年的nVidiaGPU产品进程表,原本Maxwell要直接演进到Volta。
但年Volta前就冒出Pascal了。摆脱28纳米制程纠缠后,16纳米制程Pascal吹响了众多GPU重大革新的号角,例如独立64位元浮点运算单元、支持8位元短整数与16位元短浮点、导入HBM2内存、号称有PCIExpress3.0“5~12倍”性能的NVLink(用来连接IBMPower8处理器)、统合CPUGPU内存寻址空间并提供需求分页的UnifiedVirtualMemory、初代DGX-1深度学习系统等。
讲白了,当仔细查看Pascal后面那个彻头彻尾为人工智能量身订做、兼顾学习和推测、甚至连消费型衍生型号都没有的Volta,就不难理解Nvidia想小步快跑、降低风险的企图。
我们就来瞧瞧Volta的执行单元长的什么样子,包含五种截然不同的独立运算功能单元,一个次核心就有16个32位元浮点(FP32,CUDACore的同义词)、4个特殊运算(MUFU)、8个64位元浮点(FP64)、16个整数运算(INT)、与2个为人工智能而生的张量运算核心(TensorCore)。12纳米制程、晶体管亿、晶粒面积多达平方毫米的GV,拥有多达5,个CUDACore(SP),是Fermi完全体GF的“十倍”,由此不难想见GPU进步幅度之快。
言归正传,本文主题专注GPU“体重”,如需了解技术演化的细节,像那票烦死人的不同浮点精确度的性能打折比例等,可参阅发布于年9月的旧文。让我们回头查看Nvidia历代旗舰级通用运算GPU的规格,算一算晶体管密度,当成判断苹果M1Max的GPU等级的重要依据。
同样走上双轨之路的AMD
不过看在AMD近年企图重振旗鼓、逐步重返荣耀的份上,也不得不提一下AMD的近况。AMD分别在年11月18日和年10月28日发布产品定位完全迥异的Vega20(RadeonInstinctMI60)和Navi21(RadeonRXXT)旗舰级GPU,也在年财务分析师大会宣示也将“运算”和“游戏”分成两个独立体系:“运算导向的CDNA”与“游戏优化的RDNA”。
我们再度升起搜索巨无霸GPU的雷达。嗯,应当起自于MB第三阶InfinityCache的贡献,RDNA体系的旗舰Navi21重回平方毫米以上水准,真是可喜可贺。
但更让人感到讶异的是:等了这么多年,CDNA体系终于展现能与Nvidia旗舰GPU分庭抗礼的潜力。前阵子才发布的RadeonMI系列,让AMD首次拥有账面硬件规格足以压制Nvidia的武器,未来能否抢走NvidiaA的生意,就端赖AMD能否有本事突破“CUDA生态系统统封锁网”了。
在此也再次好好比一比旗舰级运算用GPU的规格,让我们继续期待明年Top榜单会有多少NvidiaA被x86双雄产品取而代之。
苹果M1Max的GPU大概属于哪个等级?
行文至此,看了这么多历史巨无霸GPU,看到眼花缭乱,也该推测苹果M1MaxGPU,大致上属于那个“等级”。
我们先假定苹果的GPU技术水准与微架构设计和AMDNvidia相去不远,我们再以晶体管密度粗估M1Max的GPU换到老旧制程的面积。
M1Max的5纳米制程晶体管密度约每平方毫米1.32亿,略低于相同制程的M1,大致上是GPU双雄7纳米(台积电)或8纳米(三星)制程产品的2~3倍。
GPU、64MB系统缓存内存和位元宽内存控制器区块,大约占M1Max五成面积(平方毫米),如此一来,对应的是~平方毫米范围,拿来跟时下旗舰级消费型显卡比对,和NvidiaGeForceGTX(GA,平方毫米,密度每平方毫米4,万)和AMDRadeonRXXTX(Navi21,平方毫米,密度每平方毫米5,万)实属相近等级,就算考虑到时脉的巨大差距(这也会影响到晶体管密度),再差最起码也该有中端显卡水准。目前随处可见的“M1Max足以匹敌高端显卡”的评论,就这个角度看,也看似所言不虚,尤其是同样极度依赖大型化缓存内存的AMDRDNA2.0可为适当的对照组。
也请别忘记,根据传言,苹果将有包两颗M1Max的Duo版和包四颗的Quadro版,届时性能将很可能超越GPU双雄的所有产品,即使比较的立足点并不公平。
假若那天苹果想不开,想打造自家数据中心的人工智能加速器,搞不好才是世界最大无霸的GPU也说不定,虽然如果美梦成真,世人很可能也无从知晓。
(首图来源:苹果)