2021年9月18日下午,“算法应用与加速器系统架构的碰撞”讨论会在智源研究院顺利举行。参与封闭研讨的专家有:孙广宇,北京大学高能效计算与应用中心长聘副教授;黄高,清华大学助理教授;陈恺,中国科学院信息工程研究所研究员;施柏鑫,北京大学助理教授、研究员;马恺声,清华大学助理教授。(均为青源会会员)
讨论会同时邀请了算法方面的专家学者以及硬件方面的专家学者参与。来自不同领域的专家学者及高校学生,分别介绍算法应用与加速器系统架构的最新进展和遇到的困难挑战。
介绍完毕之后,会议进行了头脑风暴,重点讨论软件算法与硬件可以联合解决的问题。各方在软件与硬件的思维碰撞中产生了很多新想法。
01
中国科学院信息工程研究所的陈恺老师报告了人工智能安全攻防对抗的相关进展。陈恺介绍了人工智能赋能传统安全(AI for Security)与人工智能技术本身的安全(Security for AI)两个研究方向的工作及未来可以研究的方向。
人工智能赋能传统安全,让计算机变得更加智能,像安全分析人员/黑客一样。例如,陈恺介绍可以利用人工智能的自然语言处理对比文档与代码实现间的不一致性,发现安全漏洞;还可以对APP程序中的隐私设置安全性问题进行智能化分析,辅助找到泄露用户隐私的程序隐蔽行为。
人工智能技术本身的安全也是一大研究热点,近年来有越来越多的文章研究包括对抗样本攻击、语音控制系统安全、神经网络后门、模型窃取攻击等问题。在攻击和对抗攻击方面都有诸多工作。
清华大学的黄高老师报告了高效神经网络架构的设计。黄高重点介绍动态自适应神经网络:针对不同的输入的,动态自适应网络会在包括样本维度自适应、空间维度自适应和时间维度的自适应等多个维度动态变化。
传统的高效神经网络架构设计包括MobileNet、ShuffleNet、CondenseNet等很多工作,但他们都是静态网络。针对不同输入,可以对网络进行变化,进一步提升网络效能。样本维度自适应网络动态判断输入样本的难度,简单样本可以使用较小计算量即可达到很好的效果。空间维度自适应网络根据输入图片不同区域的内容不同,在不同位置对网络进行变化。时间维度的自适应针对视频等序列结构,在不同时间选用对网络进行变化。
北京大学的施柏鑫老师报告了非传统视觉感知与智能视觉计算。施柏鑫重点介绍了把包括新型摄像系统等非传统视觉感知与使用机器学习的智能视觉计算的结合成为相机智能的相关工作。
相比传统摄像头,非传统视觉感知可以捕捉传统相机无法捕捉的内容。例如,余数相机理论上拥有无上限的动态范围;多偏振角度图像可以获得有高精度偏振信息;脉冲融合图像的采集输入能实现高动态、高分辨、真彩色的高质量摄像。
使用机器学习的智能视觉计算对这些信息进行处理,可以实现多种传统视觉无法实现的应用。例如,余数图像动态延展算法可用于高性能成像;从偏振恢复形状的算法可以实现高性能高精度三维重建;脉冲融合图像的重构算法大幅提升相机帧率。
北京大学的孙广宇老师报告了神经网络加速器架构设计的最近进展。孙广宇重点介绍了硬件加速器架构设计方法、加速器架构设计自动化、新型存储器件在神经网络加速器中的应用等相关工作。
神经网络加速器架构是一种专门针对神经网络应用的非通用的架构,它根据特定算法进行特别硬件设计,执行特定算法速度快、能耗低。加速器架构设计自动化可以自动根据给定算法设计硬件架构,自动调整包括片上存储、计算单元规划、片上通信网络的数量与参数设定,让特定算法在其上运行效率最高。
存算一体(PIM)神经网络加速器架构设计是近期的一大热点。将计算单元放在存储单元中,可以大幅度减少从存储单元到计算单元的数据搬运开销,从而加快计算速度、减少能耗。
清华大学的马恺声老师分享了AI+X的概念,通过将AI与各类技术融合开辟新的研究方向。马恺声在神经网络加速器与加速器配套的算法等多个方面的研究工作进行介绍。
Chiplet的概念是将多个芯片在一个封装里集成起来。马恺声介绍的可扩展的chiplet方案,用先进封装封起来可以实现神经网络加速器芯片的敏捷开发,大幅度减少了可重用模块的设计制造开销。
在AI应用方面,马恺声开发的无人小车跟随技术给大家留下了深刻印象。
在网络压缩算法方面,马恺声还介绍了包括神经网络剪枝、神经网络蒸馏的可解释性、神经网络的鲁棒性分析等众多工作。例如,神经网络的模式化剪枝方案PCNN可以大幅减少神经网络的参数量与计算量,同时也减少硬件非规则化访存与计算的开销。
02
在专家的介绍下,与会专家产生了很多软硬件结合设计的想法。在头脑风暴部分,各位老师充分讨论交流,软硬件思维热烈碰撞。
例如,部分视觉算法上用神经网络替代可能效果不好。因为传统方法能写出物理公式,神经网络依赖于数据,进而依赖于场景。针对这些算法专门设计特定硬件架构,或者在神经网络加速器的基础上加上一块针对这些算法的模块来提升硬件性能是一个好的点。
与会老师和同学从具体的例子出发进行讨论。其中一个例子是基于FPGA的CNN的图像处理流程。在实际应用中,在CNN计算之前需要对压缩的图像进行处理,然而随着CNN算法和加速器架构的不断改进,图像解压缩的时间反而容易成为瓶颈。
为了解决这个问题,一些专家提出,可以将部分图像解码操作如IDCT操作融合到CNN当中,然后用硬件逻辑实现其余的轻量级解码操作。这样可以充分利用CNN加速器的计算资源。
从上述例子出发,老师们讨论了自动驾驶场景中多源图像数据的传输与拼接问题,图像数据的压缩能够显著降低自动驾驶系统中的带宽需求,但是也给硬件加速器的设计带来新的挑战。有专家指出,目前图像编解码算法针对的是人的视觉感官系统进行的优化,然而对于CNN网络来说,其针对特定任务的关注点和人是不太一样,是否可以提出一套针对神经网络专用的图片压缩算法,在保证精度的前提下尽可能减少图片数据量,是一个值得研究的问题。
针对视频处理的算法/硬件协同加速。视频存在着大量的时间冗余性,如何在计算过程中尽量去除这种冗余性从而加速处理,也是一个值得讨论的话题。讨论时周哲同学介绍了两个相关工作:EVA2和VR-DNN。前者针对目标追踪任务,只在关键帧运行完整的CNN检测网络,并且保存中间的特征图。对于非关键帧,通过轻量级的位移估计算法计算当前帧相对于关键帧的位移向量,并且用位移向量对保存的中介特征图进行变换。最后用部分CNN网络来处理变换后的特征图,从而减少非关键帧的计算量。
后者提出了一种新的视频处理思路:直接从编码好的视频中解码出位移向量,从而省去了估计位移向量的开销。老师和同学们认为针对视频的时间冗余性进行算法/硬件协同加速是一个值得研究的方向,但是需要找到适合特殊架构加速的“痛点”。
利用动态执行的思想减少CNN计算也是讨论的一大热点。出发点是图片分类等算法中关注的是图片的主体部分,而不重要的背景部分的计算可以被节省。DRQ等工作从提出利用高低精度分别计算主体和背景部分,从而获得一定的加速比。类似的思路主要是减少数据的空间冗余性;针对动态自适应网络的高效运行,不同维度上的动态网络对加速器的性能和灵活性都提出了不同的要求。
以动态结构的神经网络为例,提前退出/层跳过/通道跳过/分支跳过等技术需要加速器提供不同的硬件支持,从而发挥动态网络的性能优势。在多个网络层被映射到同一个加速器的场景下,动态网络也为加速器的任务映射和调度提供了更大的探索空间。
从实际应用的需求出发,在芯片规模不断扩大的趋势下,大型任务乃至多任务的编译与映射逐渐成为进一步发挥硬件性能的主要关注点,硬件架构中的互联设计和硬件运行过程中的数据传输开销越来越不可忽视。
针对这一优化问题,与会专家也从传统方法和机器学习的多个角度进行了讨论。此外会议还讨论了针对图数据库任务的专用硬件设计,面向加速器安全性和可靠性的软硬件协同设计等话题。
欢迎点击阅读原文参与文章讨论。