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. Vue 过渡

    过渡 通过 Vue.js 的过渡系统,可以在元素从 DOM 中插入或移除时自动应用过渡效果.Vue.js 会在适当的时机为你触发 CSS 过渡或动画,你也可以提供相应的 JavaScript 钩子函数 ...

  2. TSNE数据降维学习【转载】

    转自:https://blog.csdn.net/u012162613/article/details/45920827 https://www.jianshu.com/p/d6e7083d7d61 ...

  3. 使用tagName定位报错

    使用标签进行定位元素,页面报错,由于input标签不唯一,webdriver默认会取第一个元素,但是第一个input元素的类型是‘hidden’,无法展示,因此程序就报错了 如何解决,未完待续...

  4. javascript产生对象(不建议看)

    产生对象的方式:一.new+构造函数1.JavaScript的内置构造函数,如Date(),Function(),Array(),Object()2.自定义的构造函数二.对象字面量{}三.继承 用 v ...

  5. 源代码下载 作者:王先荣(Xianrong Wang)

    作者:王先荣(Xianrong Wang) 下面是我的一些源代码: 1. 图像处理学习系列源代码——包括该系列文章的几乎所有代码: 1.5. 图像处理学习系列中用到的dll文件包——将这个解压缩之后放 ...

  6. vue.js使用typescript踩坑记

    最近在把https://github.com/renrenio/renren-fast-vue这个项目转为typescript,在此记录一下遇到的小坑 name坑:属性该怎么给? 声明文件坑:如何解决 ...

  7. #C++初学记录(ACM试题1)

    A - Diverse Strings A string is called diverse if it contains consecutive (adjacent) letters of the ...

  8. Integer类之缓存

    在开始详细的说明问题之前,我们先看一段代码 1 public static void compare1(){ 2 Integer i1 = 127, i2 = 127, i3 = 128, i4 = ...

  9. SSRS创建复合型图表

    SSRS创建复合型图表 1.添加报表数据对应代码: if object_id('tb') is not null drop table tb; go CREATE TABLE tb(yearid in ...

  10. python webdriver api-操作日期元素的方法

    操作日期元素 第一种方式直接向输入框输入日期 dateInputBox = self.driver.find_element_by_id("datepicker") dateInp ...