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 ...
- 论文翻译:2022_PACDNN: A phase-aware composite deep neural network for speech enhancement
论文地址:PACDNN:一种用于语音增强的相位感知复合深度神经网络 相似代码:https://github.com/phpstorm1/SE-FCN 引用格式:Hasannezhad M,Yu H,Z ...
- 论文笔记:Identifying Lung Cancer Risk Factors in the Elderly Using Deep Neural Network - Chen, Wu
论文笔记:Identifying Lung Cancer Risk Factors in the Elderly Using Deep Neural Network - Chen, Wu 原文链接 I ...
- 《TextBoxes: A Fast Text Detector with a Single Deep Neural Network》论文笔记
参考博文: 日常阅读论文,这是在谷歌学术上搜索其引用CRNN的相关文献中被引数量比较高的一篇OCR方向的文章,这里拿来读一读. 文章目录 make decision step1:读摘要 step2:读 ...
- 论文阅读(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 目录 作者和相关链接 方法概括 ...
- 论文阅读 [TPAMI-2022] ManifoldNet: A Deep Neural Network for Manifold-Valued Data With Applications
论文阅读 [TPAMI-2022] ManifoldNet: A Deep Neural Network for Manifold-Valued Data With Applications 论文搜索 ...
- 【读论文】A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time...
目录 1. 这篇文章的主要研究内容 2. MSCRED Framework 1. Problem Statement 2. Overview (1)Characterizing Status with ...
- Identifying drug–target interactions based on graph convolutional network and deep neural network 论文
Identifying drug–target interactions based on graph convolutional network and deep neural network 文章 ...
- 【那些年我们一起看过的论文】之《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》
/* 天下武功,唯快不破.要想在移动终端或者嵌入式系统上应用,小巧高速是很重要的.ENet在追求高效率的同时兼顾了精度,站在巨人的肩膀上,综合了很多特色的网络结构,并在输入端首先加以压缩达到加速的目的 ...
- 《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》论文笔记
1. 概述 导读:一般的分割网络需要大量的浮点运算以及较长的运算时间,这个妨碍了其在实时要求较高场合的使用,这篇文章提出了基于编解码器结构的实时分割网络ENT(Efficient Neural Net ...
最新文章
- HTTP1.1协议请求方面参数
- python exe运行报 编码错误_python运行显示编码错误
- Python中文分词--jieba的基本使用
- mysql 分组数据_MySQL基础之分组数据
- php 字符串截取_网络安全WEB之PHP代码审计,攻防世界题目warmup
- ubuntu16.04下面git与github对应起来
- Java学习笔记4——I/O框架
- Nginx报错:nginx: [emerg] CreateFile() nginx.conf“ failed (3: The system cannot find the path specified
- 华为鸿蒙os2.0系统何时搭载手机,鸿蒙OS 2.0系统正式发布!余承东:明年华为系手机将会搭载...
- Django打造大型企业官网-项目实战(二)
- QA:阿里云K8s启动容器后无法访问网络
- synchronize原理以及和CAS的浅层比较
- vsto java,VSTO开发入门,C#基础篇
- python直方图解释_python直方图1 lin
- 使用无觅APP工场:你也可以拥有自己的APP
- 四毛子算法与+-1RMQ
- 桌面计算机密码修改频率,教大家如何更改电脑的显示频率
- 云和恩墨 oracle 监控,产品速递 | 云和恩墨Bethune Pro2——数据库实时监控和智能巡检平台...
- java 使用LocalDate根据起始时间和结束时间算出周的列表
- 云服务器有几种类型,一般要如何选购