Neurosim的manual细读(一)

最近收到这样一个课题,要做一个机器学习的这么一个东西。机器学习我也不太懂,电路仿真我也不太懂,处理器架构我也不太懂,总之就是要从头学起了。自带的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加入了电压平移模块,来应对较大的读写电压

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

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值