外链论坛

 找回密码
 立即注册
搜索
查看: 87|回复: 6

直播回顾丨百度ACU软硬件结合优化的实践经验分享

[复制链接]

3121

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99108633
发表于 2024-7-9 14:53:36 | 显示全部楼层 |阅读模式

百度ACU(Apollo Computing Unit)是Apollo面向量产的自动驾驶车载计算单元,按照区别需求场景的计算能力需求,分为多个系列制品。ACU-Advanced是行业首创的自主泊车制品Apollo Valet Parking专用车载计算平台,日前已量产下线用于客户的量产车型中。

关闭
观看更加多
更加多
退出全屏

视频加载失败,请刷新页面再试

刷新

ACU-Advanced软硬一体的处理方法

能够支持5路摄像头,12路超声波雷达,预留毫米波雷达和激光雷达接口;

基于Xilinx ZU5(FPGA)设计,适配百度PaddlePaddle深度学习框架;

全面安排AUTOSAR,全车规基本软件研发

严谨的软硬件安全合规设计,全面满足AVP场景需求(ASIL-B);

100%全车规元器件,抗冲击震动,耐电磁干扰,全面胜任车载环境;

-40℃~85℃超宽工作温度,自然风冷需风扇或水冷;

设计流程,供应链和生产管控基于IATF16949质量管理体系。

为了让客户、合作伙伴以及研发者能够更加深入认识百度ACU(Apollo Computing Unit),这次公开课邀请了百度ACU核心技术团队的工程师,为大众准备了4期公开课直播。今天为大众送上第二期直播内容回顾,倘若错失了直播,那样这次的直播回顾你必定不可错失。阿波君给大众整理好了笔记,快来一块学习吧!

上期咱们大众整理了直播回顾丨百度ACU如何满足自动驾驶量产需求期公开课由百度智能汽车事业部底层软件架构师——张扬为咱们讲解《百度ACU软硬件结合优化的实践经验分享》

ENJOY THE FOLLOWING  

Apollo计算单元重点讲的是计算,Apollo自动驾驶对算力的需求,由需求引导至为么选择AVP这款芯片,稍后会讲到技术架构方便大家理解,第四部分便是主题:在有效计算方面做了软硬件结合的实践,最后是总结。

自动驾驶的计算种类包含神经网络、图像处理、3D重构与VSLAM和矩阵操作。自动驾驶的实现,依赖各样各样的算法。

算力与帧率不必然成正比,有以下几种原因首要是Elementwise算子带宽受限,其次是深度卷积算子是不是被优化,最后是是不是所有算子被加速。极端状况下,占少于1%计算量的算子,计算时间超过50%,明显影响帧率。

简单来讲咱们对硬件的需求是:算力强、带宽高、算子齐备、功耗低、符合车规。

用什么芯片能满足自动驾驶的计算,能适应区别计算需求呢?咱们选择了一款SOC——Xilinx ZU5,里面包含了FPGA,首要是比较灵活,有利于算法迭代;其次供给足够的算力,保持行驶速度,不是像蜗牛那样缓慢前行;而后便是必须满足85℃环境下正常运用的严苛车规需求。另一点看中的便是基于FPGA的SOC的靠谱性能,广泛应用于靠谱需求比较高的行业,例如说通信行业、军工行业、航空航天行业,用于汽车行业。自动驾驶最担心的便是安全问题,我们致力于保准自动驾驶的安全。

从软件来看,首要研发加速算子,使芯片拥有加速的能力;而后有些驱动的程序来驱动,负责管理;最后基于PaddleLite做的深度学习模型编译及前向推测框架,另一是传统的CV算法。从硬件的方向来看,绿色的部分表率FPGA,首要有一个命令解析的模块,从ARM经过寄存器下发的命令解析出来,而后下发给相应的计算单元,例如说CNN、图像处理、SLAM等,由于深度学习和定位要并行,因此设计了两个同期拜访内存的通道,能够保准实时有效的运算。ARM经过DDR掌控器和内存进行通信。

重点的计算都是在深度学习,用的都是CNN卷积神经网络,而这里过程中,CPU上对Paddle模型进行解析、算子合并、模型编译、内存开辟、部分算子计算,经过驱动程序对FPGA寄存器下发命令并管理共享的DDR内存,对FPGA而言,必须解析命令、掌控规律、数据搬运、量化单元、算子加速以及管理内存的模块DMA。软硬结合的最后目的加强感知、定位、环境建模、规划掌控的处理帧率,保准数值精度和准召率。技术手段第1经过加强FPGA的算力,第二是加强FPGA对计算的覆盖度,第三是量化训练及计算仿真工具

第1点是进行了8bit的量化训练,与众区别的是供给跟FPGA计算相匹配的量化训练工具,实践证明,8bit计算后准召率下降,同期为了保准算法能够运用供给了FPGA计算仿真器,计算结果保准与bit对齐。

第二点是利用了PFGA这款DSP的特殊结构,这个计算单元能够同期计算一个27位✖27位的,那咱们是8位✖8位的,就把一个乘数高8位,一个乘数低8位,这般乘出来的结果是第1个的乘积和第二个的乘积自然便是掰开的。针对其他的咱们都采用选定化计算,首要保准与浮点计算相比匹配度高于98%,在这种前提下,计算过程非常多咱们充分理解每一个计算环节,采用选定化要保存多少位来进行计算,每一个环节都采用变长计算,保准计算最有效

第三点定义广义算子,当某些计算类型比较类似,就抽象成一个计算形式。这般能够复用FPGA资源,凡是被加速的算子能够得到足够多的资源保准算力。

第四点是在计算中遇到的固定连接,倘若不做特殊处理,算完一个后必须把结果读到内存,下一次计算的时候必须从内存里取出来再次加工,这种存入读取的方式费时、效率低,此时能够把这些当成一个计算来进行处理,像之前说的SDK对算子进行融合,减少带宽占用。

还有一种便是针对参数很大的卷积,要经过算子分裂,分裂成小卷积后再计算,能有效地降低FPGA片上存储资源的占用。

针对图像采集,采用R核图像驱动,共享内存实现0拷贝,明显降低了CPU占用和内存宽带,加强了图像帧率的稳定性。

自动泊车有两种业务,一种是基于高精地图的PAVP,一个是基于学习建图的HAVP,FPGA加速算子,随着应用场景PAVP/HAVP切换,使得每一个场景都达到最高帧率。

自动驾驶的计算需求对承接计算加速来讲具有不确定性,在迭代的过程中,有些算子远预期的效果,并非是只处理深度学习就能处理的问题,因此选取运用FPGA来做,选择ZU5芯片,这个研发是比较困难的。

拓展:底层软件包含模块形成——盖亚层,用来屏蔽硬件的差距,便是此刻用的ZU5芯片,将来可能会用TDS,期盼在硬件迁移的过程中,上层应用软件不出现改变,能够直接迁移。硬件迁移的过程被盖亚层所屏蔽掉。

今天触及到模块有定制算子、硬件模式管理、传感器同步/预处理、DL/DV加速,还有硬件仿真器,用于X86等环境。

以上便是咱们讲解的百度ACU软硬件结合优化的实践经验更加多系列主题讲解,请连续关注Apollo研发者社区。

点击文案左下角『阅读原文』

可观看直播回放





上一篇:【Chrome插件】Washbaidu:优化百度搜索界面,轻度移除宣传
下一篇:怎么样应对百度清风算法 ,优化软件下载网站标题?
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-8-22 09:24:11 | 显示全部楼层
我完全赞同你的观点,思考很有深度。
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-8-25 02:22:04 | 显示全部楼层
你的话语如春风拂面,让我感到无比温暖。
回复

使用道具 举报

3132

主题

3万

回帖

9996万

积分

论坛元老

Rank: 8Rank: 8

积分
99968646
发表于 2024-9-27 21:59:31 | 显示全部楼层
论坛是一个舞台,让我们在这里尽情的释放自己。
回复

使用道具 举报

3071

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158927
发表于 2024-10-19 19:58:24 | 显示全部楼层
交流如星光璀璨,点亮思想夜空。
回复

使用道具 举报

3047

主题

3万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065850
发表于 2024-11-12 13:33:34 | 显示全部楼层
回顾历史,我们感慨万千;放眼未来,我们信心百倍。
回复

使用道具 举报

3061

主题

3万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99138982
发表于 4 天前 | 显示全部楼层
你的话语如春风拂面,让我心生暖意。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 22:29 , Processed in 3.824808 second(s), 39 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.