svd::compute
自2014年以来,Microsoft一直是Open Compute Project的成员,向该项目捐赠了其Azure数据中心的许多规范。 微软在这里开发其Olympus服务器和Sonic网络软件。 因此,参加年度OCP峰会总是很有趣,以了解开放硬件设计领域中正在发生的事情,并了解Azure底层基础结构的哪些方面正在向世人展示。 这是我今年发现的。
介绍Zipline项目
与大多数本地系统相比,像Azure这样的公共云存在一系列非常不同的问题。 他们必须在其网络中移动数TB的数据,而不会影响系统性能。 随着越来越多的用户使用其服务,他们必须在不支持更高带宽连接的链接上在网络中移动更多数据。 这是一个大问题,有三种可能的解决方案:
- 微软可能会花费数百万美元在其数据中心中增加新的连接性。
- 它可能会影响其服务的性能。
- 它可以使用软件来解决问题。
借助Microsoft Research和Azure的资源,Microsoft做出了明显的选择:它提出了一种新的压缩算法Project Zipline 。 当前在Azure中使用的Project Zipline提供的压缩率是常用的Zlib-L4 64KB算法的两倍。 这是一个巨大的提升,几乎不需要或只需很少的资本成本就能将带宽和存储容量提高一倍。 微软已经在自己的网络和硬件上证明了自己的价值,并向OCP捐赠了Zipline算法,供任何人实施和使用。
但是Zipline项目不仅仅是软件。 为了以必须的速度工作,它需要作为硬件来实现。 Azure硬件基础架构总经理Kushagra Vaid向我详细介绍了Zipline及其工作原理。 该项目首先使用来自多个工作负载的数据来分析来自Azure的许多内部数据集。 尽管数据不同,但是底层二进制文件具有相似的模式,这使Microsoft开发了一种通用压缩算法,该算法不仅可以处理静态数据,还可以处理流数据。
通过在硬件中实现Zipline的模式匹配,Project Zipline可以实时匹配超过64,000个块模式。 运行在软件中,只能处理大约1,000个。 有了更多可以被字典指针识别并替换的模式,所产生的压缩将更快,更有效。
共享Verilog
一旦在硬件中实现了算法,就很难与OCP等组织共享该算法。 但是微软正在采用Zipline一种有趣的新方法。 而不是发布代码,而是共享Azure Zipline实现的Verilog RTL文件 。 使用这些文件,任何人都可以在硅片中实现Zipline,既可以作为对现有网络硬件的扩展,也可以在像Azure的Project Brainwave加速器这样的FPGA中实现。
Vaid说:“也许更深的缓冲区可以提高速度或压缩,或者替代布局可以加快流处理。” “更多的眼睛,更多的想法,更多的创新。” 他已经在考虑Zipline的实现位置,“它可能会打开档案系统,服务器中的加速器甚至是网络或存储结构中存储数据的位置。 它将释放CPU周期。”
最后一点很重要:现代云体系结构正在从其原始的同质设计转变为更加异构的事物。 自定义芯片已不再是软件中的所有工作,而是变得越来越重要。 来自Facebook基础架构团队的OCP相关公告是加速器的通用模块设计,允许标准主板根据需要插入不同的加速器。 像Azure这样的云可以通过具有标准的计算母板,插入特定的加速器来进行机器学习,加密以及当然用于数据压缩来降低成本。
使用Cerberus保护云硬件
微软公司最有趣的OCP项目之一是Cerberus,它是一种分布式安全系统,它向构成现代云数据中心的各种设备添加了坚硬的信任根源( 类似于Azure Sphere安全IoT平台中使用的信任根源)。 借助Cerberus,Microsoft可以确保仅在其数据中心中安装受信任的硬件,更重要的是,它可以确保其供应链中的硬件不受篡改。
微软已经在其OCP Denali SSD棒中实现了Cerberus,并且正在与其他OCP成员(包括英特尔)合作,将其引入云数据中心的其他组件。 Vaid指出,现代系统管理技术存在交叉之处,因为Cerberus可以由策略驱动。 设备保留其私钥,私钥是自动生成的。 与世界共享的全部是公开密钥,该公开密钥在制造硅的那一刻发布。
奥林巴斯计划用于规模化机器学习
奥林巴斯也上了台,但是在OCP上展示的很多开发成果都不来自微软。 取而代之的是,这些公司在每个Azure数据中心中构建了成千上万个白盒服务器。 伟创力在微软的展台上展出了一些超薄型的Olympus系统,但最有趣的发展也许来自浪潮。
浪潮可能是您从未听说过的最大的计算机硬件公司,在IDC排名前三的服务器公司中,它将公共云硬件运送到一些最大的服务中。 它正在开发一个AI负载的计算硬件,它基于一个带有4个插槽的Olympus系统和一个附加的16-GPU盒(Inspur称之为JBOG:只是一堆GPU)。 它旨在处理深度学习工作负载,具有80个CPU内核和大量内存。 尽管最初的双机箱系统功能强大,但是当您将两个双机箱系统互连以提供160个内核和32个GPU时,事情将变得非常有趣。
像这样的平台是现代云的未来,它将提供要求苛刻的深度学习工作负载所需的计算。 通过将GPU加速器从主板上移到它们自己的机箱中,您可以获得更灵活的实现,可以为正在训练的模型平衡CPU和GPU,并可以选择重新配置未使用的资源来处理大量不那么复杂的推理任务。 ,就像Azure的认知服务中的那些一样。
从Microsoft在OCP中的工作可以明显看出,Azure中软硬件之间的界限正在模糊。 借助Project Zipline等技术,我们看到的东西现在已经变成了软件,而现在变成了硬件。 通过在基于Olympus的商品硬件中添加FPGA和专用加速器,Azure提供了可以经济地支持日益复杂的工作负载的服务器。
svd::compute