『LiveVideoStack』?5G+AI时代的高效视频处理( 四 )


『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
以后的视频编码标准可能会有图中所列的三个:内容感知、任务感知、接受方式感知 。
以前的压缩标准对要求每个像素的方式或者效率基本都相等 , 但这并不是最好的方式 , 因为它不是一个针对对象的压缩方式 , 尤其对机器视觉来说 , 更需要的是关注的对象 。 比如在自动驾驶过程中更关注的是车牌 , 所以这种方式就需要通过一些人工智能的方式进行处理 。
『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
在介绍人工智能处理器之前先普及一些硬件的知识 。 图中可以看到每一磅的碳排放量 , 如果坐飞机从纽约到旧金山进行往返旅行 , 那每一磅的碳排放量大概是1984;一个正常的地球人一年来说是11023;一个美国人一年碳排放量比全世界平均排放量高了三倍 。
但一种对神经网络进行架构搜索的算法transformer运算起来的碳排放量非常的惊人 , 达到了626155 。 这就产生一个问题 , 即现在的人工智能虽然在某些地方可能超过人的智能 , 但其功耗是非常大的 , 实际上是通过堆砌众多的计算单元及计算量来进行一件简单的事 。
『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
现有的神经网络运算是如何把复杂度支撑起来
『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
如果采用传统的一些硬件进行 , 它的效能就比较低 , 过于消耗功耗 。 解决这种问题的方案是 , 图中对比了三种不同的计算单元 , 一是蓝线代表的CPU , 二是绿线代表的GPGPU , 虽然它的效能提高 , 但是其灵活度下降了 。 三是红线代表Semi-custom SoCs & FPGAs , 做一些专用的神经网络加速器 , 它的灵活度非常低 , 但是效率却非常高 。 3.4 MemoryWall
『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
在设计人工智能加速器的时候 , 首先关注的是Memory Wall , 这些神经网络从本质上来讲就是一堆乘加的运算 , 但如何将乘加的操作数搬上去 , 这是一个非常重要和最难的事情 , 图中是比较经典的三个网络:AlexNet、ResNet-152、Languagemodel 。 其中Memory操作占了整个需要计算的75%及以上 。 3.4.1 MemoryCapacity
『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
从准确的数字表达可以看到 , 对于ResNet的CNN和LSTM引擎 , 两者的模型大小都非常大 , 分别是120MBytes和2.5GBytes 。 两者的记忆使用 , 即在进行训练和推理时所占的带宽 , ResNet在训练时有21 , 而推理时只有0.12 。 LSTM在训练时是40 , 而推理时是2.5 。
『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
高性能算法系统性能从硬件的角度看 , 有10%的节点内通信 , 10%的CPU计算 , 10%的网络带宽和延迟 , 50%的GPU计算 , GPU的优点是将很多小的相似的任务并行操作 , 最后是20%的记忆带宽和容量 。 基本上就是按图中这种划分方式对高性能计算的性能进行划分 。
『LiveVideoStack』?5G+AI时代的高效视频处理
本文插图
图中展示的是深度学习神经网络系统 , 整个系统最上部有Tensorflow、PyTorch、Caffe、ONNX等神经网络训练架构 。 中间部分是软件堆栈层 , 最下部分是硬件层 。
在不同的软件堆栈层要进行不同的事情 , 在优化层 , 比如现在的神经网络有很多是冗余的 , 因为它对于一个黑盒子来说 , 很多参数在训练的时候 , 作为设计师不知道什么意思 , 但尝试后效果还不错 , 所以将其留下 , 但实际上如果仔细地解剖看 , 里面有很多冗余的东西 , 所以要进行修剪、量化的处理 , 即把神经网络里面有些不必要的部分去除 。 其次 , 固件层的工作主要是数据管理、流量控制、异常处理 。 最后是驱动层 , 它与硬件结合十分紧密 , 主要进行寄存器配置、寄存器状态读取、启动/停止硬件、中断处理 。 3.5 AI引擎


推荐阅读