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 Error Rate Tolerance for IoT Applications
单位:Harvard(哈佛大学)
这是一篇专门为DNN加速设计的芯片,在CNN加速芯片设计当道的今天也算是非常另类了~~不过能在ISSCC上发表,自然也有它的innovation,下面讲一讲。
就我当前的可以理解部分(知识结构不足哈,Razor timing violation detection这一块暂时不是特别清楚,留着以后再补),我觉得本文的创新点有:(1)稀疏计算,数据0不会参与运算;(2)采用sign-magnitude number format保存参数和计算;
DNN计算(就是一个向量*矩阵)是存在SIMD窗口的,一个输入同时可以计算多个节点。但是很容易想到,如果SIMD窗口太大,数据是重用了,但是参数一次要读太多会使得带宽变大。
因此,作者分析了数据和参数读取的相对比例,如图,可以看出,8通道的SIMD其效率是较高的,带宽也在合理范围内,同时可以在128b位宽的AXI总线下运行获得10x的数据有效重用率。
下面是整体架构图,是一个5阶段的SIMD流水架构,流程基本上是:
1、Host Processor将配置和输入数据载入CFG和IPBUF
2、乘累加器进行计算,数据由IPBUF读入,权重由W-MEM读入
3、在Activation步骤,进行偏置、激活操作,随后将数据写回XBUF(隐藏层结果)
4、向host发起中断请求,数据输出
分别对几个点展开讲一下:
XBUF:有两份,使得同时可以写结果到XBUF,又可以读数据用于计算;
Weight采用sign-magnitude number format:其实就是1bit符号位,后面是绝对值的原码,这样的好处是减少了补码表示带来的bit翻转率,既降低了功耗,也减少了出错率;
MAC Datapath:有8个并行的16bit MAC单元。因为采用SM,所以作者对同号和异号分开处理——其实就是同号乘结果累加,异号减去。
重点还有sparse怎么做。在MAC单元计算完(累加完成),然后要加上Bias,然后过RELU单元(也是因为RELU所以数据结果才稀疏,但是换其他激活函数就不行了),对于0数据(以及小于阈值的比较小的值),是不会写回XBUF的,同时Activation生产了SKIP信号存在临时的NBUF中。NBUF(512B SRAM)中维护的是参数中非零的index,DMA阶段会根据index来生成weight address,用于下个阶段从W-MEM取参数;这样就可以避免0数据的计算cycle了。
最后总结[1]:
DNN ENGINE——一款高能效的DNN加速器(568nj/pred@1.2GHz),时序容差>10^-1@MNIST 98.36%
-Parallelism:10x的数据重用@带宽128b/cycle
-Sparcity:+4x吞吐,-4x能耗
-Resilience:+50%吞吐/-30%能耗(2/Razor)
[1] https://reconfigdeeplearning.com/2017/02/08/isscc-2017-session-14-slides14-3/
[2] ISSCC2017, A 28nm SoC with a 1.2GHz 568nJ/Prediction Sparse Deep-Neural-Network Engine with >0.1 Timing Error Rate Tolerance for IoT Applications
ISSCC 2017论文导读 Session 14: A 28nm SoC with a 1.2GHz Prediction Sparse Deep-Neural-Network Engine的更多相关文章
- ISSCC 2017论文导读 Session 14:ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel DVAFS CNN Processor in 28nm
ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel Dynamic-Voltage-Accuracy-Frequency-Scalable CNN Proce ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 论文翻译:2022_PACDNN: A phase-aware composite deep neural network for speech enhancement
论文地址:PACDNN:一种用于语音增强的相位感知复合深度神经网络 引用格式:Hasannezhad M,Yu H,Zhu W P,et al. PACDNN: A phase-aware compo ...
- 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
[论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...
- 论文阅读(XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network)
XiangBai——[AAAI2017]TextBoxes:A Fast Text Detector with a Single Deep Neural Network 目录 作者和相关链接 方法概括 ...
随机推荐
- Docker源码分析(五):Docker Server的创建
1.Docker Server简介 Docker架构中,Docker Server是Docker Daemon的重要组成部分.Docker Server最主要的功能是:接受用户通过Docker Cli ...
- 微信Android热补丁实践演进之路
版权声明:本文由张绍文原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/81 来源:腾云阁 https://www.qclou ...
- 图论之最短路径(1)——Floyd Warshall & Dijkstra算法
开始图论学习的第二部分:最短路径. 由于知识储备还不充足,暂时不使用邻接表的方法来计算. 最短路径主要分为两部分:多源最短路径和单源最短路径问题 多源最短路径: 介绍最简单的Floyd Warshal ...
- IntelliJ Idea 2018 注册码
转自:http://idea.lanyus.com/ *.lanyus.com及*.qinxi1992.cn下的全部授权服务器已遭JetBrains封杀 请搭建自己的IntelliJ IDEA授权服务 ...
- onethink重新安装,提示已安装过解决办法!
onethink完全重新安装的时候提示已安装过,直接跳过数据库安装的解决办法 首先:删除根目录下 Data目录下的 install.lock 文件,然后: 打开\Application\Install ...
- ThinkPHP分类查询(获取当前分类的子分类,获取父分类,下一级分类)
获取指定分类的所有子分类ID号 //获取指定分类的所有子分类ID号 function getAllChildcateIds($categoryID){ //初始化ID数组 $array[] = $ca ...
- rest_framework之序列化详解 06
拿到所有的角色数据 1.urls.py 2.models.py 假设只有3个角色 3.views.py from api import models import json json只能序列化pyt ...
- ora-00600错误解决一枚
今天网友遇到ora-600错误,这里把这个ora-600错误的解决方法详细记录一下. 最初报错信息如下: ora-600-图1 ora-600-图2 图3 这里我们可以看到报错控制文件版本不一致,要求 ...
- backend community-driven web framework
kataras/iris: The fastest backend community-driven web framework on (THIS) Earth. HTTP/2, MVC and mo ...
- APM最佳实践: 诊断平安城市视频网性能问题
前言: 平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战.如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,APM在发现问 ...