Note:因为只是笔者的阅读记录,所以内容组织上较为混乱!(如有错误,可评论指出!谢谢!)

1、2's complement

此即二补数,是一种用二进制表示有号数的方法,也是一种将数字的正负号变号的方式,常在计算机科学中使用。在中国大陆地区通常称作补码。 一个数字的二补数就是将该数字作位反相计算(即一补数),再将结果加 1,即为该数字的二补数。在二补数系统中,一个负数就是用其对应正数的二补数来表示。

2、ppt图里面的MACV字母下面的12~20代表的意思是,在HMACRB模块输出的值的位宽,当输入激活值与权值都是4bit的时候,输出是12bit,如果都是8bit的,则输出是20bit;

3、不仅有水平的GBL,而且还有垂直的GBL;

4、整体架构就是,一共4Kb,分成两个512*64的大array,然后每个这个大array中包含了四个大的MMACCB,即多位乘累加计算块,这四个计算块排成四行;然后在每个计算块中又分成了八个Wbw-MACA,即逐位权值乘累加单元阵列,这八个单元阵列排成一行的形式,然后每个单元阵列中有八个6TSRAM单元排成一行,用来存储一个8bit的权值,然后这个单元阵列中具体有多少行,看图上标的应该是16行,但是计算出来的应该是有32行,不过估计应该是16,因为那篇TCAD的文章就是将这样一个单元阵列作为一个权重组;

那如果一个单元阵列中确实是16行的话,即存储16个权值的话,那前面说的每个大array中就不止包含四个MMACCB了,而是包含了32个了;??

接上面的,每个单元阵列中有64个BMU,目前来看的话BMU的排布是八行八列的形式,然后每个BMU中还包含一个LCC,所以综上的每个单元阵列每行只有8bit,所以就是说每个BMU是个16行一列的形式,即一个单元阵列就是TCAD文章中的一个权重组,里面可以存储16个8bit的权重;

哎,上面说的每个单元阵列中的一行就是一个权重,又理解错了,虽然它确实是8个bit,但是卷积核中的每个权值不是这么存储的,结合前面的,每个单元阵列中共有64个BMU,然后他们是8*8的形式排列,每个BMU是16行一列,所以其实就是每个单元阵列中存了16*8个8bit的权值,这16*8个8bit的权值分成了八列,每一列都是16个bbit的权值,每一列的16个权值的每一位都分别处在这一列的8个BMU中,也就是说第一个权值的第0位在第0个BMU的第一行,然后这个BMU的第二行放的不在是这个权重的第1位,而是第二个权重的第0位,也就是说,这一列的第一个BMU中,存放的是16个权值的所有的第0位;

结合上面这张图,可以看到,最右边的表格其实是一个单元阵列,即Wbw-MACA,其中包含了64个BMU,从图中也能看到上面一排的下面一排的BMU,以及他们下面的LCC,结合左边的指针以及LCC中的公式,其实可以知道,(先说一下存储的权重排布问题,因为权重基本都是四维的,所以可以认为这个单元阵列中存储的是16组卷积核的前8个通道的权值,即第一行的8个权值的第0位均来自第一组卷积核的8个连续排布的通道,然后在每列剩余的7个BMU中,存储剩下的7个bit,然后其余15组卷积核的存储同理),每次只激活每行BMU中的一行SRAM单元,然后一共8行BMU,所以每次总共激活八行SRAM单元,而且这八行的SRAM存储的是同一组卷积核中的8个通道的相同位置的那8个权值,这样的话就能继续下去了;

下面详细说一下是如何算出一组卷积核中8个通道的8个权值与相应的8个输入值的乘累加过程:ok,我们知道他们如何存储的,然后在某一个周期,同时激活八行BMU中的相同位置的八行SRAM单元,不妨先将拿第一列BMU来说,输入的8bit的激活值将于八行中的8个1bit的权值分别相乘,这里暂时不讨论乘出来的结果是什么样的,但是可以知道相应的BMU中的LCC中已经得到了这个输入与单比特权值的乘积结果;相应的这样的其余7个BMU的LCC中也得到了相应通道上的权值与激活值的乘积结果,不过目前这些结果都是单比特权值与8bit输入的乘积结果,然后这一行得到的LCC中的结果将被同时送到WBW-LMAR模块中,即权值逐位的低乘累加读出模块,然后将这8个结果累加到一起;

综上,因为同时激活的是八行SRAM单元,所以进行的就是每一个8bit输入与一个8bit权值的每一位的乘法之后,在每一行的BMU单元连接的两个WBW-LMAR模块中进行累加,(为什么这里说的是每一行BMU中有两个WBW-LMAR模块了,是因为文章说的,而且PPT里面的图也画出来了,每一行的BM接出来两根GBL的输出,然后这两个输出分别接到一个WBW-LMAR模块上,这么说也不是没道理,因为要将8bit输入一下与一个1bit的权值进行乘法,属实有点浪费时间,所以按照文章的意思,每个BMU中的LCC是用于4bit输入与1bit权值的乘法的,所以如果输入是8bit的,那就需要分成两次来进行,这也就是为什么会连接两根GBL的输出;),所以,所以,在相应的8行SRAM单元的MAC操作结束后,相应的累加结果会出现在16个WBW-LMAR模块中,然后DWCC即数字的权重配置电路将会把这16个权值与他们的相应位置值结合到一起,得到最后正确的、接近全精度的输出值;

我前面的又理解错了,8个单元阵列并不是排成一行,而是真的是排成一列,然后不是每个单元阵列中有64个BMU嘛,这64BMU也真的是排成了一排,所以也就是说这64个BMU形成一个16*64的SRAM阵列,然后一个乘累加块有8个单元阵列就是8*16*64=128*64,然后一边有4个乘累加块,所以得到4*128*64=512*64,这样才最终完全符合了图中所示啊!

然后前面说的具体在乘累加操作,还是以8bit的输入为例吧!对于8bit的输入,将分成两个阶段来输入进来,例如先输入低4比特,然后计算完之后在下一个阶段再输入高四位;输入进来的四位也会分开进行乘法操作,具体如何,后面再说;这里主要探讨一下乘累加到DWCC的流程;还是那样,从上面输入进来n个输入,这里的n最大可达到64(其实图里面画的是16,主要是因为最多存储一组卷积核的16个通道相同位置的8bit权值),因为现在的BMU是排成一排了,然后每一行的BMU中,实际上就是每一行的单元阵列中存储的是一组卷积核的连续16个通道的相同位置的权值的第相同位,例如第一行的BMU中,存的就是16通道上第0个权值的第0位的数值;然后依次类推,在这第一个大乘累加块的8行单元阵列中,就会依次存下这16个权值的所有的第0位,第1位,一直到第7位;

然后乘的过程倒是和上面的理解基本一直,不过就是将输入进来的4bit分成了两两一组的形式,然后2bit分别进行乘法,然后16个输入相同位置2bit输入与1bit权值乘法的结果将累加到一起,从该行单元阵列连接的其中一个WBW-LMAR模块中输出,然后另外的2bit也是同样操作,然后从另一个WBW-LMAR模块中输出;

可以想到,在8行单元阵列中,这些操作是同时进行的,所以在第二个阶段结束之后,就能得到16个8bit输入与16个8bit权值乘累加的各部分累加值,即pMACV,然后这些值从16个WBW-LMAR模块中与他们相应的位置信息结合,在DWCC模块中得到最终的正确结果;

至于前面说的现在每一排BMU不是有64列吗,但是这64列不是也不会一起激活,因为一次激活这么多的话,在GBL上的电流可能或者说电压就会超过了后面模块的sensing margin,所以应该就是如图所示的那样,一次只会激活一行中的16列的SRAM单元;(又错了,文章后面又说到可以选择一次激活32列的BMU,就看怎么选吧!)

后面一段说到,这样进行的两两一组的乘累加,最后形成的结果的电压等级的数量相较于逐字的乘累加结构是要小一点的,也因此获得了更大的感知容限sensing margin;

算了一下这篇文章和上一篇文章中出现的Tac,在输入权值都是8bit的情况下,需要8.4ns,所以最后最大的频率也不过是1000/8.4=119Mhz;昨天那篇202116.3的话,是7.2ns,那最大频率为138Mhz;

如果输入是4bit,权值是8bit,那么只需要one cycle即可完成16个输入与权值的乘累加,并得到接近全精度的输出;但是如果输入也是8bit,那么至少需要两个周期才能完成了,因为文中的意思就是8Bit的输入就相当于再重复一次前面的4bit输入时的操作;

PPT里面有张图算了一下,就是每一行输出的2bit输入与权值的乘累加结果的分布范围,因为2bit能代表4个不同值,所以最后16个结果累加的话,就会有0~48个不同的等级值,但是作者再cifar100的数据集上的统计结果表明,大部分值都分布在0~32之间,所以那个VSA,即电压型灵敏放大器用的是5bit的输入,但是最后输出倒是6bit的,不过这一位都统一设置成了0;

最后从16个WBW-LMAR模块中会输出16个6bit的部分累加结果,然后全部送到DWCC中进行处理;

2020ISSCC 基于SRAM的存内计算15.5阅读记录相关推荐

  1. 【文献阅读09】:用于稳定DNN加速的混合RRAM/SRAM存内计算

    标题:Hybrid RRAM/SRAM In-Memory Computing for Robust DNN Acceleration 时间/来源:2022Nov /TCAD Arizona Stat ...

  2. 基于新型忆阻器的存内计算原理、研究和挑战

    作者 | 林钰登.高滨.王小虎.钱鹤.吴华强 来源 | <微纳电子与智能制造>期刊 引言 过去半个世纪以来 ,芯片计算性能的提高主要依赖于场效应晶体管尺寸的缩小.随着特征尺寸的减小 ,器件 ...

  3. 存内计算能否成为下一代AI芯片的关键

    来源:半导体行业观察 随着人工智能的落地和大规模应用,AI芯片也成为了常见的芯片品类.AI芯片相比传统芯片来说,主要的竞争优势就在于高算力和高能效比.高算力是指能够比传统芯片更快地完成AI计算,而高能 ...

  4. 北大燕博南:下一代AI芯片— 存内计算的硬核与软着陆 | 报告详解

    [专栏:前沿进展]近年来,随着深度学习算法的广泛应用,人工智能方兴未艾,AI相关技术的应用也越来越丰富.伴随着AI发展一起到来的,则是对硬件性能要求的不断提升.时至今日,传统的CPU,甚至GPU已不能 ...

  5. in memory computing 存内计算是学术圈自娱自乐还是真有价值?

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. 青源 LIVE 第 28 期 | 北大燕博南:下一代AI芯片—存内计算的硬核与软着陆

    人工智能时代,随着AI应用的普及,AI领域迫切需要性能更强.功耗更低.成本更低的芯片.这当中,存内计算突破了传统冯诺依曼瓶颈,实现了存储单元与逻辑单元的融合,是实现智能计算的主要技术路线之一. 智源社 ...

  7. In Memory Computing(存内计算、存算一体、内存内计算)

    什么是In Memory Computing(存内计算.存算一体.内存内计算)? In-memory Computing 技术就是以 RAM 取代 hard disk ,将 data 与 CPU 之间 ...

  8. 基于Apache math3 的遗传算法计算复杂函数在定义域内的最值

    遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最优化的搜索算法,是进化算法的一种.进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传.突变. ...

  9. 网内计算:可编程数据平面和技术特定应用综述

    网内计算:可编程数据平面和技术特定应用综述 摘要--与云计算相比,边缘计算提供了更靠近终端设备的处理,降低了用户体验的延迟.最新的In-Network Computing范例采用可编程网络元素在数据达 ...

  10. 人工智能的另一方向:基于忆阻器的存算一体技术

    2020-05-06 22:10:35 作者 | 刘千惠.邢东 编辑 | 蒋宝尚 过去的十年以深度神经网络为代表的人工智能技术深刻影响了人类社会.但深度神经网络的发展已经进入瓶颈期,我们仍处于弱人工智 ...

最新文章

  1. 胖爷的vim实用手册 - 基础篇(打开、关闭、移动、搜索)
  2. 《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.15 本章小结...
  3. 计算机工具软件应用考试,《计算机常用工具软件》期中考试题
  4. 开发外包注意事项——iOS APP的开发
  5. view [bootstrap-4] not found如何解决_Dubbo如何处理业务异常,这个一定要知道哦
  6. 小程序 array.map_Array.map解释了4个复杂级别:从5岁到功能程序员。
  7. Datawhale 三月组队学习计划
  8. 思普linux安装教程,思普产品全生命周期管理系统_全生命周期管理_云市场-华为云...
  9. 采用java编写一个软件,100以内的口算题【软件构造大作业】
  10. 以下哪些不是Linux操作系统特点,[多选] Linux操作系统具有以下()特点。
  11. 淘宝、美团、滴滴分别如何搭建大数据平台
  12. 手把手教你搭建STM32MP1开发环境
  13. 计算机网络实训报告总结,学习计算机网络的实训总结
  14. AI换脸技术再创新高度,DeepMind发布VQ-VAE二代算法
  15. Ubuntu系统键盘背光灯不亮解决办法
  16. 大型综合股票金融财经门户网站模板源码
  17. JS_01_变量_数据类型
  18. 机器学习、深度学习面试知识点汇总
  19. echarts 3d地图
  20. 编译ZMQ和JZMQ

热门文章

  1. 用JSP实现简单的留言板
  2. <数据库原理与应用> (SQL Server 2012)---基于计算思维 教材习题答案
  3. SQL server2012安装
  4. 微信小程序蓝牙ibeacon_微信小程序的新接口 – 蓝牙
  5. 线性代数学习指导与MATLAB编程实践,21世纪高等理工科重点课程辅导丛书:线性代数学习指导与MATLAB编程实践...
  6. 单片机破解的常用方法及应对策略
  7. 如果在网上匿名15分钟
  8. 个人号微信API接口
  9. 手机型号修改 java_Android 中的设置关于手机中的型号的更改
  10. 霍尼韦尔门禁说明书_霍尼韦尔指纹锁说明书