王中风教授:如何满足不同应用场景下深度神经网络模型算力和能效需求

简介: 基于神经网络的深度学习算法已经在计算机视觉、自然语言处理等领域大放异彩。但是,诸如 VGG、ResNet 和 Xception 等深度模型在取得优越性能的同时往往伴随着极高的存储空间需求和计算复杂度,而现有的通用计算平台很难实现高能效的神经网络计算。

基于神经网络的深度学习算法已经在计算机视觉、自然语言处理等领域大放异彩。然而,诸如 VGG、ResNet 和 Xception 等深度模型在取得优越性能的同时往往伴随着极高的存储空间需求和计算复杂度,而现有的通用计算平台(如CPU和GPU等)很难实现高能效的神经网络计算。为了满足深度神经网络在不同的应用场景(如云端和终端)下的算力和能效需求,探讨如何在算法层面运用量化、剪枝等方法进行模型压缩,以及设计适应于不同应用场景的高能效神经网络计算芯片/架构已经成为学术界和工业界近阶段的一个研究热点。

目前,基于神经网络的深度学习算法已经在计算机视觉、自然语言处理等领域取得了广泛的应用。这其中,一方面要归功于算法研究者的坚持使算法得以取得诸多突破,另一方面也是海量数据的出现和硬件运算能力的提升为算法的有效训练带来了可能。与此同时,深度学习算法的成功也反过来推动了硬件的发展。目前,硬件对深度学习算法的支持主要包括两个方面,一个是训练(Training)阶段,需要非常高的算力和大容量存储来支持大规模深度神经网络模型的训练;另一个是推理(Inference)阶段,需要将训练好的模型部署到实际的应用场景下,包括在需要高性能、高吞吐率的数据中心端提供云服务,以及在需要低功耗的嵌入式/移动终端相关的应用。

目前,使用 GPU 来进行神经网络的训练几乎已经成为了研究深度学习算法的标配。但是,在进行实际部署时,由于深度神经网络模型往往伴随着极高的存储空间需求和计算复杂度,包括GPU、CPU在内的传统通用计算平台在大多数情况下并不能满足实际模型部署对功耗和性能(或者能效比)的综合需求,这也使得一些具有更高综合能效比的硬件,如 FPGA 和面向 AI 应用的 ASIC(包括可重构ASIC)芯片逐渐获得关注。为了满足深度神经网络模型在不同的应用场景下对算力和能效的需求,一方面,可以利用现有深度神经网络模型存在内在冗余这一特性,在几乎不损失模型精度的前提下从算法层面对模型进行裁剪和优化;另一方面,也可以设计针对深度神经网络模型的计算模式进行优化的高能效硬件架构,用于加速模型的计算过程。 当然,也可以同时结合这两个方面,做算法和硬件的协同设计和优化(Joint Algorithm And Architecture, JAAA, design optimization)。

模型裁剪与优化

目前该领域的方法可以大概分为两类:

1.针对某些精度较高但较复杂的网络模型,通过剪枝、量化、低秩分解等措施减少模型的参数和计算量。这类方法往往能大大减少模型的复杂度,实现对参数或者计算量很高的压缩比,但其中不少方法都需要特定的硬件支持才能真正发挥其效用。此外,这里面提到的某些方法也可以用于减少模型训练过程中参数更新带来的硬件开销,加速训练过程;

2. 考虑直接设计更为高效(较少参数+低计算复杂度)的神经网络模型,同时模型的精度可以尽量接近复杂的网络模型,或是通过一些方法将复杂模型学习得到的知识迁移到小的模型上面,最终可以直接部署这些较为精简的模型。

AI 芯片/加速器

在针对 AI 的高能效硬件架构设计方面,相关的工作大体可以分为以下几个方面:

1. 能够支持主流深度学习算法常见操作的专用处理器架构(ASIP),以及专用的深度学习指令集,如中科院计算所的 DianNao系列处理器和Cambricon指令集;

2.针对深度神经网络的数据复用方式、访存的优化:探索适合于神经网络的计算模型,在计算时通过合理的资源调度实现对神经网络计算过程高效的加速;

3. 近似计算/近似存储:利用神经网络对噪声和误差具有一定的容错性,在计算/存储过程中通过一些具有较低硬件开销的近似方法来提高网络的计算能效;

4. 新型存储结构,如通过非易失性电阻式存储器(Non-volatile Resistive Memories),实现计算和存储一体化(process-in-memory),直接在存储里面实现计算的功能;

5.软硬件协同优化:在前面模型优化方法的基础上,进一步设计相应的硬件架构,使得诸如剪枝、量化等模型压缩方法的效果可以被充分的利用;

在这波 AI 浪潮中,国内也有不少高校和研究机构从事相关的研究,并在国际上取得了可观的影响力。相应技术的落地也催生了不少 AI 芯片/加速器的初创公司,包括寒武纪科技、地平线机器人、深鉴科技等。作者的团队(南京大学 ICAIS 实验室)也在这方面取得了一些突出成果,包括:

基于有限冲击响应算法的高效可配置快速卷积单元

  • 基于并行快速有限冲击响应算法(FFA)对卷积计算进行算法强度缩减,理论推导了3并行、5并行和7并行等N-并行的快速卷积算法。设计了能高效完成3×3和5×5卷积计算的快速卷积单元(FCU)。进一步地,针对目前主流的CNN卷积核大小,设计了可以高效实现各种常见卷积操作的可配置卷积单元,并在硬件利用率、功耗和可配置性之间达到了最优的平衡。所设计的硬件结构可以配置实现2x2到12x12所有尺寸的卷积操作。

等间隔/K平均聚类非均匀定点量化方法

  • 提出了等间隔非均匀定点量化(Equal Distance Intra-Layer Non-Uniform Quantization)和K平均聚类非均匀定点量化(K-means Cluster Intra-Layer Non-Uniform Quantization)两种量化方法,可以大大降低卷积神经网络中activation的存储需求。相比于已有的针对activation的量化方法,可以在不损失精度的情况下提高压缩率2倍以上。

深度卷积神经网络高效硬件架构设计与实现

  • 基于上述的FCU和动态计算流程,提出了高效的卷积神经网络处理和存储架构。基于 VGG16的测试结果表明,所提出的层内按行交替存储和层间轮回复用的方式相比于传统按层顺序计算的存储架构可以节省大约14倍的片上存储资源,在同样的平台下资源利用率比同类设计高出2倍以上。

适用于嵌入式系统的高能效二值参数卷积神经网络硬件架构

  • 提出了一种高能效的二值参数卷积神经网络的硬件架构。该架构利用了二值参数网络的鲁棒性等特点,引入了多种近似计算技术。此外,该架构还采用了一种优化的计算流程,最大程度地减少了访问DRAM的次数和带宽需求。该架构在65nm工艺下能够达到约2.08TOp/s/W的能量效率(已考虑片外DRAM访存功耗)。相比于已有的二值网络ASIC实现在能效方面有超过2倍的提升。 

递归神经网络的模型压缩与硬件架构设计

  • 在算法层面,通过在递归神经网络(RNNs)中引入结构化的参数矩阵(如循环矩阵),参数量减少为原来的 25%;进一步结合前向激活函数近似,以及根据 RNN 中不同参数矩阵对量化的敏感程度上的差异,混合使用均匀量化和基于对数域的非均匀参数量化方法,在基本不损失模型预测精度的前提下均取得了超过20倍的参数压缩率,计算复杂度也大大降低。

其它相关研究

此外团队还研究了高能效的能耗-精度可伸缩(Energy-Quality Scalable)的卷积神经网络硬件加速器结构,基于隐私保护(Privacy-Preserving)的深度学习算法及其硬件架构,基于张量分解(Tensor Decomposition)的神经网络的嵌入式硬件架构, 以及递归神经网络的负载均衡(Load-Balance)稀疏化方法等等。上述成果多数已经在IEEE Xplore 在线发表。

结束语

随着学术界和工业界对人工智能技术持续大力的推动,可以肯定的是在未来相当长的时间内,面向应用的基于算法和硬件架构联合优化方面的研究将会得到更加广泛的关注和加速的发展。


原文发布时间为:2017-12-24

本文作者:王中风

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:”王中风教授:如何满足不同应用场景下深度神经网络模型算力和能效需求

相关文章
|
3月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
190 58
|
3月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
76 2
|
3月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
96 1
|
3月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
15天前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
16天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
|
5月前
|
域名解析 网络协议 安全
计算机网络TCP/IP四层模型
本文介绍了TCP/IP模型的四层结构及其与OSI模型的对比。网络接口层负责物理网络接口,处理MAC地址和帧传输;网络层管理IP地址和路由选择,确保数据包准确送达;传输层提供端到端通信,支持可靠(TCP)或不可靠(UDP)传输;应用层直接面向用户,提供如HTTP、FTP等服务。此外,还详细描述了数据封装与解封装过程,以及两模型在层次划分上的差异。
790 13
|
5月前
|
网络协议 中间件 网络安全
计算机网络OSI七层模型
OSI模型分为七层,各层功能明确:物理层传输比特流,数据链路层负责帧传输,网络层处理数据包路由,传输层确保端到端可靠传输,会话层管理会话,表示层负责数据格式转换与加密,应用层提供网络服务。数据在传输中经过封装与解封装过程。OSI模型优点包括标准化、模块化和互操作性,但也存在复杂性高、效率较低及实用性不足的问题,在实际中TCP/IP模型更常用。
602 10
|
29天前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
3月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
218 60

热门文章

最新文章