当前位置: 首页 > 科技观察

刚刚,Facebook开源了其服务于27亿人的AI硬件系统

时间:2023-03-16 18:59:03 科技观察

长期以来,社区更加关注Facebook的硬件研究。在今天的开放计算项目全球峰会上,Facebook技术战略总监VijayRao开源了新的AI硬件:用于AI训练和推理的Zion和KingsCanyon硬件系统,以及用于视频转码的MountShasta。这篇博文对此进行了详细介绍。Facebook的基础设施现在在其整个应用程序和服务生态系统中每月为超过27亿人提供支持。他们的工程师设计并构建了先进、高效的系统来扩展该基础架构,但随着工作负载的增长,单靠通用处理器已无法满足这些系统的需求。晶体管的增长速度已大大放缓,需要开发专门的加速器和整体系统级解决方案来提高性能、功率和效率。为基础设施创建高效的解决方案需要共同设计工作负载优化的硬件。为此,Facebook一直与合作伙伴一起开发AI推理、AI训练和视频转码的解决方案。这些是其增长最快的一些服务。今天,Facebook发布了用于AI训练的下一代硬件平台Zion、用于AI推理的全新定制芯片设计KingsCanyon以及用于视频转码的MountShasta。AI硬件的使用AI工作负载贯穿Facebook的架构,使其服务更具相关性,并改善用户使用服务的体验。通过大规模部署AI模型,Facebook每天可以提供200万亿次猜测和超过60亿次语言翻译。Facebook使用超过35亿张公共图像来构建或训练其AI模型,使它们能够更好地识别和标记内容。人工智能正被广泛用于各种服务中,帮助人们进行日常互动,并为他们提供独特的个性化服务。Facebook的大部分AI流程都是通过其AI平台FBLeaner进行管理的,该平台包括集中处理部分问题的工具,例如特征库、训练工作流管理和推理引擎。结合为开放计算项目(OCP)设计和发布的硬件,这将使Facebook能够高效、大规模地部署模型。从一个稳定的基础开始,Facebook专注于创建一个供应商中立的整合硬件设计,并继续坚持分解设计的原则以提高生产力。结果是Facebook用于工作负载训练和推理的下一代硬件。AI训练系统ZionZion是Facebook的下一代大存储统一训练平台,旨在高效处理一系列神经网络,包括CNN、LSTM和SparseNN。Zion平台可以为其繁重的工作负载提供高存储容量和带宽、灵活的高速连接以及强大的计算能力。Zion使用Facebook新的、供应商中立的OCP加速模块(OAM)。OAM规格允许Facebook的合作伙伴,包括AMD、Haban、GraphCore和Nvidia,在OCP通用规范之上开发他们自己的解决方案。Zion架构从单个机架使用TOR网络进行切换,使Facebook可以自由扩展到每个平台的多个服务器。随着Facebook的AI训练工作量在规模和复杂性上的增长,Zion平台也随之扩展。Zion系统分为三个部分:8路服务器8加速器平台OCP加速器模块AI训练解决方案基础模块Zion连接模块图Zion将系统的内存、计算和网络密集型组件分离,允许每个组件独立扩展.该系统为8个NUMACPU插槽提供了一个大型DDR内存池,以容纳工作负载内存容量密集型组件,例如SparseNN的嵌入式表。对于class="weapp_text_link"data-miniprogram-appid="wxf424e2f3e2f94500"data-miniprogram-path="pages/technology/technology?id=85c4b79b-6428-4184-b9bc-5beb6e2b1f3f&from=weapp"data-miniprogram-nickname="machineSynced"hrefdata-miniprogram-type="text"data-miniprogram-servicetype="">存储带宽密集型和计算密集型工作负载,如CNN或SparseNN密集部分,每个CPU插槽连接OCP加速模块。该系统有两个高速结构:连接所有CPU的连贯结构和连接所有加速器的结构。由于加速器内存带宽高但内存容量低,因此通过以更频繁访问的数据驻留在加速器上而访问不频繁的数据驻留在加速器上的方式对模型进行分区,可以有效地利用总可用内存容量。与CPU一起留在DDR内存上。所有CPU和加速器之间的计算和通信通过高速和低速连接均衡高效地进行。通过KingsCanyon进行推理一旦我们训练好模型,就需要将其部署到生产环境中,为AI流程处理数据并响应用户请求。这就是推理——模型对新数据进行预测的过程。推理工作负载正在急剧增加,反映出训练工作负载的大量增加,目前标准CPU服务器已经无法满足这些需求。Facebook正在与包括Esperanto、英特尔、Marvell和高通在内的多家合作伙伴合作,开发可在基础设施上部署和扩展的推理ASIC芯片。这些芯片将为工作负载提供INT8半精度运算以实现理想性能,同时还支持FP16单精度运算以实现更高的精度。整体推理服务器解决方案分为四个不同的部分,它们利用已发布到OCP的现有构建块。利用现有组件可加快开发速度并通过通用性降低开发风险。设计的四个主要组件是:KingsCanyonInferenceM.2ModuleTwinLakesSingle-socketServerGlacierPointv2CarrierCardYosemitev2RackDiagram:AIInferenceSolutionModuleDiagram:AIInferenceSolutionConnectivityBlockDiagram在系统层面,每个服务器结合了M.2KingsCanyon加速器和GlacierPointv2载卡,主要连接到TwinLakes服务器。通常,前两组组件可以安装到较新的Yosemitev2机架中,然后通过多主机NIC连接到TOR交换机。较新的Yosemitesled是现有Yosemitev2sled的迭代升级,它将TwinLakes主机的额外PCIe通道连接到NIC以获得更高的网络带宽。每个KingsCanyon模块都包含一个ASIC、相关内存和其他支持组件,其中CPU主机通过PCIe通道与加速器模块通信。GlacierPointv2包括一个集成的PCIe交换机,允许服务器同时访问所有模块。深度学习模型具有很高的存储要求。例如,一个SparseNN模型有一个非常大的嵌入表示表,它可以占用几千兆字节的存储空间,并且有可能继续增长。如此大的模型可能不适合单个设备的内存,无论是CPU还是加速器,因此这需要跨多个设备内存进行模型分区。当数据在另一个设备的内存中时,拆分会产生大量的通信成本。因此,一个好的图划分算法将尝试捕获局部概念,从而减少通信成本。通过适当的模型拆分,我们可以运行非常大的深度学习模型。例如,对于SparseNN模型,如果单个节点的内存容量不足以支持给定的模型,我们可以考虑在两个节点之间共享模型,增加模型可以访问的内存量。两个节点可以通过多主机网卡连接,支持高速消息处理。这将增加整体通信成本,但我们可以通过利用多个嵌入式表之间存在访问差异这一事实并相应地对表进行排序来减少通信延迟。神经网络硬件加速器编译器ASIC不运行通用代码,因为它们需要特定的编译器将图形转换为在这些加速器上执行的指令。Glow编译器的目标是从更高级别的软件堆栈中抽象出特定于供应商的硬件,从而使基础架构与供应商无关。它接受来自PyTorch1.0等框架的计算图,并为这些机器学习加速器生成高度优化的代码。GlowCompiler使用MountShasta进行视频转码从2016年开始,FacebookLive的平均播放量每年翻一番。自2018年8月在全球推出以来,FacebookWatch的月浏览量已超过4亿,每天有7500万人使用。为了优化所有这些视频以在多种网络环境中使用,Facebook生成了多种输出质量和分辨率(或比特率),这一过程称为视频转码。完成这个转码过程所需的计算量非常大,通用CPU无法满足Facebook不断增长的视频需求。为了领先于需求,Facebook与Broadcom和VeriSilicon合作设计了针对转码工作负载优化的定制ASIC。视频转码过程被分解为多个不同的步骤,下面将对其进行更详细的描述。这些步骤都在当今的软件中运行,因此为了提高效率,Facebook与供应商合作创建了定制ASIC,其中包含用于转码工作流程每个阶段的专用芯片。为这些工作负载使用定制硬件可以使流程更加节能,并支持实时4K60fps流媒体等新功能。个别视频编解码器已标准化且很少修改,因此定制芯片固有的不灵活性在这种情况下并不是一个明显的缺点。视频转码的第一阶段称为解码,在此期间将上传的文件解压缩以获得由一系列图像表示的原始视频数据。然后可以操纵这些未压缩的图像以更改其分辨率(称为缩放),然后使用优化设置再次编码以将它们重新压缩到视频流中。将输出视频与原始视频进行比较,计算质量指标,表示相对于原始上传视频的质量变化。通常对所有视频都这样做,以确保使用的编码设置产生高质量的输出。用于视频编码和解码的标准称为视频编码方法;H.264、VP9、AV1是目前主流的编码协议。在ASIC上,步骤是相同的??,只是每个软件算法都由芯片内的专用部分代替。平均而言,Facebook预计该视频加速器的效率将比其当前服务器高出许多倍。他们期望行业的目标编码能够在10W的功耗内处理至少2x4K分辨率和60fps的并行输入流。ASIC还需要支持多种分辨率(从480p到60fps的4K)和多种编码格式(从H.264到AV1)。一个视频转码ASIC通常有以下几个主要逻辑块:Decoder:接收上传的视频;输出解压缩的原始视频流Scaler:缩放和解压缩视频Encoder:输出压缩(编码)视频Qualitymetrics:测量编码步骤后的视频质量损失PHY:芯片与外界的接口;连接到服务器DDR控制器的PCIe和内存:运行固件和协调转码过程的公共块现有的OCP组件在数据中心部署这些转码ASIC。ASIC将安装在带有集成散热器的M.2模块上,因为这种通用的电气外形尺寸可以在不同的硬件平台上重复使用。它们安装在GlacierPointv2(GPv2)载卡中,可容纳多个M.2模块。此GPv2载卡具有与TwinLakes服务器相同的物理外形,这意味着它适合Yosemitev2机架并在那里与TwinLakes服务器配对。由于转码ASIC功耗低且体积小,Facebook希望通过将尽可能多的芯片连接到单个服务器来节省资金。高密度GPv2实现了这一点,同时还提供了足够的冷却能力来承受数据中心的运行温度。一旦软件集成工作完成,Facebook将在分布在不同数据中心位置的一系列异构硬件之间平衡视频转码工作负载。为了在与机器学习和视频领域的各种供应商合作的过程中获得规模,他们还努力确保以开放的形式开发软件,并推广和采用通用的接口和框架。