您的位置 首页 系统

自动驾驶技能中FPGA面对的应战与实践

自动驾驶技术中FPGA面临的挑战与实践-人工智能技术是自动驾驶的基础,算法、算力和数据是其三大要素。本文探讨的就是其中的“算力”。算力的高低,不仅直接影响了行驶速度的高低,还决定了有多大的信息冗余用来保障驾驶的安全。

人工智能技能是自动驾驭的根底,算法、算力和数据是其三大要素。本文讨论的便是其间的“算力”。算力的凹凸,不只直接影响了行进速度的凹凸,还决议了有多大的信息冗余用来确保驾驭的安全。算力最直观地表现在硬件上,而轿车对自动驾驭的控制器有特别的要求。

除了对一般硬件的本钱、体积分量、功耗的要求外,还要求:供给满意的算力,确保行进速度和信息冗余。满意苛刻的车规规范,比方超宽的温度规模,-40℃ – 85℃。归纳来看 FPGA 是合适自动驾驭高速核算的技能。

自动驾驭技能中FPGA面对的应战与实践

实践中遇到的应战是,多种多样的加快需求和有限的硬件资源的对立。需求的来历既包含深度学习前向估测、也包含根据规矩的算法。硬件资源受限包含了:FPGA 资源受限和内存带宽受限。

FPGA 资源的有限性表现:峰值算力受限:有限的 FPGA 资源约束了核算并行度的进步,这约束了峰值算力。支撑的算子品种受限:有限的 FPGA 资源只能包容有限个算子。内存带宽受限表现在:内存数据传输在核算总时刻中占有了不行疏忽的时刻。极点状况下,对某些算子进步并行度后,核算时刻不减。为应对这些应战,咱们在实践中提取了一些有利的经历,总结出来与咱们同享。

算法工程师选用浮点数 float32 对模型进行练习,产出的模型参数也是浮点型的。然而在咱们运用的 FPGA 中,没有专用的浮点核算单元,要完结浮点数核算,价值很大,不行行。运用 int8 核算来迫临浮点数核算,也即完结量化核算,这是需求处理的第一个问题。

<>符号表明四舍五入,两个<>把矩阵A和B的元素线性映射到区间[-127, 127],在此区间完结乘法和加法。最终一个乘法把整型成果还原成 float32。在量化前,需求完结1000000次 float32 的乘法。量化成 int8 后,需求完结1000000次 int8 的乘法,和30000次量化、反量化乘法。

自动驾驭技能中FPGA面对的应战与实践

因为量化和反量化占的比重很低,量化的收益就等于 int8 替代 float32 乘法的收益,这是十分显着的。

这种办法的优点是,每次核算既能充分利用 int8 数据的表征才能(127总能被运用到),不存在数据饱满的状况(一切元素都被线性映射),确保单次核算的精度最高。能够直接承受浮点练习的模型,保持准召率。Resnet50 测50000张图片,Top1 和 Top5 准确率下降1%。在 Valet Parking 产品用到的多个网络中,没有观察到准召率下降。缺陷是,FPGA 核算有截断差错,通过屡次累计,数值核算差错最大均匀能够到达10%。关于一些练习不完全成功的模型(只在有限评测集上作用比较好),准召率下降显着,成果不行控。

已知量化标准:静态量化,假如上面的式子变成通过线下核算,量化标准被固化为 scaleA 和 scaleB,表明四舍五入,而且约束在[-127, 127]之内。这种办法的优点是节省了 FPGA 资源。能够很方便地选用跟量化估测共同的练习办法,估测和练习核算数值差错很小,准召率可控。缺陷是,要求模型练习选用共同的量化办法。不然,核算差错很大,不行承受。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/340121.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部