人工智能发展到如今的地步,在行业内已经有很多声音都在讨论,目前内存才是人工智能的最大瓶颈,由于无法加速处理器和内存之间的数据传输,内存性能的瓶颈阻碍了目前的现实应用。本文就来探讨下CPU和内存之间的瓶颈、发展和未来。
在数据中心内用于训练人工智能模型的AI加速器需要用到极高的内存带宽,理想情况下,整个模型可以存储在一个处理器中,这种方法能够消除片外内存对于时间的影响,但是按照目前的技术发展来看这几乎是不可能的,因为现在大的模型通常都有10亿到万亿的参数。也就是说之前的内存瓶颈使得整个系统受限,而如今数据中心正在不遗余力的通过构建各种技术来克服内存瓶颈。
另一方面,人工智能的“疯狂炒作”阶段正在逐渐结束,现在已经到了对于未来AI和机器学习技术发展前景和本身缺陷重新评估的阶段了,而这也可以称为人工智能技术发展的新纪元。
高宽带存储器
目前业界最流行的解决方案是使用高带宽存储器(HBM),这涉及到CPU架构的革新,通常是用一个硅基连接层将4层、8层或者12层DRAM芯片通过3D堆叠方式连接到处理器中。目前业界最新版本的技术----HBM2E,其单个内存引脚具有高达3.6Gb/s的传输速率,三星和海力士分别提供8层HBM2E堆栈,其总容量为16Gb,拥有460GB/s(目前主流的DDR5为2.4GB/s,GDDR6为64GB/s,数据来源:海力士),所以未来的HBM3代可能拥有更快的速度和更高的容量。
Nvidiade A100系列专为数据中心设计CPU,拥有6个HBM2E内存堆栈(目前量产版本为5个内存颗粒)
A100CPU为Nvidia专为旗舰级数据中心设计的专用型CPU,目前提供高达80GB的HBM2E内存和2TB/s的内存带宽,其内部拥有5个16GB的DRAM内存颗粒。另一个版本采用的是40GB的HBM2E,其总带宽为1.6TB/s,但是其深度学习的人工智能模型训练速度相差了三倍之多。
同时,数据中心专用的CPU正在向DRAM“借力”,intel下一代的至强系列----Sapphire Rapids将推出配备HBM系列产品。这是intel第一款采用新的AMX指令拓展的数据中心用CPU(AMX拓展是专门为人工智能浮点运算而设计的指令集),并且可以使用片外的DDR5 DRAM或者HBM内存。
Intel高级工程师Arijit Biswas在最近的Hot Chips的演讲中:“CPU可以提升带负载能力,而加速器或者GPU则提升了带宽;目前的发展CPU发展迅猛,使得内存容量和带宽的瓶颈越来越显现,二者没有均衡发展。全新一代的Sapphire Rapids系列原生支持两种内存(DDR和HBM),通过多层内存混合加上内部软件支持,可以让系统得到进一步增强。”
Intel的首席工程师Nevine Nassif 也告诉EE Times,每一代HBM内存升级都是以die 面积增大为代价的。兼容HBM的芯片die有些与众不同,其内部还拥有一个HBM主控芯片(这是有别于DDR5主控的)。在只采用DDR的Sapphire Rapids系列CPU中,Intel在芯片上设计了一个区域为加密、压缩等功能的专用加速器,而HBM版本中则没有这些,只保留了数据流加速器,因为设计时为了HBM带宽需求需要牺牲一些,必须对die 的layout做出一定改变。
除了CPU和GPU外,HBM也是FPGA的“座上宾”,英特尔公司的 Stratix 和 Xilinx 的Versal FPGA 都有HBM版本,一些专用于AI的ASICs也使用HBM,例如腾讯数据中心的AI 专用ASIC----Enflame,采用HBM的DTU 1.0设备,专为云AI训练加速进行了优化,该设备拥有采用HBM的高达80T flops (FP16/BF16)的两块芯片,为片上数据网提供512GB/s带宽。
Enflame 的 DTU 1.0数据中心 AI 加速芯片(来源: Enflame)
成本是关键
尽管HBM为数据中心人工智能加速器所需的片外存储器提供了极高的带宽,但仍有一些人认为“不值得”。Graphcore在Hot Chips上的演讲中提到,虽然目前业界共识是大型人工智能模型训练需要更快的内存带宽和更大的内容容量,而目前各家也都在研究自己的HBM,但是却忽略了成本、功耗和散热等问题。
对不同内存技术的容量和带宽的比较。(图源:Graphcore)
Graphcore第二代只能处理单元(IPU)采用的是超大SRAM芯片(896MiB)来支持其1472个核心所需要的内存带宽,这样可以尽可能的避免内存带宽不足带来的性能瓶颈。但是人工智能模型太大,不适合用低带宽DDR的DRAM形式,目前该IPU设备部署到主机处理器上,允许中等规模的模型在一个集群中训练。
并且芯片行业越来越多的公司将以每单位美元的回报来衡量公司的业绩,Graphcore拒绝HBM的主要原因也似乎是成本考量。“HBM与人工智能CPU融合的单位成本是服务器用DDR成本的10倍以上,即便是容量不大的情况下,HBM也占据了整个模块的大部分成本;如果人工智能模块可以使用DDR,那么它可以在花一样的成本上拥有更多的处理器核心。”
对 HBM2和 DDR4内存的成本分析显示,前者的成本是后者的10倍
40GB的HBM是同一封装内CPU成本的三倍之多,就连相同都是8GB的HBM和DDR4来说,HBM die的成本是DDR的两倍,这还不算TSV蚀刻、堆叠、组装和封装成本,以及各个制造商的利润率。而反观DDR芯片,这些额外增加的成本都不用考虑,用户可以直接从内存制造商手里买来成品,这种可插入式的生态就是为了减少成本损耗。
多核心分布式方案
从Hot chips的众多演讲中,Esperanto也向业界展示了其关于内存瓶颈问题的解决方案,该公司的1000核心RISC-V人工智能加速器目标是高维模型预测,而不是传统的人工智能模型训练。Esperanto创始人Ditzel也称,客户不是想要250MB的内存,客户只需要100MB----想要所有的事情都在100MB的空间上完成,任何超过这个内存容量的项目都需要额外的资金。
CEO Ditzel还补充说,“客户喜欢在显卡是使用大量的显存DRAM,并且还向我们建议,用最快的设计来把所有的东西都放到一张卡内,如果这样支持100GB内存且能比PCI-E总线的速度更快,那么这就是一个成功。”
我们不妨来比较下Esperanto和其他家推理加速器的异同,Ditzel说。“其他家关注的是整个处理器的功率,而Esperanto则不同,将多个低功耗CPUs安装在双M.2加速卡上,这样能更好的利用片外存储。”HBM可以在引脚数少的情况下获得一个非常高的带宽收益,但是HBM也是真的昂贵和功率较低。
Esperanto向业界展示的6个小die连接到LPDDR4x上的方案(图源:Esperanto)
Esperanto多核心方案使得更多的I/O口用于片外DRAM通信,除了6块CPUs芯片,还采用了24块低价LPDDR4x DRAM芯片,在低压情况下,其功耗和HBM方案基本一样。因为LPDDR4x的带宽比HBM要低,所以我们通过扩大IO来获得更大的带宽,所以其在加速卡的内存系统上采用了1500bit的内存,对于每个数据引脚来说,必须拥有两个电源和接地引脚,但是这样一来引脚数又太多了。所以经过Esperanto的内部讨论,决定把整个系统分开,举例来说,192GB的内存容量需要通过822GB/s的带宽进行访问,对于64bitsDRAM来说,我们可以分成96x16bits通道,不仅可以更好的处理内存延迟,还能把功率控制在120w以内。
Pipeline的重要性凸显
无独有偶,另一家专注于晶圆级的人工智能加速器设计公司Cerebras也在Hot Chips向业界展示了用于解决存储瓶颈的方案,其最新发布的专用于内存拓展系统---------MemoryX,该系统专为高性能计算和科学海量运算设计,可用于CS-2的人工智能加速系统。MemoryX是DRAM和NAND的合体产品,并且是在芯片级别合二为一,其内部框架“弹性十足(兼容性强)”,可容纳从4TB到2.4PB(2000亿到120万亿个参数),足以容纳世界上最大的人工智能模型。
Cerebras 的 MemoryX 系统(图源:Cerebras)
Cerebras联合创始人兼CEO Sean·Lie表示,为了让片外缓存表现得和片内存储一样,Cerebras 对 MemoryX 进行了优化,把参数和对应的权重都输入到CPUs中,能极大程度上消除延迟带来的影响。
Cerebras用Pipeline来消除对于延迟有高要求的通信系统
在系统训练过程中,对于延迟敏感的部分需要极低的延迟,Cerebras设计整个芯片都处于激活状态,系统将绝大多数的数据都存储在MemoryX中,当系统有需要时输入到CPU中,这样可以最大程度的避免延迟,也可以解决不同层之间的依赖性(系统调度能够在前一层完成前就调用后一层)。
同时,更加细分的Pipeline能够避免训练时迭代之间的依赖,给不同层分配不同的权重能够在执行模型时抵消外部调度来带来的延迟,从而提升整个系统的性能。
责编:我的果果超可爱
编译自:
Solving AI’s Memory Bottleneck ----EE times