CNN高效升级,有一定的可编程性

描述

2018年7月18日,自适应和智能计算公司赛灵思(Xilinx, Inc.)宣布完成对专注于神经网络剪枝、深度压缩技术及系统级优化的中国AI芯片公司深鉴科技的收购。

这是迄今为止第一家中国AI芯片初创公司与全球芯片领军厂商的深度绑定。

深鉴科技CTO单羿在近日举办的赛灵思全球开发者大会上表示,公司此前本身在深度学习方面有一定的技术积累,用户不需要写底层的RTL,就可以通过提供的API接口,进行应用的开发,可以进一步降低开发者的难度,这是最适合客户的开发模式。

赛灵思在客户积累以及服务方面,有着丰富的经验和能力,对于创业公司而言,一般是缺乏客户的开发能力,以及后续的技术支持方面的能力。

因此对于深鉴而言,同赛灵思合作,可以弥补这一方面的劣势,更快的将产品推广给更广范围的用户,省去教育用户的开销。

另外,赛灵思和深鉴科技双方对于客户的看法是一样的,今天的AI的算法是一直在变化的,ASIC的做法并不适用,加之流片的成本也越来越高,周期较长,传统的做法并不是适应这个变化极快的时代。

FPGA在灵活性方面有着不可比拟的优势,目前的频率是在数百兆HZ,未来也会根据需求以及技术的成熟,达到过GHZ的频率;FPGA上也有着丰富的DSP资源,充分的互联,接口众多。这些特性都对应了这个AI算法快速迭代发展的时代。

因此,双方的优势和互补性使得彼此走到了一起。

深鉴提供全栈的解决方案,包括基本的检测、追踪、分割等算法,比如汽车检测、行人检测、交通标志牌识别的参考算法,免费给用户。既有标准化的优化算法技巧,也给用户定制化的可能。

这些方案是基于FPGA的部署,深鉴科技实际上做的就是DPU的设计,处理器的架构中,有自己的存储访问的Hardware、调度器、微体系结构等。有了这些之后,用户使用CNN就会变得高效,有一定的可编程性。

一.

DNNDK降低AI startup门槛

为了方便用户使用,深鉴科技开发了一套软件的工具DNNDK(Deep Neural Network Development Kit,深度学习开发与部署全栈式解决方案)。

最新的版本可支持两种赛灵思的方案,ZCU102和ZCU104。这个工具每月会定期的更新,方便用户下载使用。

对于AI创业公司而言,能够使其具备竞争力的,就是产品的差异化,而差异化是需要在软件上不断的训练不同的模型。

训练模型是需要依赖算法团队的实力,很少有创业公司能够兼顾模型精准和短小精悍。为了让用户无差异的使用相同的处理器平台,提供了模型压缩技术。

通过自动化工具,可以训练模型,经过不长的时间,就可以得到一个精简、轻量化的模型。深鉴科技的自动化模型压缩工具,是基于硬件进行的,因此更适合硬件加速。

压缩工具工作主要有两个步骤,量化和剪枝,量化就是改变参数,从浮点表达变成定点表达,剪枝就是去掉无用的部分,比如一些连接和神经元。

分类网络的压缩结果,保证压缩的精度变化不大。比如SSD+VGG压缩能够在保证网络成倍数减小的同时,精度不发生太大变化,同时运行速度还会有提升。

这些技术不仅可以用于安防,同样也可以用在自动驾驶中。

模型压缩的下一步,可通过增强学习或者机器学习的方式,提升工具的自我进化,去掉人类因素的干扰;另外一方面,做更低bit的量化,这个量化技术是下一步模型压缩中关键的技术。

二.

突破1Tops/天花板

对于AI处理器而言,算力大小是一个重要的指标,但如果应用到终端上的时候,单位功耗下的算力才是硬实力,尤其是汽车行业。

目前CNN卷积网络处理器的天花板是1Tops/w,而无论FPGA、ASIC还是GPU,都徘徊在这个指标附近,如果要完成更复杂的工作,更精细化的处理,就必须要提升这个关键性指标。

单羿表示,因为这个天花板是在宽bit的量化性能下得到的,所以要改变这个值必然要换一种方式。

目前的解决方式有两种,Sparsity和Low Precision,前者实际上是模型压缩,将网络的模型变小,后者是将参数的位宽变小,使得硬件在同样的DSP下,能够支持更多的乘法和加法的运算。

在Sparsity方面,深鉴团队从算法、软件、硬件方面分别进行了探索。这方面有不少的挑战,比如随机MEM的访问和固定格式的计算,带来计算的低效,非常挑战体系结构的设计;

另外一方面就是在压缩模型的同时进行稀疏,以及为了稀疏,需要做的一些索引。随着稀疏的增加,花费的资源越多,最终会使得压缩工作没办法进行。

Low Precision方面,2018年的时候,ISSCC已经开始尝试一些更低bit,从原来的8bit已经延生到了1bit。

学术界之所以这样做,是因为同样功耗下,更低bit比更高bit的算力能提升一个数量级,模型大小的存储量也会大大的降低。存储量的降低意味着可以把更多的参数放到片上来进行,片上带宽极高,latency也会短。而用FPGA做Low Precision的方式是比较恰当的。

深鉴科技此前的做法是,将FPGA中敏感的层,保留8bit,不敏感的层,用其它较低bit代替。当然这样的处理方式也给处理器的设计带来问题,因为dsp原来是支持8bit,现在却要支持更多bit。

深鉴使用了2bit和6bit,3bit和5bit的搭配方式,适合与赛灵思FPGA的架构,使得量化过程中不同层可以使用不同的位宽,从而达到提升效率的目的。

通过以上两种方式,处理器单位瓦数下的算力,就有可能提升。

三.

FPGA的减法

自动驾驶是当下一个火热的应用,其需要进行目标检测、分割、可行驶区域、以及行人车道线的识别等等,这些工作都是需要不同层网络进行计算处理。但这些工作同时用FPGA来做,系统负担会非常大。

为此,深鉴科技提出了一个通过多任务模型的训练,得到单一网络的方案,复用特征提取层的运算,把运算量最大的部分放到FPGA中的一个网络中进行。

而不同任务中,不同层的计算才可能会进行多次,从而达到缓解FPGA处理器运算压力的目的。

在系统级的优化方面,可以简化摄像头的图像处理,传统的摄像头内部有ISP、编解码等等,分属不同芯片处理,而通过使用赛灵思的FPGA,则只需要一块芯片既可以完成,内部不仅有DSP资源,同时还集成了第三方的ISP的库,可搭载一个完整的系统。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分