NVIDIA
作者NVIDIA·2022-11-23 14:21
marketing·NVIDIA英伟达

车企边缘计算应用场景探索解析

字数 3547阅读 472评论 0赞 0

文章摘要:

随着企业数字化转型不断推进,业务场景层出不穷,容器技术的不断推广,智能制造的内在驱动,车企正站在行业的风口,技术将首当其冲。车企技术革新相对保守,但也热衷于新技术的研究。目前云计算不能满足实时性要求高的业务需求,而边缘计算将云计算下沉到靠近终端设备,弥补了云上网络延迟、拥塞及服务质量下降的缺点。本文就和大家一起共同探索边缘计算的应用场景,抛砖引玉,希望对同行有所帮助。

一、前言

工业作为国民经济的核心要素一直为各国政府重视,特别是随着云计算、物联网、大数据、人工智能、5G及边缘计算等技术的发展,世界各国都加快了工业数字化转型的步伐。从德国“工业 4.0”战略,到美国“制造业复兴”计划,到中共中央指出要加快 5G 网络、数据中心等新型基础设施建设进度,边缘计算作为云计算的延伸,在电信运营商、公有云厂商和各行业领域有着极大的市场需求,是推动行业数字化转型的重要技术。现在结合车企行业特征,对边缘计算的应用场景做一些浅薄探索,希望本文能起到抛砖引玉的作用。

二、边缘计算

Gartner 预测,到 2025 年,边缘计算将有超过万亿的市场规模,处理 75%以上的各类业务数据。边缘计算是相对云计算而言的,云计算是集中化的,离终端设备(如摄像头、传感器等)较远,对于实时性要求高的计算需求,把计算放在云上会引起网络时延变长、网络拥塞、服务质量下降等问题。而终端设备通常计算能力不足,无法与云端相比。为解决上述问题,通过在靠近终端设备的地方建立边缘计算节点,打通“云-边-端”协同能力,将云端计算能力延伸到靠近终端设备的边缘计算节点,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。

2.1云边协同

边缘计算如果缺少云边协同技术,其作用是有限的,所以我们广义的边缘计算是具备云边协同概念的。云边协同是云计算与边缘计算的互补协同,边缘计算模型的提出,对云计算集中式模型的不足提供了新的解决思路,是适应技术发展需求的产物,但不能完全取代云计算,两者是协同运作的;通过云和边缘的紧密协同可以更好地满足各种应用场景的需求,从而放大两者的应用价值。

实现种类很多,典型的有如下几种:

  • 通过云边协同技术,实现云上部署与下发,边上执行。目前边缘计算社区,比如华为的KubeEdge、腾讯的 SuperEdge,阿里的 OpenYurt 等边缘计算框架都是这种方式实现的。
  • 通过SD-WAN设备,以环网专线方式接入云计算中心网络实现。这种方式一般是公有云厂商使用比较多,将算力、平台等下沉到边缘集群中,边缘集群与云上集群通过SD-WAN设备实现专线互联,自然就实现了云边协同了。
  • 通过5G和MEC技术,实现移动边缘技术。这种一般电信运营商正在推广的。将 MEC 边缘云作为发展 5G 2B/2C 高价值业务的重要战略,MEC 是电信运营商“云网边端业”融合协同关键环节。

2.2 GPU容器

由于边缘计算是云端功能下沉的体现,云端目前都基本是基于Kubernetes和Docker方式实现业务容器化和编排部署的。同样,基于容器技术来实现边缘计算也更容易实现云端调度,边端执行。如果我们抓住边缘计算的本质,就是通过分布式、高可用、业务易部署与维护,那么容器化就是一个很重要的实现数字化改造的核心,如果碰到不好容器化的场景,也可以基于KubeVirt来实现用容器方式运行虚拟机,将业务部署在虚拟机中。

对于通用的 x86 CPU 架构,大家都知道容器化技术是基于 Linux Control Groups(CGroups)实现的,那对于需要容器做 AI 运算的场景,就需要 GPU 服务器支持,比如Nvidia DGX/HGX计算平台,边缘计算如 EGX 认证服务器,更小型的工作现场如 JETSON嵌入式系列。

众所周知,Kubernetes 平台通过设备插件框架提供对特殊硬件资源的访问,如 NVIDIA GPU、DPU等异构计算设备。然而,使用这些硬件资源配置和管理节点需要配置多个软件组件,如驱动程序、容器运行时或其他依赖库,这是困难的和容易出错的。比如:一般的设备驱动只有一个kernel object(ko)文件,只要在宿主机上安装驱动,ko文件就会自动被载入内核供容器使用。但是Nvidia的GPU驱动除了ko文件之外还有shared object(so)文件,是用户层的程序,需要在容器内程序运行时被动态加载。并且,ko文件的版本必须与so文件版本一摸一样。要在容器中找到so文件,我们可以把so文件打包到镜像里,但是在生成镜像的时候我们并不知道宿主机器的GPU驱动是什么版本的,所以无法预先打包对应版本的so文件。另一个方法是运行容器的时候,自动找到宿主系统中的so文件并挂载进来。但是so文件有很多可能的安装路径。这时候nvidia-docker就出现了,为我们把这些细节问题隐藏了起来。使用起来非常的简单,把docker命令换成nvidia-docker即可。

此外还有一个环节需要考虑:CUDA库和cuDNN库。CUDA库用来做CUDA架构下的数值计算,它包含编译时需要的头文件以及运行时需要的so文件。cuDNN是专门为深度学习设计的数值计算库,也是包含头文件与so文件。它们都有很多版本,并且编译时的头文件版本必须与运行时的so文件版本一致。

如果不用容器,这两个库很麻烦,自己编译好的程序可能拿到别人的机器上就因为版本不一致而不能用了。用容器就不会有这个问题,在生成开发镜像的时候我们把CUDA和cuDNN库以及所需的工具都打包了进去,在生产镜像也打包了对应版本的so文件,不会出现版本不一致的问题。运行GPU生产镜像的时候,宿主机器只用安装Nvidia驱动就可,不需要安装CUDA或者cuDNN。

2.3 GPU Operator

为了更好的方便用户使用GPU, Nvidia 公司开发了 GPU Operator ,利用了 Kubernetes 平台的 Operator 控制模式,方便地自动化集成管理 GPU 所需的 NVIDIA 设备组件,有效地解决了上述GPU设备集成的痛点。这些组件包括 NVIDIA 驱动程序(用于启用CUDA )、用于GPU 的 Kubernetes 设备插件、NVIDIA Container 运行时、自动节点标签、基于 DCGM 的监控等,同时Operator无缝集成了GPU更细粒度的使用方式,例如多实例切分(MIG)或基于时间片的切分(Time Slicing),用于更好的提高GPU的使用效率。

NVIDIA GPU Operator 的不仅实现了设备和组件一体化集成,而且它管理 GPU 节点就像管理 CPU 节点一样方便,无需单独为 GPU 节点提供特殊的操作系统。值得关注的是,它将GPU各组件容器化,提供 GPU 能力,非常适合快速扩展和管理规模 GPU 节点。当然,对于已经为GPU组件构建了特殊操作系统的应用场景来说,显得并不是那么合适了。

2.4 硬件加速

为实现边缘计算提速和提高资源利用率,我们主要可以从网络传输速度、数据传输、GPU虚拟化等方面考虑,利用硬件来加速。

网络传输速度方面,我们可以采用 5G 网络,或者可在设备中集成 5G 模组,以灵活的适配各类应用场景;在端侧集成智能加速模块或其他专用芯片以提升推理能力及实现如压缩等特定功能,如集成华为 MH5000 5G 模组、Atlas200 AI 加速模块或海思 IPC 芯片等。

数据传输量方面,我们可以利用ASIC、FPGA、CPLD等硬件专用处理器,并配合软件优化,比如只提取图像中的局部感兴趣的图像(ROI),还可以进行一些图像压缩后再复原。另外高流量的场景,还可以借助DPU 智能网卡使用其板载的处理器,来执行加密/解密、防火墙、TCP/IP 和HTTP 网络处理等。

GPU资源利用方面,我们可以采用GPU虚拟化技术,提高单个slot卡,可支持多个作业同时运行。

三、边缘计算场景探索

接下来对车企行业涉及到的边缘计算应用场景简单探索一下。

目前使用的较多的是可以容器化的场景,比如:车间制造执行系统(MES),它实现计划、调度、质量、设备、生产、能效等管理功能;企业资源计划系统(ERP),它实现供应链、物流、成本等企业经营管理功能;数据采集,需要在边缘端容器化类似MQTT、TDengine等和数据采集相关的应用。

还有一种是需要延迟低,实时交互的场景,比如:车间安全巡检,利用边缘计算和AI图像识别等技术;AI相关的一些场景,比如智能质检测、数字孪生、智能网联与自动驾驶场景。

查看原文内容:https://www.talkwithtrend.com/Article/264049

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广