人工智能(Artificial Intelligence,以下简称 AI)技术的突飞猛进,使其产业规模也获得高速成长,吸引大批优秀团队跻身其中。一项数据表明:“截至 2017 年 12 月,全球范围内总计 2,075 家与 AI 技术有关公司的融资总额已达 65 亿美元。”作为其中著名的 AI 独角兽企业,地平线(Horizon Robotics)基于其自主研发的 AI 芯片和算法软件,以智能驾驶、智慧城市和智慧零售为主要应用场景,致力于为用户提供高效、开放的应用解决方案,为多种终端设备装上智慧“大脑”。
这一发展目标的背后,离不开地平线雄厚的技术实力,尤其是基于深度学习的 AI 研发能力。随着深度学习训练数据的不断扩容,以及训练过程中的高并发和高 IO 需求,地平线原有 IDC(Internet Data Center,互联网数据中心)机房中的存储系统也逐渐显露出短板。一方面,其旧有的存储系统在低延迟数据访问、海量小文件存取以及扩展性方面都有待提升,已无法弹性应对深度学习所需的海量数据读写;另一方面,其由上一代固态盘、硬盘驱动器(Hard Disk Drive,HDD)硬盘组成的存储设施,也无法提供与强大计算力相匹配的 IOPS(Input/Output Operations Per Second,每秒输入输出操作)能力,形成了系统瓶颈。
为帮助地平线构建高效的深度学习平台,国内领先的公有云服务提供商金山云为之提供了基于高性能云物理主机(Elastic Physical Compute,以下简称 EPC)集群的模型训练计算平台。同时,金山云也联手英特尔,借助英特尔领先产品和技术提供的强大计算、存储和网络性能,为这一深度学习平台构建了基于 Ceph的高性能分布式存储系统。由英特尔® 傲腾™ 固态盘 DC P4800X 与传统 HDD 硬盘组合构建的分层存储能力,使得地平线深度学习平台存储系统在读写速度、存储容量以及成本控制方面都获得了可观的收益。
众所周知,深度学习的训练过程离不开海量数据的支持。谷歌大脑负责人 Jeff Dean 曾在 2017 VB 峰会上表示:深度学习至少要从十万个样本起步。而对于地平线深度学习平台而言,其需要利用的数据量则更为惊人。以面向智能驾驶的算法为例,地平线预测未来自动驾驶汽车每天在路上要产生高达 4 TB 的数据。如此海量的数据,如何为其配备具备高性能计算力,并可实现弹性扩展的数据处理与训练平台,是地平线专家团队亟需解决的问题。
深度学习的动力引擎:金山云 EPC
为了应对深度学习系统日益增长的计算力和存储能力需求,除了自建 IDC 以外,地平线也将目光投向日趋成熟的云服务。通过与金山云开展一系列的沟通与技术交流,地平线认为通用的云服务并不完全契合自身的应用需求。
这其中的原因,固然有数据安全性、信息敏感性方面的顾虑,但更重要的是,通用云服务无法为地平线 AI 应用提供其所需的某些特定性能指标,例如更高的算力和 IOPS。
金山云提供的 EPC 云服务显然更适于地平线的要求。EPC 是金山云基于裸金属服务器理念构建的创新型云服务产品,其可为地平线提供性能卓越的独享物理服务器,通过安全、稳定、便捷的计算、存储服务帮助地平线快速构建高性能的深度学习应用平台。同时,金山云优秀的云网络架构,也能让地平线可以在云环境中方便地配置和使用物理服务器,既享受独享物理服务器带来的高性能,也能方便地获取负载均衡、弹性 IP 等各类网络服务,并可进行便捷的网络部署与管理。
除了向地平线深度学习应用提供强有力的计算力支撑,金山云 EPC另一个重要任务是为其提供高效、可扩展的存储系统。为应对不断扩展的海量训练数据集,地平线利用金山云 EPC 提供的弹性、易扩展能力,构建了基于 Ceph 的高性能分布式存储系统。
作为业界流行的开源分布式存储系统,Ceph 可将文件分割后均匀随机地分散在各个 OSD 节点上,并采用 CRUSH 算法来确定文件的存储位置。通过解析集群的拓扑结构,地平线深度学习应用可以直接计算出文件的存储位置,直接跟 OSD 节点通信获取文件,而无需通过询问中心节点来获取文件位置。
这一“去中心化”的设计,不仅大大地提升了数据访问与处理性能,更有效降低了金山云 EPC 存储集群的管理复杂性,并显著提高了可用性及可扩展性。同时,其采用存储节点与访问节点分离的设计,也使得地平线深度学习应用的 IO 请求上升时,可为其单独扩充访问节点来提高读写性能,从而带来良好的弹性扩展能力。另外,Ceph 还对固态盘,以及分级存储有着良好支持,这也能够有效地提升数据读写效率。
图一 金山云 EPC 集群构成示意图
来自英特尔的存储“魔法师”
在利用深度学习方法研发 AI 芯片和算法过程中,地平线面临着海量的数据处理需求。如前所述,以自动驾驶为例,每天的路面数据量高达 4 TB,这就需要存储系统具有足够的容量。同时,这些数据通常是以几十 KB 大小的小文件形式存在。当地平线需要利用这些数据进行深度学习所需的数据处理与训练时,对存储系统的IOPS 性能有着非常严苛的要求。
囿于磁盘访问速度的限制,传统 HDD 机械硬盘的 IOPS 性能并不理想,在应对地平线深度学习应用所需的小文件高频次读写需求时,往往难以胜任。全固态盘模式固然可以带来高 IOPS 能力,但目前其相对昂贵的价格也构成了巨大的成本压力,限制了存储系统在容量方面的扩展需求。
分级存储是缓解性能与容量这对矛盾的有效手段。在金山云 EPC存储集群采用的分级存储方案中,如图二所示,非活动数据(冷数据)被存放在由 12 块 8 TB 容量 HDD 硬盘组成的存储池中,而活动数据(热数据)则被置放在由 375 GB版本的英特尔® 傲腾™ 固态盘 DC P4800X 构成的缓存区中。
图二 英特尔® 傲腾™ 固态盘 +HDD 构建的分级存储模式
来自英特尔® 固态盘数据中心产品家族的英特尔® 傲腾™ 固态盘DC P4800X 是基于创新的英特尔® 3D XPoint™ 技术,以及一系列先进系统内存控制器、接口软硬件构建的全新存储产品。与传统 NAND 介质的固态盘相比,其在 IOPS、低延迟以及稳定性方面都有着突破性的提升。一项测试数据表明,英特尔® 傲腾™ 固态盘DC P4800X 的 IOPS 最高可达 500,000,同时读取响应时间低于30 微秒,并可承受最高 2 GB/秒的随机写入压力,因此非常适用于大数据、高并发的应用场景。
英特尔® 傲腾™ 固态盘在耐用性上也有出色表现,英特® 傲腾™ 固态盘 DC P4800X 的每天写入次数(Drive Writes Per Day,DWPD)高达 303,有力地保障了地平线深度学习系统的有效生命周期。
当地平线深度学习应用对数据进行访问和操作时,Ceph 分布式存储系统的内部处理器将优先读写缓存区中的数据,如果数据不在缓存区中,Ceph 会通过请求命中算法、缓存刷写算法、缓存淘汰算法等方式将数据从存储池中“提取”到缓存区中。通过这一方式,既可使热数据被高效地访问和操作,缩短数据的访问时延,也能以更合理的成本承载地平线深度学习应用所需的海量数据。
这一分级存储方案同样也被地平线用于 Journal。Journal 是Ceph 分布式存储系统最重要的安全机制之一,一旦发生停电、宕机或其他意外事件时,Ceph 可利用 Journal 进行系统重建。这样的特性,意味着 Ceph 会事无巨细地将数据记录到 Journal 中,因此 Journal 的 IO 请求非常密集,而采用英特尔® 傲腾™ 固态盘来承载 Journal,无疑将使 Ceph 的读写性能获得显著提升。
来自地平线的反馈表明,与上一代 S ATA 固态盘产品,例如英特尔® SATA 固态盘 S3510(480 GB 规格)相比,英特尔® 傲腾™DC P4800X(375 GB 规格)能实现非常可观的性能提升。而与采用了 NVMe 接口规范的英特尔® 固态盘 DC P3700(400 GB 规格)相比,其性能提升也很显著,可为地平线深度学习应用带来强劲的存储能力支撑。
结语
数据与算力、算法,并列为 AI 的三大核心要素,这意味着 AI 领域的数据科学家、应用开发者,以及使用者,都需要耗费较多的精力在数据处理上。一个高效、强力的存储系统无疑将有利于提升整个 AI 系统的研发和应用效率。通过金山云 EPC 及英特尔® 傲腾™固态盘等先进产品与技术的引入,地平线深度学习应用的总体效率获得了大幅提升,有力地推动了地平线基于深度学习的芯片与算法的研发进程。
在未来,地平线、金山云和英特尔三方还将继续开展更深层次的技术合作,将更多先进产品与技术纳入到深度学习研发中去,例如引入英特尔为提升存储系统缓存性能而开发的专项技术——英特尔®高速缓存加速软件(Intel® Cache Acceleration Sof tware,英特尔® CAS),该技术已在大量的实践部署中被证明可进一步提升分级存储的效能。同时,金山云 EPC 在地平线深度学习系统上的成功应用,也为裸金属服务这一新兴的云服务模式在 AI 研发领域中的落地积累了宝贵的经验,为云服务如何高效地助力 AI 研发提供了有益的范例。
作为一家年轻的创业企业,地平线从成立伊始就因其在 AI芯片与算法领域方面的超前研究而备受瞩目,成为投资人眼中的宠儿。2017 年,地平线完成了由英特尔旗下英特尔®投资(Intel® Capital)领投的近亿美金 A+ 轮融资。对于此项投资,英特尔全球副总裁丹尼尔•麦克纳马拉尔(Daniel McNamara)表示:“地平线汇聚了一批经验丰富的人工智能人才,他们在自动驾驶和人机交互界面等应用领域尤为专业。英特尔的 FPGA 结合地平线的开放式技术融合模式,将为客户提供一个既灵活又低功耗的计算平台。”
·延伸阅读:《重新构想数据中心的内存和存储》