广告

苹果M1统一内存架构真的很厉害吗?从AMD APU的名存实亡谈起(上)

时间:2021-08-19 作者:黄烨锋 阅读:
UMA(Unified Memory Architecture)这个词也有挺久的历史了,英伟达、AMD等都做过宣传。而且似乎在不同语境下,其含义是不一样的。这也给苹果M1的UMA是否真的领先,打了个问号。我们不打算去追溯UMA究竟表示什么——不过无论如何,UMA都基于异构计算,而AMD是提异构计算比较早且积极的选手……
广告

苹果M1芯片发布之际,在大众间普及了一个叫UMA(Unified Memory Architecture)的概念——这个词主要用以形容,M1平台之上的RAM内存,面向CPU和GPU等不同的处理器时,采用统一可访问的内存池:如此一来M1的各组成部分不需要像传统方案那样,在多个内存池之间来回复制数据。

这里UMA的基本假设是,传统的CPU和GPU虽然位于同一个SoC芯片上,但它们对于内存的不同访问习惯、数据结构,导致它们虽然使用相同的内存RAM,但其存取空间仍然是分开的。而M1则打破了这种界限,提升了带宽、延迟和性能表现。当然这种“打破”是苹果和媒体的宣传。

事实上,UMA这个词也有挺久的历史了,英伟达、AMD等都做过宣传。而且似乎在不同语境下,其含义是不一样的(比如维基百科将UMA等同于集成GPU;且UMA似有各种不同实现方式)。这也给苹果M1的UMA是否真的领先,打了个问号。我们不打算去追溯UMA究竟表示什么——不过无论如何,UMA都基于异构计算。所谓异构计算,也就是把CPU、GPU、NPU、FPGA等通用、专用处理器集成到一起,大家协同计算、各司其职。

异构计算是后摩尔时代的基本趋势。现在异构计算已经不新鲜了,因为如今遍地都是异构计算芯片,手机、PC的处理器普遍如此。不过十多年前,异构计算还是相当新潮的。而AMD是提异构计算比较早且积极的选手。

对PC处理器熟悉的同学应该知道AMD有个产品线叫APU:我们现在对APU的大致理解,应该是把CPU、GPU集成到同一颗芯片上的处理器产品。在这个时代,这种思路也太过稀松平常了。Intel、苹果、高通、Arm还有谁不是这么做的?但在AMD提出Fusion项目的2006年,这可是个比较有趣的思路——当年即便是所谓的“集成显卡”也还都是在主板上单独的芯片。

APU是早践行了异构计算的处理器产品,而且也比苹果早很多年尝试去实现UMA——至于是否成功那是另一回事。现在的APU可能早就没了当初的使命。本文分成上下篇来谈谈AMD当年提出的APU架构理念,以及到如今的苹果M1,世界又发生了怎样的变化;并尝试粗看看苹果M1的UMA有多大价值。

APU的历史,与推土机的渊源

AMD早年提出APU这个概念是有其历史原因的。我们在《PC处理器市场在变天:Intel的王者宝座还能坐多久?》一文中曾详细谈到过AMD过去十多年,在技术上走过一条长长的弯路。在Zen架构出现以前,AMD一直在做一种叫Bulldozer推土机的处理器架构。

这种架构的一大特点是,每两个处理器核心共享一个浮点运算单元(每两个核心组成一个模块-module)。也就是说每一个推土机模块(module),对整数运算来说是2个核心,而对浮点运算而言有时是1个核心,有时又可以算2个核心。

1个推土机模块

AMD当年表示,之所以采用这样的核心设计,是因为大部分操作系统工作都是基于整数运算;而浮点运算日常没那么重要——真正需要浮点性能的时候,让GPU来干就行了。(好像和早年高通Kryo的思路完全相反)

我们现在当然知道,AMD推土机架构是彻彻底底地失败了。不过如果顺着AMD当年的这个思路去想,AMD收购了ATI之后手握CPU、GPU两大资源。那么搞个CPU、GPU融合的架构出来,矢量、浮点这些计算就可以欢乐地交给GPU去完成了。完全不难想象当年的推土机CPU架构,可能就是为APU Fusion这个概念而生的。

事实上,AMD Fusion项目是2006年就提出的——AMD也是在这一年收购的ATI。当时AMD表示要开发一种SoC芯片,将CPU和GPU集成到一颗die上。不过要把CPU、GPU以当年的45nm工艺放在一起,难度还是相当大的。所以第一颗APU问世已经是2011年的事情了。推土机CPU也是2011年发布的。

这套技术逻辑,感觉还是相当的圆满——至少从理论上来看是如此。当年亦有分析师提出,“APU”这个概念恰是因为AMD在CPU市场上表现越来越差,推土机性能也远远落后于Intel同时代产品,所造出来的一个东西。AMD期望藉由APU的新概念,来实现市场的突破。这个观点可能也是有道理的,但实际上推土机的问世,比APU概念的诞生至少晚了5年。所以我们更倾向于认为,APU是AMD一早就预备推广的一种技术。

APU生态,与HSA联盟的建立

AMD在2010年发布的一份APU技术白皮书中,大肆夸赞了APU在技术上的独到之处。现在看来CPU+GPU的设定并没有什么可吹的,但这在当年也算是个壮举。而且APU也不只是把CPU和GPU放在一起这么单纯,毕竟前文提到了AMD是期望让GPU在日常工作中也发挥作用的,而不只是充当图形计算加速器。

来源:APU 101: All about AMD Fusion Accelerated Processing Units

在理念宣传上,AMD画过一张图。AMD认为,处理器设计造成的性能提升,历史上分成了三个阶段,如上图所示。这三个阶段分别是单核时期、多核时期,以及异构系统时期。这种划分也算比较前瞻地谈到了未来各种专用处理器或单元对于行业的变革:我们现在身处的时代的确践行了这个理念。

AMD最初提APU一词的时候就谈到GPU之类的矢量处理器,对于大型数据集以及密集型数值计算任务是非常适用的;但对于很多问题来说,CPU也是不可或缺的。异构计算融合CPU、CPU以及更多处理器的长处,实现更优的性能和效率表现。

当年的确还没有“核显”的概念,顶多就是“集显”IGP。而且PC历史上的IGP性能孱弱,只用于解决最基本的图形计算问题。IGP是独立存在于PCB板上的芯片,与内存通讯要通过CPU和PCIe总线,也存在高延迟、低效的问题。AMD在早期APU宣传中也会特别提APU架构的速度比PCIe 2.0快4倍(如下图)。另外AMD自然也不忘说独立显卡对于某些场景的通用计算(GPGPU)不够高效,尤其表现在CPU到GPU的PCIe数据搬迁上。

不过很显然,GPGPU这类思路是需要开发生态配合的:CPU不会平白无故地把任务分给GPU去做,远不是“上帝说要有光便有了光”这么简单的过程。英伟达的CUDA生态也搞了很久。AMD自然需要配套打造各种工具,并维护标准和生态:一个可以跨不同处理器,做统一开发的生态;也需要更多合作伙伴的加入和开发者的响应。

AMD最初提过没有一家处理器厂商用真正可编程的GPU,来做CPU和GPU的融合,所以APU生态“用高层级行业标准工具如OpenCL、DirectCompute和DirectX 11让GPU可编程。”AMD雄心壮志地说要让软件开发者能够将高性能矢量算法融入到自己的应用中,不再受制于标量处理器(CPU)的传统计算限制。

2012年,AMD牵头成立了HSA Foundation(Heterogeneous System Architecture,异构系统架构)。这个组织当时还拉进了Arm、Imagination、联发科、高通、三星、德州仪器等。AMD就是期望HSA架构能够真正推广开来,并推进APU这类形态处理器的软件生态建设。另外,这一年AMD也把APU的“Fusion”平台改名为“HSA”。

不过虽然异构计算现在变得越来越流行,但在个人计算市场,HSA可没能如AMD预期般繁盛兴盛。AMD还是高估了自己在行业内的号召力。这是后话了。

APU的完整形态:hUMA

从当年AMD的形容来看,APU这类芯片的终极理想,或许更靠近于此前索尼PS3游戏机的CELL处理器,或者富士通近年推的A64FX超算芯片——它们在硬件架构层面算是部分融合了CPU和GPU,而不只是把CPU、GPU做到一颗芯片上。不过APU显然是无法这么激进的,毕竟它不像CELL、A64FX那样只面向某一个专门的市场。

Jim Keller还在AMD的时候也是HSA的重要倡导者。Jim Keller多年前说过:“图形计算需要真正的高带宽内存系统。以前图形单元有其专门的内存系统,而CPU和GPU对话,需借助于PCIe。在HSA架构下,CPU与GPU共享内存,图形单元看得到内存,CPU也看得到内存,我们在两者间传递指针,两者有共同的地址空间。”(貌似Lisa Su更是HSA的倡导者,CELL处理器时代,Lisa Su还在IBM)

来源:Wikipedia

这听起来是不是和苹果M1的UMA已经十分类似了?不过HSA的实现,在AMD的APU上也不是一蹴而就的。至少我们在AMD 2010年发布的白皮书中还没有看到AMD大谈UMA。从维基百科的资料来看,HSA特性包括很多分项,比如说共享电源管理、HSA-aware MMU(内存管理单元)、GPU Compute C++支持等。

Jim Keller口中提到的“共同地址空间”这一项,在实现上可能至晚是2014年PS4游戏机中的Kaveri APU——这项特性名为Heterogeneous Memory Management,CPU的MMU和GPU的IOMMU共享相同的地址空间。不过2012年的Trinity APU上,也已经实现了HSA-aware MMU,即GPU可以通过HSA MMU的转译服务和页面错误管理,来访问整个系统内存…(在2013年以前,APU可能均未从硬件层面实现“共同地址空间”,但可能已经实现了对开发者而言CPU与GPU都看到“共同的数据”,并由中间层实现数据的同步)

2014年所推的APU另外也实现了CPU与GPU的所谓“完全一致存储”(fully coherent memory),以及GPU可以通过CPU pointer来使用可分页(pageable)的系统内存等等。2015年的Carrizo APU又加入了GPU计算上下文切换、QoS等特性……

实际上,2013年AMD市场宣传中提出了一个名为hUMA(Heterogeneous Unified Memory Access)的概念,其本质应当也没有脱离广义上的UMA。我们的理解,hUMA应该是AMD期望在APU上实现CPU、GPU(以及更多类型处理器)融合计算的完整特性的集合,包括“共享地址空间”“完全一致存储”这些特性。从硬件层面实现存储一致性,相较于由程序标注数据修改,也更符合AMD构建HSA的初衷,对开发者也会更友好。

当年AMD还强调了hUMA的一项重要特性,即在内存资源仍然比较紧俏的时代,虚拟内存交换是很常见的——即将一部分内存数据放到硬盘上。CPU如果要访问硬盘上的这些虚拟内存数据,则需要通过操作系统来获取数据。

前面提到一般CPU和GPU内存区域分开,两者间是要执行复制数据操作的,这个过程是由CPU独立进行的。如此,CPU也就无法处理写入硬盘的虚拟内存部分,复制的数据只能放在RAM上,且要确保不会被写进硬盘的虚拟内存交换区。hUMA当年也着力于解决这个问题,GPU不仅可以用CPU的地址,而且可以用按需分页的虚拟内存。AMD说除了GPGPU编程以外,这对图形计算中,用到大型纹理的场景是很有价值的。

好了,花在HSA特性介绍上的笔墨有些过多了,这里就不再多做介绍了。其实谈这么多,都为了说明,APU原本在设定上绝对不只是单纯地将CPU和GPU放到同一个die上,硬件和生态层面其实还是作了比较大的努力,以期实现CPU、GPU协作的高效性的。

苹果几乎没有公开多少有关M1芯片UMA架构的信息,但AMD类似思路的践行应该早了很多年,只是不知道苹果是否在实现上应用了什么独特技术

来源:Wikipedia

另外值得一提的是,AMD的APU、HSA、hUMA并不只是针对CPU和GPU,还包括其他处理器,AMD预想中的如加密加速器、FPGA等;HSA在架构设计上也扩展到了(有VRAM的)独立显卡,其实现主要是通过PCIe传递指针(而不是完整复制数据)实现unified virtual memory(如上图)。

当代APU名存实亡

完整践行了AMD APU这套思路的,应该就是游戏主机了,比如PS4开始对上述特性就有相对完整的实践。或许APU的完美适配领域,就在游戏机市场上——这也是AMD的主场。

不过在PC领域,像HSA这样的方案,说到底还是需要开发者响应的。除了硬件支持之外,还需要在生态方面多做投入。为了实现互通性、简化开发,对于CPU和其他处理器而言,HSA实现是ISA无关的,同时要对高级语言实现支持。所以HSA生态上实际包含了什么HSAIL(中间层)、内存模型、dispatcher和运行时之类的组成部分。HSA特性也需要受到操作系统内核、设备驱动的支持等等。

来源:Wikipedia

目前PC平台的HSA生态基本处在荒废状态,表明APU with HSA在PC平台是名存实亡的。现在的APU,其本质大概也就是带GPU核显的AMD处理器产品。其实即便只看今年AMD所推APU产品的GPU性能(Ryzen 7 5700G - RX Vega 8),也已经被隔壁Intel Xe核显超过,早就不复AMD开辟APU形态产品之初,要让高性能GPU与CPU协同工作的心思了。

APU现如今在PC市场上的角色,可能与带核显的面向笔记本一类低功耗移动市场的芯片产品并没有本质区别,这显然与AMD当初宣称APU/HSA是第三次性能革命的誓言背道而驰。

AMD对HSA生态的疏于维护,一方面是对这个方向的不再看好;以及鉴于AMD在PC市场上的号召力不足,开发者对AMD的这套方案始终也真的没有太大的兴趣。而另一方面,AMD如今的Zen架构处理器,在性能和效率上早不再是当年推土机的模样,也对Intel酷睿处理器实现了超越,自然也不再需要藉由APU这样一个概念去为竞争找补。

不过说到生态,除了像游戏机这类AMD的固有主场,在PC市场上,苹果的号召力和AMD可不在一个次元。苹果作为芯片设计商、操作系统开发商、PC设备OEM厂商多重角色,对生态的牢牢把控,以M1为硬件基础推行自己的异构计算和UMA架构,难度大概会小得多。苹果在此的主要成就,大概就是超强的生态掌控力了吧。

不过这则故事还没完,UMA在AMD/Intel的处理器上真的已经不复存在了吗?APU的传奇是否就此结束?是否只有苹果才能机会将UMA贯彻到底?这些将在本文的下篇中做解读。或许UMA只是以另一种方式存在于x86和Arm世界,只是它不叫HSA而已。

责编:Luffy Liu

  • 这个内容“下篇”就会提到了,而且下篇就会看到完全不偏向苹果了...
  • 文章分析了AMD的APU的一部分,但似乎作者比较偏向苹果,什么名存实亡,看不到近年来AMD的努力吗?看不到AMD技术不停的改进吗?技术是不断修正的,总站在最初的APU提出的概念来定位现在或是未来的发展这观点不正确。
本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
黄烨锋
欧阳洋葱,编辑、上海记者,专注成像、移动与半导体,热爱理论技术研究。
  • “无生态,不成活”,Arm Neoverse平台再度迎来多位新玩 自今年4月份,Arm对外揭示Neoverse V1和N2平台的技术细节后,市场上合作伙伴的新产品与合作进展持续推进。日前,Arm方面更新了相关的市场信息,结果显示,Arm Neoverse平台在云服务、高性能计算、5G/网络、软件等核心领域取得了多项“令人瞩目”的成绩。
  • HBM3:没有最快,只有更快! Rambus日前宣布推出支持HBM3的内存接口子系统,内含完全集成的PHY和数字控制器,数据传输速率高达8.4Gbps,可提供超过1TB/s的带宽。
  • 数据中心迈向革命性新架构,CXL迎来高光时刻 从一天内宣布完成对AnalogX和PLDA两家公司的收购,到推出面向数据中心的“CXL内存互联计划”,Rambus日前围绕CXL技术和生态展开的战略布局,令人印象深刻。
  • EE Times Silicon 100: 2021最值得关注的100家半导体 ASPENCORE旗下EE Times最新发布了2021年Silicon 100,甄选出全球最值得关注的100家电子和半导体初创公司,他们代表着新兴技术的发展趋势和全球半导体行业的未来。在这100家入选的半导体新星中,有12家公司给予详尽的介绍。据《电子工程专辑》分析师团队统计,有24家中国公司或由华人创办的企业入选。 此外,《电子工程专辑》今年3月份发布的“中国IC设计100排行榜”也收录进了2021年版Silicon 100,为全球电子和半导体业界人员提供了一个完整的中国芯片设计产业格局和每个技术类别的Top 10企业。
  • 系统动力双剑合璧,提升硅前硬件纠错及软件验证速度 为了应对呈指数级上升的系统设计复杂度和上市时间的压力,包括Cadence在内的EDA厂商近期纷纷将重点投向硬件仿真加速与原型验证领域,希望在芯片开发过程中,一方面使用软件工作负载和基准来验证功耗和性能,另一方面,又能在仿真和验证过程中同时兼顾软硬件。
  • 半导体前沿技术研究:中、美、日、欧哪家强? “芯片短缺”和“建造晶圆厂”现已成为各国政府和企业界领袖们最为关注和头疼的问题。芯片与全球经济和各国GDP有什么相关性呢?半导体前沿技术的研发跟半导体产业又有什么关系呢?从全球顶级半导体学术会议和研究机构发表的论文数量可以推断出哪个国家的未来芯片研发实力最强吗?
  • 新款iPad Pro 2021成最受欢迎的 由于采用性能相对强大的M1处理器和mini-LED屏幕以及更多的创新,新款iPad Pro 2021已经成为消费者心目中最受欢迎。然而,iPad 2却已经在全球范围内被列入“复古和过时”的名单中。
  • 三星折叠屏手机Galaxy Z Fold 3 目前来看,折叠屏新机作为一种新的生产力工具,逐渐成为高端/平板的一种趋势,有报料称三星的Galaxy Z Fold 3发布时间或为7月,并且会引入新手势操控。

  • 瑞萨电子携手豪威科技提供汽车摄像 设计采用瑞萨电子的新型汽车高清链接(AHL)技术和豪威科技的OX01F10 130万像素SoC,以提供低成本的优质视频;于9月15日至16日在比利时AutoSens展会上进行展示
  • 芯查查屹立数字化潮头,赋能电子信息 全球市场对芯片需求进一步扩大,我国集成电路产业布局加快,广东、上海、浙江、天津等多地陆续公布制造业“十四五”规划,集成电路成为各地未来五年的重点发展方向。
  • 富士康投资128亿建汽车工厂 点击上面↑“电动知家”可以订阅哦!电动知家消息,日前,富士康和泰国国家石油有限公司(PTT)在联合声明中提到,两者成立一家合资公司,并计划在泰国建立一个新工厂,用于生产电动汽车。新的合资企业将在未来5
  • 五菱再“出手” 点击上面↑“电动知家”可以订阅哦!果然是“人民需要什么五菱就造什么”,五菱芯片正式发布。电动知家消息,9月15日,2021年世界新能源汽车大会开幕首日,上汽通用五菱举办了“中国五菱,全球新能源普及者”
  • 12家车企被要求协助针对特斯拉的调查 点击上面↑“电动知家”可以订阅哦!电动知家消息,据外媒报道,美国国家公路交通安全管理局(NHTSA)在9月14日表示,作为对特斯拉Autopilot高级辅助驾驶系统调查的一部分,该机构已经要求12家主
  • 嵌入式项目可以自动生成?惊现开源生成器 实际开发中,不同的人习惯用不同的开发工具。比如,对于STM32开发来说,可以用Keil、IAR、VSCode+GCC等。比如安富莱开发板的例程中,常常都会提供有Keil及IAR的工程:有没有这样子的一
  • 大功率IGBT模块串联动态均压详解 欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 785975151高可靠新能源行业顶尖自媒体在这里有电力电子、新能源干货、行业发展趋势分析、最新产品介绍、众多技术达人与您分享经验
  • 为什么LED灯会越用越暗?为什么会闪烁? 大家都有这么一个生活经验刚买回来的LED灯,总是特别亮,但是过一段时间后很多灯会变得越来越暗,为什么LED灯具会有这样的一个过程呢?今天就带大家一探究竟!要了解为什么你家的LED灯会越来越暗我们就得先
  • 华为成立第3家超聚变公司,落户郑州 昨日,除了科技巨头苹果发布了几款新品之外,国内科技龙头华为也出现了新的动作。根据相关报道显示,华为近日在河南郑州成立了一家超聚变数字技术有限公司,工商信息显示该公司的法定代表人为郑丽英,注册资本7.2
  • OPPO裁员20%? 日前,有传闻称国内某一线手机品牌将会在下半年大规模裁员20%。外界不少人认为该国内一线手机品牌应该说的是华为。不过,也有消息显示,将要大规模裁员20%的国内一线手机品牌厂是OPPO。早在7月16日,职
  • C++ 线程的使用 C++11 之前,C++ 语言没有对并发编程提供语言级别的支持,这使得我们在编写可移植的并发程序时,存在诸多的不便。现在 C++11 中增加了线程以及线程相关的类,很方便地支持了并发编程,使得编写的多
  • Nano Transport:一种硬件实现的用于SmartNIC的低延迟、可编程传输层 随着摩尔定律中的物理尺寸逐渐逼近极限,但实际应用中人们逐渐通过软件的硬件定制化加速来继续延续着摩尔定律的加速使命,这里面最典型的场景就是计算机网络。如软件的TCP/IP协议栈时延较大,于是就有了硬件化
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
广告
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了