ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel Dynamic-Voltage-Accuracy-Frequency-Scalable CNN Processor in 28nm FDSOI

单位:EAST-MICAS, KU Leuven(鲁汶大学)

本文是我觉得本次ISSCC2017 session 14中最好的一篇,给人的启示有很多,比如一款SOC可以在非常大的能效范围内调节;比如DL加速需要多少组成部件以及有几种数据复用的形式;多种bit位宽的乘法器资源复用,数据IO压缩;

嵌入式设备中的神经网络:从云端到终端的计算载体转移,对能效的要求提高。1-10TOPS/W的CNN计算能效是对始终在线的(Always-On)嵌入式设备运行NN的重要保证。不同计算压力下,计算量不同,因此能耗节省空间大[1]。

高精度调整乘法器电压+频率:DVAS->DVAFS。基于JSSC2016、VLSI2016的DVAS工作基础,对乘法器进行优化设计,增加实现频率的调整。DVAFS实现了对运行时所有可调整参数的降低:激活a,频率f,电压v。通过采用高位x高位、低位x低位,可以在16b阵列上同时计算两个8b乘法,对于后续的不同精度计算吞吐提升和资源利用提高起到极大的作用。

重点看一下本篇的架构设计:

在ENVISION中,数据重用分为三类:卷积重用(单一卷积核vs一张图的多图层);图像重用(多个卷积核vs一张图的单图层);卷积核重用(单一卷积核vs多张图像的多图层)。

总体架构如下:整个架构包含用于ReLU/MacPool/Mac计算的1D-SIMD,专用于MAC计算的2D-SIMD,用于数据和控制的RISC主控、DMA接口、DM、PM模块等。

下面几张图分别介绍了卷积重用(单一卷积核vs一张图的多图层);图像重用(多个卷积核vs一张图的单图层);卷积核重用(单一卷积核vs多张图像的多图层)的方法:

上面这些都是很基本的计算trick,但是在一款设计中要全部做到,很多以前的设计并没有做好。原因很多,比如在做多张的时候,如果复用一张的资源就需要2X的资源,但是本文结合了4-8-16复用一套计算单元的方法——就是在低bit的时候,还是一套资源。

几个其他特点:

  1. C编程
  2. 16bit指令
  3. IO的时候有huffman压缩
  4. GRD SRAM——用于使能sparse计算,关闭sparse的乘法;

关闭sparse的乘法:

芯片性能及能效表现:由上到下分为1x16b/2x8b/4x4b/30~60% 4×3~4b。可以看到scale非常大,能效相差可达40x,电压域为0.61v~0.85v。性能表现在BBopt下可达10TOPS/W。

总结[1]:

1、面向多层场景的Always-on架构

2、高能效的CNN处理架构:基于2D-SIMD;采用DVAFS技术;面向稀疏计算的检测及IO级压缩

3、ENVISION是一款具有0.25~10TOPS/W@76GOPS能效表现的嵌入式CNN处理芯片。

参考资料

[1] https://reconfigdeeplearning.com/2017/02/09/isscc-2017-session-14-slides14-5/

[2] ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel Dynamic-Voltage-Accuracy-Frequency-Scalable CNN Processor in 28nm FDSOI

ISSCC 2017论文导读 Session 14:ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel DVAFS CNN Processor in 28nm的更多相关文章

  1. ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network

    最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...

  2. ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network SOC

    最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...

  3. ISSCC 2017论文导读 Session 14 Deep Learning Processors,DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN

    转载请注明,本文出自Bin的专栏http://blog.csdn.net/xbinworld,谢谢! DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN Process ...

  4. ISSCC 2017论文导读 Session 14:A 0.62mW Ultra-Low-Power Convolutional-Neural-Network Face-Recognition Pro

    A 0.62mW Ultra-Low-Power Convolutional-Neural-Network Face-Recognition Processor and a CIS Integrate ...

  5. ISSCC 2017论文导读 Session 14: A 28nm SoC with a 1.2GHz Prediction Sparse Deep-Neural-Network Engine

    A 28nm SoC with a 1.2GHz 568nJ/Prediction Sparse Deep-Neural-Network Engine with >0.1 Timing Erro ...

  6. ISSCC 2017论文导读 Session 14:A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight

    A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight Storage Using Non-Uniform Mem ...

  7. 安装sql server2017出现错误:Visual Studio 运行时"Microsoft visual c++2017 X64 Minimum Runtime - 14.10.25008"需要修复

    安装sql server 2017 Developer Edition时,安装选择“基本”,发生如下错误: 解决方法: 1.进入控制面板→程序中,找到“Microsoft visual c++2017 ...

  8. 软考论文的六大应对策略V1.0

    软考论文的六大应对策略V1.0 短短2个小时,要写3000字的文章,对习惯了用电脑敲字.办公的IT从业人员而言,难度不小.尤其,大家会提笔忘字.笔者的应试策略,就是勤学苦练,考试前的一个星期,摸清套路 ...

  9. 论文学习-系统评估卷积神经网络各项超参数设计的影响-Systematic evaluation of CNN advances on the ImageNet

    博客:blog.shinelee.me | 博客园 | CSDN 写在前面 论文状态:Published in CVIU Volume 161 Issue C, August 2017 论文地址:ht ...

随机推荐

  1. IO流(6)获取功能

    获取功能: * public String getAbsolutePath():获取绝对路径 * public String getPath():获取相对路径 * public String getN ...

  2. javaScript高级教程(十) iframe

    1.iframe的基础,深入理解frame是何物,属性该如何设置. iframe即内联框架.不同于frame,frame与frameset综合使用,成为帧,框架集.frame已经不大使用了.说白了,f ...

  3. Shell初学(三)传参

    一. 脚本代码:test.sh echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1&quo ...

  4. mysql 数据操作 多表查询 多表连接查询 全外连接

    全外连接:显示左右两个表全部记录 全外连接 在内连接的基础上保留左右两表没有对应关系的记录 full join #注意:mysql不支持全外连接 full JOIN mysql> select ...

  5. druid.io本地集群搭建 / 扩展集群搭建

    druid.io 是一个比较重型的数据库查询系统,分为5种节点 . 在此就不对数据库进行介绍了,如果有疑问请参考白皮书: http://pan.baidu.com/s/1eSFlIJS 单台机器的集群 ...

  6. 问题解决 -------- 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题

    解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题 (2012-09-02 13:09:25) 转载▼ 标签: 杂谈 ...

  7. etcd 集群部署

    etcd web管理 https://nikfoundas.github.io/etcd-viewer/ # git clone https://github.com/nikfoundas/etcd- ...

  8. kmeans聚类源代码

    代码是在weka上二次开发的,但没有使用原来的kmeans代码,只是用了它的数据类Intances,先说下与它相关的几点东西. 一.KMeans算法简介 输入:聚类个数k,以及包含 n个数据对象的数据 ...

  9. 提示'HTTP消息不可读'

    1.提示下面的错误信息 2.修改后的代码,费用接口 import unittest import requests import json import HTMLTestRunner ur1 = 'h ...

  10. 浅谈Java中的初始化和清理

    引言 这篇文章我们主要介绍Java初始化和清理的相关内容,这些内容虽然比较基础,但是还是在这边做一个简单的总结,方便以后查阅. 初始化过程 Java尽力保证:所有变量在使用之前都会得到恰当的初始化(对 ...