集微网报道 很难想象出没有视觉感知技术的智能世界会是什么样子。从智能安防、智慧交通、工业智造、智能汽车到消费电子,以AI为底座的视觉感知技术已经融入百业千行的智能化进程当中。正是依靠AI的赋能,使得视觉感知经历看得见、看得清、看得懂的演化过程,在诸多应用场景中发挥了不可替代的作用。
正如爱芯元智联合创始人刘建伟在近期发表的文章《打破内存墙、功耗墙,国产芯片AI-NPU的现在和未来》中所言,智能化未来的基础是“感知+计算”,AI视觉在智能化的进程中会起到非常关键的作用,具备非常广阔的应用前景。
没有NPU,怎能“看得更清”,又“看得懂”
海量的视觉数据是万物智能互联时代的特征,要充分发掘这些数据背后的信息,就需要AI技术的辅助。基于AI的智能视觉感知技术因而成为了行业发展的重点。据相关机构统计,2021年工业领域、零售领域以及体育产业领域的智能视觉市场规模分别达145.11亿、6.34亿和362.79亿元。与此同时,智能视觉的应用在整个AI应用领域中的占比达到34.9%,成为技术发展的重要驱动力。
硬件决定了智能视觉系统所呈现的最终效果,以NPU为代表的AI芯片因此大行其道。随着业界越来越重视AI算法与硬件的深度结合,NPU凭借自身的高算力受到了更多的青睐。
“如果说ISP芯片让智能视觉系统看得清,NPU芯片就使系统看得更清和看得更懂。”刘建伟在文中表示。
图 | AI视觉芯片的技术特点
举例来说,摄像头在夜间捕捉的图像或视频往往会出现过曝、色彩细节被淹没的现象,要看得更清,就需要采用技术进行后期处理。如果采用滤波等传统技术,暗光、宽动态等场景下将会产生大量的噪声,效果难以体现。改用AI-ISP可以解决此问题,代价是必须采用AI算法全分辨率、全帧率地对视频进行处理。“仅500万像素的视频码流,要做到全分辨率、全帧率的处理,就会对NPU的算力提出非常高的要求。”刘建伟表示。
而在进行车辆检测和车牌识别的应用中,视频画面中远处的车牌往往识别不出来,高速行驶的车辆也可能会漏检,解决方法也是尽量采用全分辨率、更高帧率检测的方式进行处理,而这种做法同样需要高算力的NPU。
不仅是“看得更清”,要“看得懂”更离不开NPU。智能视觉系统的一大发展趋势就是前端硬件的智能化。以智慧城市行业为例,越来越多的智能算法从后端转向在前端完成。前端智能不仅能够为后端提供高质量、初步结构化的图像数据,还能大大节省带宽和后端计算资源。目前已经有很多智能算法可以在前端实时运行,如人脸检测、进入/离开区域、越界等。但要使前端设备与这些算法相配合,就需要大算力NPU的支撑。
刘建伟在文中指出,“这就相当于把一个专家装到AI芯片里,这个专家系统要足够聪明,对应的就是一个大规模的网络,网络比较大就相当于脑容量比较大,它能够维持存储更多的权重值,这就会对NPU算力提出很高的要求。”
在公共安全领域的监控中,经常会面对各种异常行为,比如突然加速、聚集、跌倒等,还要针对移动物体进行智能化跟踪、复杂场景下的视频分析,这些都需要不断引入新的算法来解决。如果没有大算力的NPU,硬件设备的资源将很难跟上算法的升级速度。
另一方面,要将大算力服务器上训练出的算法部署到前端设备中,必须要进行模型的压缩,如果前端的算力较高,可以大幅缩短这个过程。对此,刘建伟在文中谈到,“用一部分算力来换取开发效率的提升,加速了AI的落地,但这种做法反过来提高了对NPU算力的要求。”
在面对海量数据计算需求的背景下,设备要“看得更清”并“看得懂”,高算力NPU是必不可少的一环。
软硬协同 打破内存墙和功耗墙
业界在不断探索AI算法与硬件深度结合的方式,以提升芯片的利用率,达到更好的视觉信息处理效果,同时降低芯片功耗,以实现大规模商用。在这个过程中,AI芯片的开发会碰到两大障碍:内存墙和功耗墙。
在传统冯·诺伊曼架构下,计算和存储单元相分离,计算单元从内存中读取数据,完成计算后存回内存。但AI算法是一个很庞大和复杂的网络,包含大量的图像数据和权重参数,计算的过程中又会产生大量的数据,数据在计算单元和存储单元之间进行频繁的移动,因为存储器的数据访问速度跟不上计算单元的数据处理速度,阻碍算力提升的内存墙问题就产生了。
同时,数据频繁的迁移也带来严重的传输功耗问题。根据英特尔的研究显示,半导体工艺到了7nm时代,数据搬运功耗达到35pJ/bit,占比达63.7%。数据传输所导致的功耗损失越来越成为芯片发展的制约因素,由此形成“功耗墙”问题。
刘建伟在《打破内存墙、功耗墙,国产芯片AI-NPU的现在和未来》一文中指出,功耗墙的问题主要来自两个方面:MAC单元和DDR,“当通过堆MAC单元来拉高算力指标时,MAC单元本身的耗电总量会提升,同时还需要高带宽的支撑,在服务器侧可以使用比较贵的HBM,如此一来DDR所需的功耗势必会拉升上去,而在端侧,出于成本的考量,还没有特别好的DDR方案。”
AI芯片的计算以数据为主,大量数据搬运导致“内存墙”和“功耗墙”挑战凸显,这不仅限制其计算性能的发挥,也限制其进入对功耗有严格要求的移动端和嵌入式设备中。
存算一体和减少数据搬运是业界常用的破局思路。存算一体性能强大,但会受到工艺节点瓶颈的限制,距离芯片量产还有一定的距离。数据搬运则可以发掘现有芯片的潜力,大幅降低开发成本。刘建伟表示,爱芯元智正是通过混合精度技术减少了数据搬运,从而在一定程度上减小了内存墙和功耗墙的阻碍,提高了整个NPU的效率。
混合精度就是将不同精度的浮点数/定点进行数值计算。业内专家通过研究发现,计算过程中并非所有环节都需要高精度数值格式。通过合理分配不同环节的数值精度,就可在保证最终计算结果准确度的条件下,实现整体计算的加速。
对此,刘建伟在文章中也有相应解答:“在整个神经网络中,权重系数比较复杂,传统NPU的数据表示格式一般是8比特、16比特和浮点数,才能达到AI算法的精度,所以运算量繁重。但爱芯元智发现,在实际应用中,AI网络中有的信息是有冗余的,这意味着不是所有的计算都需要高精度的浮点或是高精度的16比特,采用8比特或者4比特等低精度混合运算就足够了。”
刘建伟表示,在爱芯元智的AI-ISP应用中,就是基于混合精度技术,网络中许多中间层都是采用INT4精度。相比原来的8比特网络,数据搬运量可能就变成原来的1/2,计算量缩减为1/4,相当于在单位面积内提供数倍于传统NPU的等效算力,同时还能把成本和功耗降下来,更有利于端侧和边缘侧AI落地。
图 | AI-NPU的设计难点和驱动力
面对采用先进制程和高级封装工艺给AI芯片带来的成本压力,用混合精度技术来解决“存储墙”和“功耗墙”的问题, 是一条切实可行之路。
不过,在端侧和边缘侧,AI芯片和场景的耦合强度较弱。要让AI真正落地,还需要实现算法和硬件的紧密结合。
刘建伟在文中表示,爱芯元智算法团队会在NPU设计早期就将算法网络的结构、量化需求/算子需求、内存访问需求等详细信息提供给NPU设计的架构师,硬件架构师可以根据这些算法的需求来调整或优化整个NPU的设计。同时,硬件工程师也会把硬件限制提供给算法工程师,如此算法工程师在设计算法时,可以考虑到硬件限制,从算法的角度来规避一些硬件上的短板。
“只有两者真正结合,才可以兼顾NPU的硬件和软件开发,加快AI开发的落地效率,实现智能视觉“看得更清”和“看得懂”的最终目标。”
(校对/萨米)