雷锋网消息,昨日,顺手Facebook在其代码官网code.fb.com上发布消息,宣布发布了其用于AI训练的开源下一代硬件平台Zion、针对AI推理的发布新定制芯片设计Kings Canyon以及用于视频转码的Mount Shasta。
消息称,套A统并Facebook的顺手基础架构每个月都在为其整个应用和服务系统上的超过27亿人提供服务。工程师们设计并创建了高效的宣布系统来扩展这一基础设施,但是开源随着工作负载的增长,只靠通用处理器已经无法满足这些系统的发布需求。
为基础架构创建高效的套A统并解决方案需要通过协同设计工作创建的工作负载优化硬件。为此,顺手Facebook一直与合作伙伴共同开发针对AI推理、宣布AI训练和视频转码的开源解决方案。晶体管增长的速度已大大放缓,这就需要开发专门的加速器和整体系统级的解决方案来提高性能、功率和效率。
整个Facebook的基础架构都使用了AI工作负载,这让其服务更具相关性,并改善用户服务时的体验。帮助人们进行日常互动,并为其提供独特的个性化服务。通过大规模部署AI模型,Facebook每天可以提供200万亿次推测以及超过60亿次语言翻译。Facebook使用超过35亿张公开图像来构建和训练其AI模型,让它们更好的识别和标记内容。
Facebook上的大部分AI流程均通过FBLeaner平台进行管理,该平台包含处理各部分问题的工具,如功能存储、培训工作流管理以及推理引擎。通过与开放计算项目(OCP,Open Compute Project)发布的Facebook设计硬件配合使用,使其能高效的大规模部署模型。从一个稳定的基础开始,Facebook专注于创建与供应商无关的统一硬件设计,并继续坚持分解设计原则以实现工作效率最大化,最终推出了用于工作负载训练和推理的下一代硬件。
Zion是Facebook的下一代大存储统一训练平台,设计上能够高效处理包括CNN、LSTM和SparseNN在内的一系列神经网络。Zion平台能够为关键工作负载提供高容量高带宽的存储、灵活且高速的互连,以及强大的计算能力。
Zion采用了Facebook全新的OAM模块(OCP Accelerator Module),AMD、Haban、GraphCore和NVIDIA等Facebook合作伙伴可以在OCP通用规范上开发自己的解决方案。Zion的体系结构支持使用架顶式交换机从每个单独的平台扩展到单个机架中的多个服务器。随着Facebook AI训练的规模和复杂性不断增长,Zion平台也可以随之扩展。
Zion系统分为三个部分:
8插槽服务器
8加速器平台
OCP加速器模块
Zion将系统的内存、计算和网络密集型组件解耦,允许每个组件独立扩展。系统为嵌入SparseNN表等内存容量密集型组件提供了8x NUMA CPU接口和大容量DDR内存池。而对CNN或者SparseNN密集部分这样的内存带宽密集型和计算密集型工作负载,每个CPU接口都连接了OCP加速模块。
Zion系统有两个高速结构:连接所有CPU的连贯结构和连接所有加速器的结构。鉴于加速器存储带宽高但存储容量低,Facebook希望通过对模型进行分区来有效地使用可用的聚合内存容量,使得更频繁访问的数据驻留在加速器上,而访问频率较低的数据驻留在带CPU的DDR内存。所有CPU和加速器之间的计算和通信都是平衡的,并且通过高速和低速相连有效地进行。
在训练完模型之后,就需要将其部署到生产环境中,从而处理AI流程的数据,并响应用户的请求,这就是所谓的推理。推理的工作负载正急剧增加,这反映了训练工作的大量增加,目前使用的标准CPU服务器已无法很好的扩展规模以满足需求。
Facebook正与Esperanto、Intel、Marvell和Qualcomm等多个合作伙伴合作,开发可在基础架构上部署和扩展的推理ASIC芯片。这些芯片将为工作负载提供INT8半精度的运算,从而获得理想的性能,同时也支持FP16单精度的运算,从而实现更高的精度。
整个推理服务器解决方案分为四个不同的部分,它们利用了已经发布到OCP的现有构建块。利用现有组件可以加快开发进度,并通过通用性降低风险。该设计的四个主要组成部分为:
Kings Canyon推理M.2模块
Twin Lakes单插槽(single-socket)服务器
Glacier Point v2载卡(carrier card)
Yosemite v2机架
在系统级别,每个服务器均由M.2 Kings Canyon加速器和连接到Twin Lakes服务器的Glacier Point v2载卡组成。将两组组件安装到更新的Yosemite v2机架中,并通过多主机NIC连接到架顶式交换机。更新后的Yosemite sled是目前Yosemite v2 sled的迭代升级,它将Twin Lakes主机的其他PCI-E通道连接到NIC,以获得更高的网络带宽。每个Kings Canyon模块都包含ASIC、相关内存和其它支持组件,其中CPU主机通过PCI-E通道与加速器模块通信。Glacier Point v2包括一个集成的PCI-E交换机,允许服务器同时访问所有模块。
深度学习模型是储存密集型负载,如SparseNN模型具有非常大的嵌入表征表,它会占用好几GB的存储空间,并且还可能会持续增长。这样的大模型可能不适合加载到单独设备的内存中,不论是CPU还是加速器都不行,这就要求在多个设备内存上进行模型分割(model partitioning)。当数据位于另一个设备的内存中时,分割将产生很多通信成本,好的分割算法会应用捕获局部的概念,从而降低通信成本。
在进行合适的模型分割后,就可以运行如SparseNN模型这样大规模的深度学习模型。如果单节点的内存能力不足以支持给定的模型,可以在两个节点之间进一步分割模型,从而增加模型可用的内存量。这两个节点可以通过多主机NIC连接,并支持高速信息处理。这将增加整体的通信成本,可以利用跨多个嵌入表存在访问差异的特性,相应地对表进行排序而降低通信延迟。
神经网络硬件加速器编译器
ASIC不运行通用代码,它们需要专门的编译器将图形转换为可以在这些加速器上执行的指令。Glow编译器的目标是将供应商的特定硬件从更高级的软件堆栈中抽象出来,使基础设施不受供应商限制。它接受来自PyTorch 1.0等框架的计算图,并为这些机器学习加速器生成高度优化的代码。
自2016年以来,Facebook Live直播的平均数量每年翻一番。自2018年8月在全球推出以来,Facebook Watch的月浏览量已经超过4亿,每天有7500万人使用。为了优化所有这些视频,使其能适应多种网络环境,Facebook划分了多种不同分辨率和比特率的输出质量,这个过程称为视频转码。
完成转码所需要的计算是高度密集型的,通用处理器的效率已无法满足日益增长的视频需要。为了走在需求的前面,Facebook与博通和芯原微电子合作,设计了针对转码工作负载进行优化的定制ASIC。
视频转码流程被分解为许多不同的步骤,为了提高效率,Facebook与供应商为转码流程的每个阶段均创建了定制ASIC模块。专用硬件来完成这些工作负载可以使该过程更加高效,并可支持实时4K 60fps流媒体等新功能。单个视频编解码器是标准化的,且不会经常修改,因此在这种情况下,定制芯片缺乏灵活性的特征并不是一个显著的缺点。
视频转码的第一个阶段称为解码,在解码过程中,上传的文件被解压,以获得由一系列图像表示的原始视频数据。随后对这些未压缩的图像进行操作,以更改它们的分辨率,而后再次使用优化设置进行编码,将它们重新压缩到视频流中,并将输出视频与原始视频进行比较,计算质量指标。
所有的视频都采取这种做法,以确保所用的编码设置可以输出高质量的视频。视频编码和解码使用的标准称为视频编码方式,H.264、VP9和AV1都是目前使用的主流编码协议。
在ASIC上,除了每个软件算法都被芯片内的专用模块所取代外,其他步骤都是相同的,Facebook希望视频加速器可支持多种分辨率和多种编码格式,并实现比目前服务器高出许多倍效率,目标是10W功耗内至少处理2个4K 60fps的并行输入流。
视频转码ASIC通常有以下主要逻辑块:
解码器:接收上传的视频,输出解压缩的原始视频流
缩放器(Scaler):更改视频分辨率
编码器:输出压缩(编码)视频
质量检测:计算编码后的视频质量
PHY:芯片与外界的接口,连接到服务器的PCI-E和内存通道
控制器:运行固件并协调转码流程的通用块
与推理一样,Facebook利用现有的OCP构建块在数据中心内部署这些视频转码ASIC。加速器将安装在集成了散热器的M.2模块上,这种常见的电气外形在不同硬件平台上均可以通用。模块被安装在Glacier Point v2(GPv2)载卡上,该载卡具有和Twin Lakes服务器一样的物理外形,可容纳多个M.2模块,可适配 Yosemite v2机架,并在其中与Twin Lakes服务器配对。
由于视频转码ASIC要求功耗低且体积小,因此Facebook希望通过将尽可能多的芯片与单个服务器相连接来节约成本。高密度的GPv2可实现这一目标,同时还可提供足够的冷却能力以承受数据中心的工作温度。
完成软件集成工作后,Facebook可将视频转码工作负载平衡分布到不同数据中心位置的异构硬件上。为了在与各种机器学习和视频空间供应商的合作过程中扩大规模,他们还努力确保软件以开放的形式开发,并推广和采用通用的界面和框架。
Facebook在文中表示,公司将迎来激动人心的未来,希望Zion、Kings Canyon和Mount Shasta能购分别解决在AI训练、AI推理和视频转码方面不断增长的工作量。Facebook将通过OCP公开提供所有设计和规格,欢迎其他公司的加入以加速基础架构建设的进程,并通过硬件和软件协同设计继续努力改进这些系统。
雷锋网雷锋网
原文链接:Accelerating Facebook's infrastructure with application-specific hardware