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相关推荐

  1. 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 ...

  2. 论文翻译:2022_PACDNN: A phase-aware composite deep neural network for speech enhancement

    论文地址:PACDNN:一种用于语音增强的相位感知复合深度神经网络 相似代码:https://github.com/phpstorm1/SE-FCN 引用格式:Hasannezhad M,Yu H,Z ...

  3. 论文笔记: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 ...

  4. 《TextBoxes: A Fast Text Detector with a Single Deep Neural Network》论文笔记

    参考博文: 日常阅读论文,这是在谷歌学术上搜索其引用CRNN的相关文献中被引数量比较高的一篇OCR方向的文章,这里拿来读一读. 文章目录 make decision step1:读摘要 step2:读 ...

  5. 论文阅读(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 目录 作者和相关链接 方法概括 ...

  6. 论文阅读 [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 论文搜索 ...

  7. 【读论文】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 ...

  8. 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 文章 ...

  9. 【那些年我们一起看过的论文】之《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》

    /* 天下武功,唯快不破.要想在移动终端或者嵌入式系统上应用,小巧高速是很重要的.ENet在追求高效率的同时兼顾了精度,站在巨人的肩膀上,综合了很多特色的网络结构,并在输入端首先加以压缩达到加速的目的 ...

  10. 《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》论文笔记

    1. 概述 导读:一般的分割网络需要大量的浮点运算以及较长的运算时间,这个妨碍了其在实时要求较高场合的使用,这篇文章提出了基于编解码器结构的实时分割网络ENT(Efficient Neural Net ...

最新文章

  1. HTTP1.1协议请求方面参数
  2. python exe运行报 编码错误_python运行显示编码错误
  3. Python中文分词--jieba的基本使用
  4. mysql 分组数据_MySQL基础之分组数据
  5. php 字符串截取_网络安全WEB之PHP代码审计,攻防世界题目warmup
  6. ubuntu16.04下面git与github对应起来
  7. Java学习笔记4——I/O框架
  8. Nginx报错:nginx: [emerg] CreateFile() nginx.conf“ failed (3: The system cannot find the path specified
  9. 华为鸿蒙os2.0系统何时搭载手机,鸿蒙OS 2.0系统正式发布!余承东:明年华为系手机将会搭载...
  10. Django打造大型企业官网-项目实战(二)
  11. QA:阿里云K8s启动容器后无法访问网络
  12. synchronize原理以及和CAS的浅层比较
  13. vsto java,VSTO开发入门,C#基础篇
  14. python直方图解释_python直方图1 lin
  15. 使用无觅APP工场:你也可以拥有自己的APP
  16. 四毛子算法与+-1RMQ
  17. 桌面计算机密码修改频率,教大家如何更改电脑的显示频率
  18. 云和恩墨 oracle 监控,产品速递 | 云和恩墨Bethune Pro2——数据库实时监控和智能巡检平台...
  19. java 使用LocalDate根据起始时间和结束时间算出周的列表
  20. 云服务器有几种类型,一般要如何选购

热门文章

  1. android gps 获取方位_Android通过gps获取定位的位置数据和gps经纬度
  2. 网页导出pdf不完整_这些 PDF 神器,请你务必收藏
  3. ROS | 机器人操作系统简介
  4. 下载 嵌入式qt实战教程pdf_嵌入式QT基础视频教程免费分享!
  5. Java性能优化面试题汇总
  6. C10K 和 C1000K
  7. 有哪些不错的数学、物理类的「闲书」?
  8. FFmpegFFplay常用命令汇总
  9. qq音乐推荐下载器(一)——模拟搜索,下载,读取评论制作词云并将下载数据传至数据库
  10. ESP8266 教程1 — ESP8266硬件平台介绍