77百科网
当前位置: 首页 生活百科

自动驾驶为何陷入技术僵局(不要太较真自动驾驶算力)

时间:2023-08-03 作者: 小编 阅读量: 4 栏目名: 生活百科

实现此运算操作的硬件电路单元,被称为“乘数累加器”。MAC指令的输入及输出的数据类型可以是整数、定点数或是浮点数。在WCS下,温度为125度,电压0.72V,此时频率会降低到1GHz,算力就会降为1TOPS。理论值取决于运算精度、MAC的数量和运行频率。可大致简化为INT8精度下的MAC数量在FP16精度下等于减少了一半。FP32再减少一半,依次类推。FP16精度那么就是0.5TOPS,FP32精度就是0.25TOPS。而英伟达TeslaT4的理论算力是130TOPS。

文章来源于汽车电子与软件 ,作者殷玮

自动驾驶的TOPS竞赛有实际意义,但意义没有想象那么大,其中有很多误区,不好好识别容易导致不好的事情发生。

TOPS说的只是GPU算力

首先算力和你使用的计算芯片有关系,如果你的算法大部分是标量计算,那这个值没有意义,当下我们所说的TOPS高算力实际都只是GPU的乘积累加矩阵运算算力。

不同的芯片都通过总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元。CPU和GPU两者的区别在于片内的缓存体系和数字逻辑运算单元的结构差异。CPU虽然有多核,但总数没有超过两位数,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件;GPU的核数远超CPU,被称为众核(NVIDIA Fermi有512个核)。每个核拥有的缓存大小相对小,数字逻辑运算单元也少而简单(GPU初始时在浮点计算上一直弱于CPU)。从结果上导致CPU擅长处理具有复杂计算步骤和复杂数据依赖的计算任务,如分布式计算,数据压缩,人工智能,物理模拟,以及其他很多很多计算任务等。

当程序员为CPU编写程序时,他们倾向于利用复杂的逻辑结构优化算法从而减少计算任务的运行时间,即Latency.当程序员为GPU编写程序时,则利用其处理海量数据的优势,通过提高总的数据吞吐量(Throughput)来掩盖Lantency。

普遍意义上,CPU对应标量计算,主要是路径规划和决策算法,此外部分激光雷达使用ICP点云配准算法,CPU比GPU能更好对应。常用的传感器融合如卡尔曼滤波算法也多是标量运算。GPU对应矢量或者说向量计算,包括点云,地图,深度学习,核心是矩阵运算。我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。

目前TOPS的物理计算单位是积累加运算(英语:Multiply Accumulate, MAC)是在微处理器中的特殊运算。实现此运算操作的硬件电路单元,被称为“乘数累加器”。这种运算的操作,是将乘法的乘积结果b*c和累加器a的值相加,再存入累加器a的操作:

若没有使用 MAC 指令,上述的程序可能需要二个指令,但 MAC 指令可以使用一个指令完成。而许多运算(例如卷积运算、点积运算、矩阵运算、数字滤波器运算、乃至多项式的求值运算)都可以分解为数个 MAC 指令,因此可以提高上述运算的效率。

MAC指令的输入及输出的数据类型可以是整数、定点数或是浮点数。若处理浮点数时,会有两次的数值修约(Rounding),这在很多典型的DSP上很常见。若一条MAC指令在处理浮点数时只有一次的数值修约,则这种指令称为“融合乘加运算”/“积和熔加运算”(fused multiply-add, FMA)或“熔合乘法累积运算”(fused multiply–accumulate, FMAC)。

芯片运算精度的概念

讨论理论算力前有几个基本概念,GPU计算常用的数据类型有三种FP32,FP16和INT8,三种的计算方式如下

单精度浮点存储-FP32占用4个字节,共32位,其中1位为符号位(0为正,1为负),8位指数位,23为有效数字。

IEEE 754规定,对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M

半精度浮点存储-FP16占用2个字节,共16位,其中1位为符号位(0为正,1为负),5位指数位,10为尾数位。

整数存储-INT8,八位整型占用1个字节,共8位,其中1位为符号位(0为正,1为负),7为数据位

整数的计算很好理解2的7次方构成(-128-127)的数字范围

换算成10进制为 从低位到高位开始计算 0 1 1 1 1 1 1 10*2^71*2^61*2^51*2^41*2^31*2^21*2^11*2^006432168421= 127换算成10进制为 从低位到高位开始计算 1 0 0 0 0 0 0 01*2^70*2^60*2^50*2^40*2^30*2^20*2^10*2^0=128

运行工况(运行频率)的概念

GPU和CPU都有工作频率,频率越高,性能越高;同时它的功耗和发热也越高。一般意义的超频就是更改运算频率来提高性能。Xavier(GPU)20W功耗下单精度浮点性能1.3TFLOPS,Tensor核心性能20TOPs,解锁到30W后可达30TOPs。为什么有每瓦TOPS一说,就是为了规避超频这个问题。另外,这里的功耗往往指的是单元芯片本身的功耗与算力比,没有考虑DRAM。在深度学习计算中,数据频繁存取,极端情况下,功耗可能不低于运算单元。

实际运行频率和设定的工作频率也不一样,往往取决于温度与电压,在设计集成电路时,仿真或EDA会给出常见的三种状态分析。

  • WCS (Worst Case Slow) : slow process, high temperature, lowestvoltage
  • TYP (typical) : typical process, nominal temperature, nominalvoltage
  • BCF (Best Case Fast ) : fast process, lowest temperature, highvoltage

假设一个芯片,运行频率2GHz,一般温度25°,电压0.8V,算力为2TOPS。在WCS下,温度为125度,电压0.72V,此时频率会降低到1GHz,算力就会降为1TOPS。一般宣传的TOPS都是BCF下的结果。

TOPS理论值的计算方法

宣传的TOPS往往都是运算单元的理论值,而非整个硬件系统的真实值。真实值更多取决于内部的SRAM、外部DRAM、指令集和模型优化程度。最糟糕的情况下,真实值是理论值的1/10算力甚至更低,一般也就50%的使用率。

理论值取决于运算精度、MAC的数量和运行频率。可大致简化为INT8精度下的MAC数量在FP16精度下等于减少了一半。FP32再减少一半,依次类推。

假设有512个MAC运算单元,运行频率为1GHz,INT8的数据结构和精度,算力为512 x 2 x 1 GHz = 1000 Billion Operations/Second = 1 TOPS(Tera-Operations/second)。FP16精度那么就是0.5TOPS,FP32精度就是0.25TOPS。英伟达的Tesla V100有640个Tensor核,每核有64个MAC运算单元,运行频率大约1.480GHz,那么INT8下算力为640 * 64 * 2 * 1.480 GHz=121TOPS。

算力真实TOPS和理论TOPS的差距很大-核心还是匹配性

ResNet-50需要MAC大约为每秒70亿次运算,英伟达TeslaT4运行ResNet-50每秒可处理3920张224*224的图像,3920 images/second x 7 BillionOperations/image = 27,440 Billion Operations/second = 27.4 TrillionOperations/Second = 27.4 TOPS。而英伟达Tesla T4的理论算力是130TOPS。实际只有27.4TOPS。

决定算力真实值最主要因素是内存( SRAM和DRAM)带宽,谷歌第一代TPU,理论值为90TOPS算力,最差真实值只有1/9,也就是10TOPS算力,因为第一代内存带宽仅34GB/s。而第二代TPU下血本使用了HBM内存,带宽提升到600GB/s(单一芯片TPU V2板内存总带宽2400GB/s)。这里谈的还是静态层面上的问题,一代TPU更多的是面向一个主流算法,他的算力和内存匹配没有做好。

但就算面向主流算法做好了内存和算力的匹配,情况也不会有多好的改善,因为动态的来看,不考虑使用的算法,内存和算力无法很好的匹配

算法对于内存带宽的需求通常使用「运算强度 (operational intensity,或称 arithmetic intensity)」这个量来表示,单位是 OPs/byte。这个量的意思是,在算法中平均每读入单位数据,能支持多少次运算操作。运算强度越大,则表示单位数据能支持更多次运算,也就是说算法对于内存带宽的要求越低。

我们来举一个例子。对于步长(stride)为 1 的 3x3 卷积运算,假设输入数据平面大小为 64x64。简单起见,假设输入和输出 feature 都为 1。这时候,总共需要进行 62x62 次卷积运算,每次卷积需要做 3x3=9 次乘加运算,所以总共的计算次数为 34596,而数据量为(假设数据和卷积核都用单精度浮点数 2byte):64x64x2(输入数据)3x3x2(卷积核数据)= 8210 byte,所以运算强度为 34596/8210=4.21。如果我们换成 1x1 卷积,那么总的计算次数变成了 64x64=4096,而所需的数据量为 64x64x21x1x2=8194。显然,切换为 1x1 卷积可以把计算量降低接近 9 倍,但是运算强度也降低为 0.5,即对于内存带宽的需求也上升了接近 9 倍。因此,如果内存带宽无法满足 1x1 卷积计算,那么切换成 1x1 卷积计算虽然降低了接近 9 倍计算量,但是无法把计算速度提升 9 倍。

深度学习计算设备存在两个瓶颈,一个是处理器计算能力,另一个是计算带宽。分析哪一个限制了计算性能可以使用 Roofline 模型-计算性能(纵轴)和算法的运算强度(横轴)。Roofline 曲线分成了两部分:左边的上升区,以及右边的饱和区。当算法的运算强度较小时,曲线处于上升区,即计算性能实际被内存带宽所限制,有很多计算处理单元是闲置的。随着算法运算强度上升,即在相同数量的数据下算法可以完成更多运算,于是闲置的运算单元越来越少,这时候计算性能就会上升。然后,随着运算强度越来越高,闲置的计算单元越来越少,最后所有计算单元都被用上了,Roofline 曲线就进入了饱和区,此时运算强度再变大也没有更多的计算单元可用了,于是计算性能不再上升,或者说计算性能遇到了由计算能力(而非内存带宽)决定的「屋顶」(roof)。拿之前 3x3 和 1x1 卷积的例子来说,3x3 卷积可能在 roofline 曲线右边的饱和区,而 1x1 卷积由于运算强度下降,有可能到了 roofline 左边的上升区,这样 1x1 卷积在计算时的计算性能就会下降无法到达峰值性能。虽然 1x1 卷积的计算量下降了接近 9 倍,但是由于计算性能下降,因此实际的计算时间并不是 3x3 卷积的九分之一。

软件一体化设计

为何大部分人工智能算法公司都想定制或自制计算平台。算法的性能与硬件设计往往脱离不开。追求模块化就要牺牲利用率。要提高利用率就需要软硬件一体设计。你的算法是用GPU合适还是CPU合适,网络模型一次用多少内存又同时使用多少MAC,由此来设计芯片。或者说反过来给定一个芯片,我的算法要如何兼容,是否要减少内存访问次数提高利用率,还是要迁移部分CPU基于规则的算法,改为用GPU基于深度学习来实现。软硬件一起考虑往往才能充分利用好系统性能。

—END—

    推荐阅读
  • 宝骏7301.8l有几款(宝骏730-1.8L今日上市)

    宝骏7301.8l有几款宝骏730-1.8L今日上市现已接受预定来源:经销商供稿日期:2015-01-06宝骏730今日再推1.8L新品!君恒宝骏现已接受预定,欢迎到店咨询。免责声明汽车之家车商汇的信息内容系经销商自行发布,其真实性、准确性及合法性由经销商负责,汽车之家不提供任何保证,亦不承担任何法律责任。

  • 泰兰特是哪七个怪兽组成的(关于泰兰特的相关信息)

    泰兰特是哪七个怪兽组成的?暴君怪兽泰兰特是日本特摄剧《泰罗·奥特曼》第40集中的怪兽,由怪兽、超兽以及宇宙人的灵魂合体而成。结合七者最优秀的身体部分组合而成的强大怪兽,在《泰罗奥特曼》TV第40集先后打败佐菲、初代、赛文、杰克、艾斯五个奥特曼,来到地球后被泰罗打败。在后续的奥特系列作品中也陆续有登场。

  • 炖鸭汤放什么食材最好(在炖鸭汤的时候能放什么食材)

    炖鸭汤放什么食材最好枸杞。枸杞是一种比较滋补的药材,枸杞性味甘平,具有滋补肝肾、益精明目的功效,加入鸡汤中可以增加鸡汤的营养价值,同时对于鸡汤本身的性味没有影响。山药是一种药食两用的食物,具有一定的补脾养胃、生津益肺、补肾涩精的功效,加入到鸡汤中不仅可以起到补充营养价值的作用,山药的本身也是十分可口好吃的,所以还可以增添鸡汤的味道。

  • 新车磨合期常见问题(新车磨合期的注意事项)

    现在买新车的人越来越多了,除了给新车做各种各样的装饰以外,千万不要忽视新车磨合期内要注意的问题,因为这影响到您的爱车今后的油耗和使用寿命而一些新车主道听途说而来的拉高速、跑长途等行为,很可能会对新车造成很大的损伤,下面我们就来说一说关于新车磨合期常见问题?而一些新车主道听途说而来的拉高速、跑长途等行为,很可能会对新车造成很大的损伤。新车的磨合里程一般为1000公里至3000公里。

  • 理查兹先生用英语怎么说 查理兹先生的英语怎么说

    理查兹先生用英语说是Mr.Richards。英语是按照分布面积而言最流行的语言,但母语者数量是世界第三,仅次于汉语、西班牙语。它是学习最广泛的第二语言,是近60个主权国家的官方语言或官方语言之一。它是英国、美国、加拿大、澳大利亚、新西兰等国家的母语,在加勒比海、非洲和南亚被广泛使用。

  • 福喜125油耗(福喜125油耗突然变高)

    福喜125的油耗大约为百公里2升左右。所以有轻微的上下浮动,都属正常现象。附福喜125介绍:雅马哈旗下的福喜125,小踏板摩托车,外观偏向于运动型,造型上线条锋利,攻击性十足,比较适合年轻人的口味。液晶仪表上能点亮的雅马哈Logo,车座后的排水槽以及重要部位螺丝孔的排水孔都能看出厂家的用心。动力上采用雅马哈的“创核”技术发动机,动力强劲,最大功率虽然说只有6.1KW,但是发力点较早,因此带来轻快的起步加速的感觉。

  • 机动战士高达如何发大招(入坑机动战士高达你需要这份指南)

    《机动战士高达》自1979年登场以来,已成为日本动画作品中最著名、最经久不衰、最庞大、也是盈利最高的系列之一。《机动战士高达0079》与《宇宙战舰大和号》、《新世纪福音战士》并称为日本科幻动画的3大里程碑。不过,万代已经决定在2017年9月开始,重新正式启用"高达"这一名称,解决了这么多年以来高达粉丝们的怨念。

  • excel中vlookup函数的使用方法(vlookup函数使用教程)

    接下来我们就一起去了解一下吧!excel中vlookup函数的使用方法引入vlookup函数:在excel单元格中输入“=vlookup”引入vlookup函数。

  • 俄罗斯卫国战争时间线(俄罗斯卫国战争介绍)

    苏德战争是第二次世界大战期间苏联为抵抗纳粹德国及其仆从国侵略进行的战争,是世界反法西斯战争的重要组成部分,也是第二次世界大战中规模最庞大、战况最激烈、伤亡最惨重的战场。此后,苏军发动战略攻势收复全部国土进而从法西斯统治下解放东欧多国,最终于1945年4月30日攻占德国首都柏林。5月9日0点30分,德国政府在柏林签署了无条件投降书,投降书即时生效,伟大的卫国战争就此结束,也标志着二战在欧洲战场的告终。

  • 送给朋友的感恩节祝福语(适合对朋友说的感恩节句子)

    接下来我们就一起去研究一下吧!送给朋友的感恩节祝福语感谢雨露给我们甘甜,使花朵更加鲜艳。感激厚爱你的人,让你懂得博爱。感恩节到了,人生需要学会感恩,懂得了感恩,便找到了快乐。感谢天,感谢地,感谢你,顺便也感谢我自己。一心感恩终成宝,滴水之恩泉相报。感恩节就要到了,感谢一路有你,爱你从不改变。感恩一切,触动心灵的琴弦。