让深入每一台架构和发展情况解读
很多行业人士都认为AI可能成为自蒸汽机、内燃机、电力以及信息技术之后的第五次产业革命的核心。那么AI会如何进入我们的生活?对于广大的普通消费者来说,自然是从离我们最近的PC和数码设备开始。PC作为目前大家最常使用的计算设备,在AI应用发展方面有着得天独厚的优势。以AMD为代表的PC芯片巨头敏锐地发现了这一趋势,通过在处理器中集成专用NPU来为每一台PC带来强悍的AI计算能力。那么,现在AMD锐龙处理器中的NPU究竟有哪些特性?RyzenAI在软硬件方面又是如何协同一体的呢?
创新的NPU设计专为AI计算加速AMD在锐龙7040系列移动处理器发布时候带来了全新的NPU独立模块。NPU全称是NeuralNetworkProcessingUnit,也就是神经网络处理单元。它的作用是专门加速AI计算中的神经网络计算。AMD在锐龙7040系列移动处理器中内置第一代XDNA架构的NPU,在最新发布的锐龙AI300系列处理器中,AMD带来规模更大、算力更强、基于XDNA2架构的全新NPU。那么NPU的内部设计和工作基本原理到底是什么呢?它的出现又会以何种方式加强处理器的AI应用效能呢?
回顾历史,AMD的NPU和赛灵思有很深的渊源。2020年,AMD宣布以490亿美元收购赛灵思。收购完成后,AMD在持续推进原赛灵思FPGA相关资产和加速芯片发展的同时,还通过技术融合等方法进一步开发了赛灵思在AI加速方面的大量知识产权,其中就有今天谈论的重点:NPU。
▲AMD通过CPU、GPU和NPU结合,带来了RyzenAI平台。
神经网络计算:和传统计算的差异很大
神经网络计算和传统计算存在很大差异。传统的计算比如CPU的逻辑计算、GPU的流式计算等都是通过确定的开始到中间复杂的判断和计算,再得到确定的结果。神经网络计算的本质其实是寻找输入数值和输出数值之间的关系,然后利用这种关系:一般称之为模型,进行仿真的一个过程。这意味着神经网络计算存在海量数据的大规模并行计算,并且和传统GPU的并行计算有所不同。
▲神经网络著名算法Transformer的架构简图,虽然人们知道它的方法和路径,但是具体的执行依旧算是黑箱。
神经网络计算相比传统计算,整体差异非常多,但是简单总结主要有以下三个方面:
一是神经网络计算是端到端的计算,在整个计算过程中的很多内容由于其过于庞大的规模,人类想弄清楚每一步计算的缘由和结果,可能存在很大的困难。这里的意义在于,对于传统的计算,人们可以根据每一步进行优化,但是神经网络计算设计的大量数据搬运对带宽要求极高,因此传统的冯·诺依曼架构的存储体系可能存在劣势。
▲冯·诺依曼架构对比目前AI计算的神经网络结构,可以看到,冯·诺依曼结构的存储系统将极大限制神经网络计算的发展。
二是神经网络计算对于效率、矢量、矩阵这样的低维数据集而言效率不够高,只有张量这种高维的数据集才能带来更好的并行计算效果,因此需要对张量计算做足够的优化,比如针对稀疏矩阵的处理方式等进行优化。
▲神经网络计算的本质其实都是矢量,但是矩阵和张量计算效率更高,目前普遍采用张量计算的方法,GPU也有专门的张量计算单元,NPU自然也可以做到。
三是神经网络计算也有一些独特的特性,比如绝大部分计算并不需要高精度,甚至INT4这样的整数进行加乘计算就可以得到合理的结果,只有一小部分影响最终结果的计算才需要FP16或者BF16这样的高精度。因此如何使用合理的精度来提高计算效率也是目前神经网络计算需要面对的问题。
鉴于上述三点内容,如果要针对神经网络计算做优化,那么一定避不开针对存储体系、张量计算以及精度控制和更多数据格式的支持。
AMDNPU:专为神经网络计算优化
NPU是一个DSA(DomainSpecificArchitecture)化的模块,所谓DSA是指领域专用架构。DSA架构专门为某一类计算进行了设计上的优化,因此针对这一类计算拥有极高的计算效率,但是对其他的计算要么效率极低、要么干脆不支持。相对应的是,我们熟知的处理器微架构比如Zen5、GoldenCove是通用计算架构,这类通用计算设备可以计算所有的任务,但具体到特定领域也许效率并不是太高。目前计算机微架构中,绝对通用化和绝对DSA化的设备都很少,它们并不是排斥的关系,而是根据实际情况进行一定的匹配,比如CPU微架构中的SSE、AVX等,本质上都是通过专用指令集和专用执行单元对通用的CPU微架构进行专用化加强。
NPU如果要针对神经网络计算进行加强,在很大程度上要符合我们前文提到的神经网络计算的三大特点,而AMDXDNA架构很好地完成了三项优化。我们来看看它是怎么做的。
▲AMDNPU使用的XDNA架构简图
先来看宏观架构。XDNA采用的是空间数据流的NPU架构,它宏观上由大量的AI计算单元的平铺阵列组成。每个AI计算单元都包含了矢量计算模块、标量计算模块和本地数据存储模块。此外,XDNA内部还有存储区块、计算区块和存储区块,都使用类似Mesh的总线架构互相连接,并最终连接在AIE-MLArrayInterface上,形成一个完整的NPU单元。多个NPU单元的组合组成了整个NPU。
▲XDNA架构中AI计算单元的简图
更近一步来看,XDNA中的每个NPU单元都由支持VLIW以及SIMD的增强矢量单元组成,并针对机器学习和高级信号处理应用进行了优化。除了计算部分之外,NPU单元还包含了一个存储模块,被称为DM,其中包含了64KB的缓存以及2个DMA。这个缓存可以用作存储数据、权重、激活函数和一些系数等。另外,其中包含的RISC标量处理器还可以支持不同类型的数据通信。
▲AMD第一代NPU的算力只有10TOPS,第二代NPU的算力提升到16TOPS,最新一代NPU的算力提升到50TOPS。
那么,XDNA这个架构符合之前我们提到的AI计算的特征吗?显然是符合的。首先,XDNA的内部架构采用了存算一体化的设计,每一个AI计算单元都包含了计算和存储部分,这就在很大程度上避免了数据的来回搬运,也避免了诸如GPU这样的部件不断使用集成式总线对数据进行大规模调取的过程,这很大程度上节约了能源,提高了能效,同时带来了计算效率的提升。
其次,针对矩阵、张量计算较多的特点,XNDA架构在设计上采用了大量AI计算单元的矩阵,其设计形态就是为张量计算、矩阵计算服务,可谓相得益彰。第三,XDNA架构可以支持CNN、RNN和LSTM相关的模型,支持INT8、16、32和BF16格式的数据,支持细粒度时钟门控技术以实现更出色的能效控制以及多路计算流并发等。这也充分符合AI计算的整体特性。
▲XDNA架构计算路径简图,对比传统CPU。
因此,通过XNDA架构以及相应的NPU,AMD为锐龙处理器带来了专用的AI加速计算功能,在面对轻量化的AI计算时,AMD锐龙处理器不再需要调用独立显卡或者集成显卡,也不需要使用CPU进行通用化、但低效率的计算,使用NPU就可以直接完成相关任务,同时还带来了极高的能效,释放了CPU和GPU部分占用,提高了整个处理器的运行效率。
RyzenAICPU GPU NPU三位一体实现高效率计算除了相应的NPU硬件架构优化之外,AMD在AI计算方面也会继续利用其CPU和GPU架构的全平台优势,使之和新增的NPU协同,带来了CPU GPU NPU三位一体的高效率硬件架构平台。
▲AMD通过CPU GPU NPU三位一体,组建RyzenAI平台。
AMD对RyzenAI平台进行了分析和解读。对NPU而言,主要目的是提高AI计算效率。对CPU而言,由于AMD锐龙处理器针对AVX-512VNNI的支持非常到位,因此可以大幅度加速大量AI工作负载。对GPU而言,借助于RadeonGPU在AI方面加速的优势,AMD可以为大量软件提供GPU级别的AI加速。结合NPU、CPU和GPU的特性,AMDRyzenAI平台可以针对各种不同类型的设备、应用以及场合的AI计算进行加速。
▲RyzenAI第一步是通过AIPC做到硬件平台的AI就绪。
基于其CPU GPU NPU三位一体的全平台优势,AMD还提出了有关RyzenAI平台的几大特性,包括性能、安全特性、能效比以及效费比等。为了达成最好的状态,在硬件平台AI就绪之后,AMD针对RyzenAI的发展重点在于扩展产业链生态支持,从软件和应用层面为AI就绪。
▲RyzenAI平台能够提供的四大价值
为了推动RyzenAI平台应用和软件支持的发展,AMD在软件平台和生态构建等多方面都取得了明显的进展。首先,AMD针对RyzenAI平台开发了开源的ONNXRuntime并带来了针对ONNX、TensorFlow、PyTorch三大软件平台的支持。AMD给出的架构示意图显示,应用程序启动AI相关应用后,通过Quantize和ONNXRuntime就能调用RyzenAI平台相关硬件运行。通过这样的方式,AMD完成了软硬件一体的协同运行。
▲RyzenAI发展的第二步则是构建AI产业环境
▲RyzenAI平台发展的两大步骤,一是建立硬件平台,二是建立开发者环境。
▲RyzenAI的软硬件环境构成,主要依靠ONNXRuntime。
此外,AMD也在开发端发力来推广RyzenAI。AMD针对锐龙产品带来了广泛的企业支持,包括Adobe、微软、AVID、OBSStudio、Zoom、TOPAZLabs、AUDACITY等诸多企业和行业软件提供商都针对RyzenAI平台对旗下的软件进行了优化。更重要的是,AMD还宣称2024年底前将有超过150个ISV合作伙伴会推出RyzenAI驱动的应用程序或者应用,其中包括热门的Photoshop、PremierePro等软件都有诸多应用模块使用了RyzenAI的相关技术。
▲目前已有超过150个RyzenAI平台加速应用
▲AMD锐龙AI全面支持MicrosoftWindowsStudioEffects。
AMDAIPC赋能千行百业解决软硬件一体协同的问题之后,AMD便携手OEM合作伙伴和生态系统合作伙伴开始为AIPC生态系统注入活力。据AMD介绍,从2023年开始推出锐龙AIPC以来,AMD就在不断布局AI生态系统,目前相关的产品/系统已经出货数百万套,并在市场上提供了多样化的PC设计。目前AMD已经拥有了从云到端的完整的AI解决方案,能够全面支持各种层级的AI能力的部署,以驱动创新。
▲AMD针对RyzenAI的软件平台已经准备就绪
早在2024年3月,AMD就通过一场声势浩大的AIPC创新峰会向大家展示了AMDAIPC的发展势头。当时,广大OEM合作伙伴以及100多家生态系统合作伙伴带来了丰富的AI应用解决方案展示,这些AI应用方案不仅涵盖行业类应用,诸如AI文物修复、工业设计、医学影像、编程、医疗、教育和咨询等,还涵盖常见的消费级应用,比如内容创作、办公协作、游戏娱乐等。
▲AMD近期推出了全新的锐龙AI300系列移动处理器,其采用XDNA2架构的第三代NPU,AI性能大增。
经过AMD在生态系统上持续不断地建设,目前AMD锐龙AIPC已经赋能千行百业,针对多种行业、不同领域的AI应用解决方案已经或即将落地,它们已经能够运行或者部署在AMD锐龙AIPC平台之上,普通消费者已经能够通过它们感受到AI计算带来的魅力。
▲RyzenAI支持三大主流AI加速软件环境
▲AMD第三代NPU的算力提升到50TOPS,力压群雄。
举个例子,让深入每一台架构和发展情况解读目前AdobeLightroom和Photoshop软件都支持利用SenseiAI和ML技术来提升图像编辑体验,支持镜头模糊、超分、降噪、天空替换等多项AI编辑功能。其中Lightroom镜头模糊工具可为普通照片添加景深模糊效果,该效果通过Sensei制作图像的深度图来模糊背景或前景,目前已经支持AMDRyzenAI技术,也就是说普通消费者在AMD锐龙AIPC上就能体验到这样的AI功能。
总的来说,从目前行业发展的情况来看,AMD在AIPC产业的发展上的确走在了业界的前面。无论是NPU的引入还是RyzenAI平台以及生态圈的发展都在助推AMD在AI时代为我们带来更多优秀的技术和产品,让AI离普通用户更近,更触手可及。