最近收到这样一个课题,要做一个机器学习的这么一个东西。机器学习我也不太懂,电路仿真我也不太懂,处理器架构我也不太懂,总之就是要从头学起了。自带的manual都二十多页,好多英文,很多术语,真实的看不懂,一点一点来吧,争取看完能跑一跑基本的代码。。。

这个东西也是乔治亚大学的于施蒙教授搞得,RRAM做的很厉害的那个。
整个手册分为几个部分:1、介绍 2、新特性 3、使用方法 4、片级架构 5、电路级架构 6、算法级架构

1、介绍

DNN+neurosim是一种集成框架,自C++产生,pytorch封装。用以在基于近内存计算或内存内计算架构的硬件加速器上,模拟深度神经网络(DNN)推理性能(V1.0-V1.3)或芯片上训练(V2.0-V2.2)性能。但这个不是发布的版本,

该发布的3D+NeuroSim从DNN+NeuroSim扩展出来,以支持3D集成硬件加速器的电热共模拟。这个才是我们使用的版本。还要注意的是,这个可以进行电热模拟,已经达到了物理层面,类似于TCAD。只是不知道这样的仿真工具怎么描述电路和架构。

这个工具支持各种设备技术,包括SRAM、基于电阻开关的新兴非易失性存储器(如RRAM、PCM、STT-MRAM)存储器(eNVM)和铁电FET(FeFET)。SRAM本质上是每个单元1位的,这个模拟器中的envm和FeFET可以支持每个单元1位或多位。
SRAM是静态存储器,只有一位,其他的类型的存储器可能一个器件能有多位,也可以支持。

NeuroSim[1]是一个电路级宏模型,用于对电路启发架构(包括内存阵列、外围逻辑和互连路由)进行基准测试,包括电路级性能指标,如芯片区域、延迟、动态能量和泄漏功率。可以理解为,这个工具可以对不同架构的电路进行指标量化。
至于方式,不明。。。

使用Pypourch包装器,DNN+NeuroSim框架可以支持从设备级(从130nm到7nm、eNVM和FeFET设备特性)到电路级(外围电路模块,如模拟到数字转换器、ADC)到芯片级(由多个子阵列构建的处理元件瓷砖),以及全局互连和缓冲区,然后到算法层(不同的卷积神经网络拓扑),能够在推理运行时对推理精度和电路级性能指标进行指令准确评估。

意思大概是说能够支持的硬件很广泛,能够从器件级,电路级,芯片级和算法级进行仿真。至于方式,仍然不明,为什么有这么厉害的仿真工具啊。。。。但是这厉害可以看出芯片的层次:器件级最低,电路级,芯片级,次之,算法级最高。虽然每个层级意义都不太清楚。。。

该模拟器的目标用户是电路/架构设计者,他们希望使用不同的网络和硬件配置(例如设备技术选择、顺序读出或并行读出等)来快速估计系统级别的性能。

与我们之前发布的模拟器(MLP+NeuroSim[2])不同,后者网络被固定到2层MLP,纯粹在C++中执行(消耗长运行时间),这个DNN+NeuroSim框架是一个集成模拟器(即由python封装的C++)。这里好像都不太明白,什么是被固定到2层的MLP,什么是python封装的C++

有了包装器(wrapper),用户能够定义各种网络结构(network structures)、突触权值的精度(precisions of synaptic weights)和神经激活(neural activations),这保证了使用流行的机器学习平台运行的高效推理。

同时,包装器将在推理(inference)过程中自动保存真实的轨迹(突触权重和神经激活(synaptic weights and neural activations),并发送到NeuroSim进行实时和重新跟踪的硬件估计。

在这个发布的版本中,三个网络networks(略了)作为默认模型,具有8位突触权值和神经激活(synaptic weights and neural activations),而用户可以修改精度和神经网络拓扑(precisions and neural network topologies)。
硬件参数(如技术节点technology nodes、存储单元属性properties、操作模式等)将在Param.cpp中的NeuroSim下定义。
不知道怎么定义。。。

2、3D+NeuroSim V1.0的新特性

①实现三维集成电热共仿真
To enable monolithic 3D integration, we support automatic floor-plan to partition hardware component into top and bottom tiers
为了实现整体的3D集成,我们支持自动平面图将硬件组件划分到顶层和底层
这里的floor-plan 意义不明,查了一下好像是芯片设计的术语。就先认为是类似版图和位置的信息。

we introduce device parameters of top-tier transistors in technology library; we integrate a thermal fitting function (in Pytorch wrapper) to run electrical-thermal co-simulation.
我们在设计库中 引入了高层级( top-tier)的晶体管的器件参数
我们集成了一个热适应方程 来进行电热仿真

To enable heterogeneous 3D integration, we introduce vertical path of signal delivery with through-silicon via (TSV) and driver/receiver; we specify the floorplan where memory arrays are in memory tiers, and other logics are in logic tier, there is only one logic tier on the bottom, while user can define multiple memory tiers on top of the logic tier (as a memory cube). For heterogeneous 3D integration, we introduce a group of technology parameters, where users can define different technology nodes for memory tier and logic tier; meanwhile an integrated thermal fitting function is also introduced to enable electrical-thermal co-simulation.
为了实现异构集成,我们引入了垂直信号路径;
我们使floorplan分为memory tiers和logic tier;
logic tier只有一层,在最底端,memory tiers可以在上面设置多层

(a)对于单片3D集成

In [3], we present a work to benchmark monolithic 3D integrated CIM accelerators. To address the challenges of ADC overhead and scaling limitation caused by high write voltage in emerging non-volatile memory (eNVM), we propose partitioning the circuit modules in hybrid technology nodes on top and bottom tiers with massive inter-tier vias.
在文献3中,我们展示了一项工作来给3D integrated CIM accelerators做基准。
为了应对ADC overhead 和 eNVM的高读写电压带来的缩小限制的挑战,
我们建议分隔电路模块,分为多个技术节点,通过层间via连接

(b) Heterogeneous 3D Integration 异构集成

没看懂有什么差别。。。。

② Validate with real silicon data 用真实的硅片数据进行验证

加入了实际数据使得仿真结果更加逼近实际值,但表现会更差,可以手动关闭

③Add synchronous and asynchronous mode 加入了同步和异步模式

In previous versions, the latency of the whole chip is accumulated by the critical path delay of each module, which is clockless and asynchronous.
在之前的版本,芯片的延时由各个模块的关键路径决定,没有时钟,异步电路

④Update technology file for FinFET

这里提到了一个概念 predictive technology model (PTM)
里面有的模型是虚构的,和实际的器件不同(finFET)
因此在Technology.cpp中做了一些修正(?)

⑤ Add level shifter for eNVM

给eNVM加入了电压平移模块,来应对较大的读写电压

今天先看到这里,有了一个大概的理解,但是具体的理解还是要看代码
接下来是从芯片级、电路级、算法级来详细描述一些内容。
虽然说我记得前面说了层级顺序是 器件级,电路级,芯片级和算法级
不知道这里为什么是乱的。。。

Neurosim的manual细读(一)相关推荐

  1. Neurosim的manual细读(四)

    Algorithm Level: PyTorch Wrapper 算法级,PyTorch 包装器 The algorithm we use to get the quantized DNN model ...

  2. SQL查询1064报错 [ERR] 1064 - You have an error in your SQL syntax; check the manual.......

    MySQL建表出现1064问题问题 SQL语句 DROP DATABASE IF EXISTS bookstore; DROP DATABASE bookstore; USE bookstore; C ...

  3. 解决:Error: Insufficient values in manual scale. 5 needed but only 4 provided.Run `rlang::last_error()

    解决:Error: Insufficient values in manual scale. 5 needed but only 4 provided.Run `rlang::last_error() ...

  4. SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist -

    SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist - SAP WM模块里的事务代码LQ02很有用 ...

  5. SAP QM 事务代码QE01录入结果后回车,为啥不弹出Manual Valuation窗口?

    SAP QM 事务代码QE01录入结果后回车,为啥不弹出Manual Valuation窗口? 执行事务代码QE01为检验批#10000000476录入结果, 录入检验结果后回车,没有弹出类似如下图的 ...

  6. GNU make manual 翻译(一)

    当分析PostgreSQL 的源代码的时候,经常遇到 Makefile, 读不懂其中的语句,很是令人烦恼.最近准备静下心来,好好地阅读. 为了达到这一目的,进行一次翻译. 复制代码 1 Overvie ...

  7. 分享GitHub上一位老外的嵌入式C编码规范(收藏细读)

    简 介: 本文分析在头条上分享GitHub上一位老外的嵌入式C编码规范(收藏细读):嵌入式大杂烩. 关键词: 嵌入式,C语句,编程规范 分享GitHub上一位老外的嵌入式C编码规范(收藏细读) §01 ...

  8. 测试类异常Manual close is not allowed over a Spring managed SqlSession

    测试类异常Manual close is not allowed over a Spring managed SqlSession 参考文章: (1)测试类异常Manual close is not ...

  9. Linux - 手册(manual)使用 详解

    手册(manual)使用 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/22664555 环境: Ubuntu 12.04 ...

最新文章

  1. 创新是低情商的人做的
  2. 关于linux的root用户密码忘记处理成绩
  3. java jsonobject_Java实现QQ登录
  4. RACSignal的Subscription深入分析
  5. 怎么改vue项目的标题_vue修改项目名
  6. 纱窗.20190512
  7. Elementui动态换肤
  8. Java Hello World程序
  9. Django笔记13(部署Django)
  10. 2013 Office安装aurora公式编辑器
  11. 把html模板vue框架,vue框架搭建个人博客网站模板
  12. 操作系统——进程管理的功能
  13. 华师大学 计算机 调剂,2020华南师范大学调剂公告
  14. 尽早取出住房公积金是明智选择
  15. 不均衡样本集的重采样
  16. SQL语句中将字符串转换为时间格式
  17. 【k8s金牌知识】k8s升级攻略
  18. frp点对点udp方式内网穿透ssh,不走服务器流量
  19. 乔坟往事-付生回来了
  20. canvas 涂鸦画板,支持笔写、手写、鼠标绘图

热门文章

  1. 【SemiDrive源码分析】【X9芯片启动流程】23 - MailBox 核间通信机制介绍(代码分析篇)之 RPMSG-IPCC Kernel 篇
  2. php 网页快照类,php根据url生成网页快照(CutyCapt.exe)
  3. P vs NP vs NP Complete vs NP Hard
  4. 如何在idea导入.jar主题包
  5. Proxy代理的作用
  6. 中国电信北京电信机房对比篇
  7. 信息系统监理师考试如何备考(附加资料)
  8. ubuntu14.04 配置安装 wineQQ 2013
  9. windows 系统自带分区工具实现无损分区
  10. 合泰HT32--淘晶驰TJC--T0串口屏学习笔记(二)