你知道世界上第一台自动驾驶汽车出自哪一年吗?
早在 1986 年,一辆由卡内基梅隆大学(Carnegie Mellon University)开发的雪佛兰厢式货车,可以说是无人驾驶汽车的先驱了。
虽然样子看起来很粗糙,但是货车已经有自动驾驶的关键系统,比如安装了摄像机和激光测距仪,货车内部还有好几台超级计算机。
40 年过去了,如今市面上已经有大量商用的辅助自动驾驶的汽车了,但离我们理想中的完全自动驾驶还有一点距离,所以即使是现在,自动驾驶技术依然很有很多成长空间。
那自动驾驶技术背后到底涉及什么 IT 技术呢?又有哪些技术痛点?今天就来好好聊一聊。
一、自动驾驶研发背后所需的技术
什么是自动驾驶?
我们人在开车的时候,需要用眼睛看清周围路况,大脑再根据看到的路况做出相应的决定,做出决定后,人体的四肢来完成这个动作,从而控制汽车的行驶。
那自动驾驶作为一个替代人类驾驶汽车的技术,它也是需要完成我们人类所做这些事情。
自动驾驶汽车有三大系统: 「 感知-决策-执行 」,分别对应人类的「 眼睛-大脑-四肢 」三种人体部位。
事实上,自动驾驶也是有等级区别的,美国汽车工程师协会(SAE)对自动驾驶技术定义了六级自动化级别。
可以说 L2 级到 L3 级是一个明显的分界点:从辅助驾驶向自动驾驶过渡。
自动驾驶等级与算力、数据量的关系
自动驾驶技术不仅需要强大的算力,也需要容纳海量数据的存储系统。自动驾驶等级越高,意味着所需要的算力、数据量是越多的。
不同自动驾驶的级别,所需要算力和数据量的统计图,如下:
可以见得, 自动驾驶级别越高,数据量和计算力都是暴涨的 ,这就需要 IT 服务提供商具备强大的计算和存储海量数据的能力了。
二、自动驾驶 AI 算力解决方案
自动驾驶技术研发基于大量的仿真测试、深度学习,需要强大的计算能力。
AI 计算技术随着产业升级也是随之演进的,目前整个AI 计算技术的演进历程如下图:
GPU 目前已成为 AI 训练和推理计算最主流和成熟的计算加速方案。但是在面对上亿级别参数规模的 AI 模型训练所需算力要求,仅依靠单台 GPU 服务器已加无法满足超大规模 AI 模型训练的算力要求, 多机多卡 GPU 分布式训练成为必然选择 。
GPU 分布式训练优化更像是一个 IT 系统工程,它涉及到计算、网络、存储硬件层面,也包括数据并行、模型并行、GPU 参数同步通信的算法和软件实现层面。
GPU 分布式训练最主要的性能瓶颈关注点:「通信墙」 和 「IO墙」 。
这次谈谈我关注的戴尔科技,戴尔科技在 IT 工程领域积累了 20 多年的技术积累, 戴尔科技虽然不是做自动驾驶的,但是戴尔科技是支持自动驾驶研发的。
自动驾驶是边缘计算的典型场景,这就需要强大的边缘计算服务器。目前 NVIDIA 认证的企业级边缘服务器一共有51款, 其中仅戴尔一家就占据了 31 款,高居榜首。
戴尔科技在 AI 计算领域提出了很多领先行业的解决方案,所以这次揭秘一下戴尔科技是如何解决 GPU 分布式训练两大性能瓶颈。
戴尔科技 AI GPU 分布式训练解决方案
针对 AI GPU 分布式训练,戴尔科技从 IT 系统工程的角度,结合计算、网络、存储硬件优化以及框架软件层面的优化,从端到端角度为用户提供整体的 AI GPU 集群架构设计与分布式训练最佳实践。
接下来,重点看看戴尔科技的单节点计算性能优化,以及是如何打破 「通信墙」 和 IO墙」的。
单节点计算性能优化
GPU 服务器单机性能优化是集群性能优化的基础,针对 AI GPU 计算场景要求,戴尔科技近几年发布了多款专门针对 GPU 计算设计和优化的加速服务器。
其中,有两款专业优化的 GPU 服务器: PowerEdge R750xa 和 PowerEdge XE8545 ,这两款服务器都是 NVIDIA 认证的企业级边缘服务器。
PowerEdge XE8545
PowerEdge XE8545 是一款为优化最新行业技术而打造的 2 路 4U 系统,可对计算性能进行大幅加速。它适用于开发、训练和部署先进的机器学习模型,为复杂的高性能计算工作负载加速,或者托管加速的虚拟化服务。
XE8545 架构设计简洁且高效,CPU、GPU、IO 之间尽量直连,充分保障数据通信以及 IO 传输性能,还有更多具体的特性,具体可以去官方详细了解:基于 NVIDIA 处理器对 PowerEdge 服务器的支持。
下图为 PowerEdge XE8545 内部架构图以及外观。
实际落地时,PowerEdge XE8545 部署的 GPU 分布式训练的性能如下图:
使用 6 台 Dell PowerEdge XE8545,24 卡 A100 构建的 GPU 集群,分布式训练性能实现 88%-96% 的线性加速比。
PowerEdge R750xa
PowerEdge R750xa 是一款 2U 空间支持支持 4 张双款 GPU 的加速服务器,可为要求最为苛刻新兴工作负载和高密集 GPU 工作负载而设计提供出色的性能。
R750xa 支持丰富的 GPU 选项,支持多大 8 个 NVME SSD 硬盘,提供 NVME 硬件 RAID 卡保护机制,还有更多具体的特性,具体可以去官方详细了解:基于 NVIDIA 处理器对 PowerEdge 服务器的支持。
实际落地时,Dell PowerEdge R750xa 构建 GPU 构建的计算集群的效果如下图:
Dell PowerEdge R750xa + A100 GPU 构建的计算集群, 2 台和 4 台 R750xa 进行分布式训练,计算性能分别为单台服务器的 1.96 倍和 3.63 倍 。
打破 「通信墙」 和 IO墙」
为了打破 AI GPU 分布式训练过程中的「通信墙」 和 IO墙」,戴尔科技分别用了两项黑科技解决了这两个性能瓶颈:
三、自动驾驶海量数据解决方案
自动驾驶行驶过程中,会产生大量的数据。
这些数据都是研发依赖的数据,而且数据的文件数量可达到亿级别的数量。
那面对自动驾驶产生的海量数据,如何存储、管理、使用、防护呢?有什么好的解决方案呢?接下来就从这四个方面,带大家看看戴尔科技的解决方案。
戴尔科技海量数据存储解决方案
针对自动驾驶领域的海量数据存储的场景,戴尔科技提出 Dell PowerScale Isilon 存储解决方案。
这套解决方案深受世界各地的汽车行业的认可,排名前 20 位的汽车供应商中有超过 70% 的供应商使用 由 OneFS 操作系统提供支持的 Dell Isilon(存储系统) 。
戴尔科技的这套存储解决方案,有四大优势:
如何管理数据?
戴尔科技有一套专为自动驾驶研发定制的元数据管理平台(DMS),这是一个软件平台,它是可以针对自动驾驶管理所有元数据。
如何并行访问同一份数据?
戴尔科技的存储系统是可以 多协议并行访问 的,比如支持 IPv4 、 IPv6、SMB、FTP、NFS、NDMP、HDFS、HTTP、REST 等等。
无论使用哪一种协议把数据写到存储系统,都可以使用其他协议从存储系统里读取数据,这样不同的工作负载就只需要读写同一个存储系统,可以极大地简化和整合工作流,提高灵活性。
如何对数据做好安全防护?
自动驾驶研发的数据非常宝贵,并且带有敏感的地理信息。戴尔科技的存储系统在数据安全方面做了很多支持: 支持对数据的审计、多租户功能、权限控制、快照功能、WORM(一写多读)、防病毒、防勒索 。
四、戴尔科技端到端 AI 基础解决方案
戴尔科技 AI 解决方案的全景图如下,戴尔专注于 AI 平台就绪解决方案和 AI 基础架构,官方也提供了具体的解决方案,详见:
最后总结一下,戴尔科技自动驾驶研发基础架构解决方案的三大特点