tags
type
status
date
slug
summary
category
password
icon
3.20 (st-gcn)Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

- Image integration:
,取样函数
,c维的特征函数
- Image→Graph
redefine fin&p&W
,定义为与节点边数≤D的节点集合。这里我们固定D=1
- st-gcn
labeling function。其中和都是针对,K是分组的组数。这样一共分为组。

第一种uniform。
第二种distance。根节点,邻居
第三种spatial configuration。所有节点的空间位置取平均为“重心”。根节点,比根节点离重心更近,否则
,(element-wise product)
(V*c’)=(V*V)(V*V)(V*V)(V*c)(c*c’)?
V=25, c=3,64,128,256
,3*9=27(对于第三种)
batchnorm→3→64^3→128^3→256^3→softmax
3.20 A scalable universal Ising machine based on interaction-centric storage and compute-in-memory
3.21 High-speed emerging memories for AI hardware accelerators
比较了各种硬件实现PIM buffer memory的路线
加速器需要两种存储:weight memory存模型权重 & buffer memory存中间结果
本文主要关注buffer memory,主要关注读写速度和寿命两个指标
- SRAM
传统实现buffer memory的方式
结构:传统6T,触发器4+MOS2
优点:访问快~ns,耐用性好>10^16 cycles,扩展性好
缺点:high stand-by leakage power
靠近运算单元的buffer需要ns级别的读写速度,但较远的global buffer对读写速度没有那么高的要求,有创新空间
- PCM/PRAM(phase change memory) & ReRAM
缺点:读写速度慢~100ns,耐用性差10^6~10^9cycles,写入耗能大>1pJ


- 2T gain cell
结构(上图左):利用寄生电容代替了传统DRAM中1T1C的C。SN(storage node)中的电荷存储信息。WWL写入信息,RWL读出信息
缺点:寄生电容必须足够大才能维持信息较长时间(~s)不变化,这样就能免去refresh的操作;漏电流大;charge-injection issue,寄生电容与WWL,RWL耦合
- FeFET & FeRAM
结构(上图右):经过掺杂的HfO2薄层具有铁电特性,用原子极性来存储信息。该种铁电材料可以替代半导体。FeRAM在FeFET的基础上加入一个MFM(metal–ferroelectric–metal)电容,WL激活后,
State ‘1’ induces a polarization switching current in addition to the discharge current of the state ‘0’.
通过BL电流的差别,我们就可以区分0和1。
缺点:‘1’的读取是destructive process,故每次读取完之后需要write-back。这使得读和写都会消耗铁电器件的寿命。目前寿命约~10^12cycles。可以通过dual-mode来优化,把经常变动的数据用类似eDRAM的方式存储
优点:?


- STT-MRAM & SOT-MRAM
结构(上图):核心是MTJ,铁电+电介质+铁电,其阻抗与两侧铁电材料极性有关。读取时,施加电压,观测电流;写入时,电流会引起铁电材料极性变化
优点:亚ns级读写速度
缺点:STT-MRAM共享read/write,SOT把两条通路分开但引入了额外的面积消耗
- 其他内容:各类memory的benchmark(prototype chips)
3.21 Resistive Memory-Based In-Memory Computing: From Device and Large-Scale Integration System Perspectives
这篇文章主要探讨了各个尺度上RRAM器件的可能应用
- 存储、运算
数据传输的瓶颈不是新出现的,几十年前数据库就已经遇到了这种问题。PIM/CIM希望为了解决数据传输的高时延和高耗能问题,其高密度在边缘计算有很大潜力,无论是边缘推理还是边缘训练(因为数据隐私问题)
有潜力的存储器:SRAM, flash memory, MRAM, racetrack memory(sequential), PCM, RRAM。除了SRAM均为非易失性nonvolatile存储器(断电数据不消失)
RRAM device:阻抗可以被外加电压/电流改变。SET将其变成高阻态,RESET将其变成低阻态。有双态、多态、模拟等多种类别
2012年Hu第一次提出基于基尔霍夫定律电流相加,用RRAM进行VMM矩阵向量乘
PIM不支持outer product。目前难以完全在PIM中进行反向传播。RRAM一般与数字电路配合,数字电路可以方便实现pooling、activation等操作
能不能支持outer product?
能不能抛弃反向传播设计学习算法?
- 非线性和随机性
在spiking neural network中,可能通过SET作为激活函数(RRAM synapse)
As an alternate to train RRAM synapse, hyperdimensional (HD) computing eases the computation complexity and enhan ces training efficiency with interpretability
用于震荡电路:
That is,the induced current decreases as the applied voltage increases. This uncommon nonlinearity has been leveraged in developing a relaxation oscillation circuit.
Mott忆阻器有内在伪随机性,可以帮助跳出局部最优解
- 架构

- 器件性能(2019)

3.27 In-memory hyperdimensional computing
inspiration:生物神经网络,牺牲准确度换效率
advantage:
- HDC对个别的bit错误不敏感
- 只需要少量的样本
用来适配NISQ?
像zcs的AGI线路
- Hypervector
HDC全程基于d(>1000)维的hypervectors超维向量,每一个位置独立同分布,等概率0/1
这些向量伪正交quasi-orthogonal,因为
因此我们可以随机生成h个向量作为基底(fixed in the process),h为symbol的个数
这些基向量(h*d)组成Item Memory(IM)
对于任何一个系统,怎么确定symbols是哪些?信息熵?PCA?
怎么快速生成这些(伪)随机的向量?
如果分量不是简单01,是否还能满足伪正交性?有何优势?
- Operators
- addition/bundle
component-wise majority看每一位0多还是1多
- multiply
按位XNOR
- permutation
对下标的伪随机重排
QM排列算符?
- Encoding(prototype vectors)
训练数据有n个symbols,经过encoder生成对应的prototype vector,表示该训练数据
其中s表示symbol,B表示与symbol对应的basis,为XNOR
假设训练数据有c个类别,则经此过程生成c*d向量,称为associative memory(AM)
c很大怎么办?会不会存不下?
- Query
同上encode成Q,与AM中向量计算Hamming距进行分类
- PIM
IM(h*d)和AM(c*d)分别存在两个RRAM阵列上,每一行存一个向量。第一个RRAM相当于一个encoder
PIM实现,CMOS实现+,。
能不能全部用PIM实现?

本工作用PCM实现RRAM
实现时,由于向量中01个数相似,可以作如下简化
4.15 RelHDx: Hyperdimensional Computing for Learning on Graphs With FeFET Acceleration
完成两种任务:
- 预测节点标签
- 预测节点之间是否有连边
是否有其他的任务种类?
- Algorithm
Node HV:代表节点的特征
k-hop HV: 。特别的
注意对每个节点不变,始终是直接邻居。这样避免了过多的数据运输,同时也能汇集更远的节点的信息
4.17 HDTest: Differential Fuzz Testing of Brain-Inspired Hyperdimensional Computing
- 基础算法
在MNIST数据集上,每一张图片28*28=784,每个位置0~255灰度值
position HVs: 784个,代表位置
value HVs: 255个,代表灰度值
pixel HV: 假设该像素位置为i,灰度值为
Image HV:
(1)这种编码方式没有充分利用位置信息,应该有某种编码方式满足平移不变性
(2)灰度值需要这么多不同的HV吗?是不是减少一些HV会有更好的表现?(因为相近的灰度值并不是表达截然不同的信息)
但考虑到经过加减之后,Im不再是正负1取值的,所以我们重新bipolarize:(但作者github代码似乎并没有实现这一步)
训练过程:依次处理每一张图片,把其Im加到对应类别的(associative memory)上。最后再用同样的公式再次把变成二值的
Note:在hdc中,AM就是模型的全部
重训练retrain:把所有图片都重新过一遍。如果当前模型预测结果不正确(假设正确的是y,当前预测结果是y_pred),那么把这张图片的Im从AM[y_pred]中减掉,并把Im加到AM[y]上
(1)这一步似乎只有之前没有二值化才能进行
(2)但从另一个方面想,其实就是利用了“反样本”去训练。那其实可以在一开始就把所有的“正样本”和“反样本”训练完
(3)这里的推理是基于原来的am进行,还是基于当前最新的更新过的am_进行?如果是后者,会不会收敛的更快?
测试过程:先把输入的图片用同样的方法encode成,计算其与所有之间的cos_sim,最大的就是预测结果
(1)计算两两之间的cos,因为各个HV模长不尽相同,需要大量计算量
(2)如果我们能保证取值都是正负1,那么各个HV的模长就是相等的,可以直接算矩阵乘法然后求最大值
- 代码实现和实验结果见“hdc”
6.10 Integrated photonic neuromorphic computing: opportunities and challenges

按照光和电交汇的地方分类。目前主要是bc两种。
(b)为incoherent optical accelerators,有时也称作optical processors。在处理带权相加问题时,该方案只是将不同信号在正交的域上“multiplex”,之后由光电设备分别探测各独立(比如不同频域上)信号强度,然后在electronic domain完成相加的操作。
(c)为coherent optical accelerators,有时也称为photonics processors。在处理带权相加问题时,该方案直接把输入信号“combine”起来,形成一个信号。也就是说,该方案在optical domain完成了相加的操作。
无论(b)(c),在实现非线性函数上都遇到了困难,往往需要较低效的光电效应。希望未来能实现(d)的all-optical networks
- incoherent processor
可以做到0.256TOPS
器件对相位和波长不敏感,但问题在于正交的域是有限的(约800),如果有多层,就需要个正交域。为了解决scalability,可以采用O-E-O,即在光学层间插入电学层,先综合成单色信号
- coherent processor
主要基于光学的“FPGA”。任意正交矩阵可以由一系列4*4矩阵的乘法来实现。基于干涉仪的处理器(cascaded Mach–Zehnder interferometers)根据需要重构4*4矩阵乘法的权重和顺序来完成矩阵乘法(重构速率可以达到50GHz)
近期也有工作实现了片上的反向传播和梯度下降
- 相关算法
reservoir computing:训练时不需要知道内部的细节
phontonic Ising machine
spiking neural networks(SNN)
- 结论
关注光电转换的具体步骤是必要的,因为这一步骤本身就暗示了瓶颈所在——后续转到电领域运算就是为了避免光领域的局限性
光计算在latency上远胜于电器件,但目前throughput不如电器件(Google TPU v4)
6.10 Photonic matrix multiplication lights up photonic accelerator and beyond
介绍三种MVM方法:plain light conversion(PLC), Mach-Zehnder interferometer(MZI), wavelength division multiplexing(WDM)
8.15 A Task-Adaptive In-Situ ReRAM Computing for Graph Convolutional Networks(2024)
传统ReRAM神经网络加速器倾向于使用WS(weight stationary),但作者认为,在GCN加速器中,WS和DS(data stationary, or input stationary)都重要
GraphR/GraphSAR/ReGraphX都是把大的图分成几个subgraph来分别处理(?)这样子图规模限制了ReRAM并行度的上限
GCN的输入:一些(V*V)和(V*C),对应很多张图。输入特征X也可能非常稀疏?(在Nell中X的稀疏度为99.9)
SRAM存算的时钟频率更高,适应小规模图数据集;ReRAM适合大规模图数据集
作者采用CSR mapping(自称novel),这样同一列的block就可以一起激活运算(?)
对于特别大的图,存不下。为了防止ReRAM的反复擦写,作者提出一种“write-free”的方法。用16*4的block存储一个4*4矩阵的所有可能的行数据(0000-1111),需要使用时根据真实数据激活一行。对一个128*128的ReRAM,一列能存下128/16=8行矩阵,等价于128*4能存下一个8*4矩阵。但是这样又要搬运数据了啊???
8.16 EnGN: A High-Throughput and Energy-Efficient Accelerator for Large Graph Neural Networks(2021)

128*16的PE阵列,每一行的16个PE能存储一个node的信息,PE之间纵向相邻连接,形成环装结构,每个cycle都把信息给上方的PE,从而解决了传输带宽不足的问题。
但是这种方法只有在图比较dense的时候效率较高,对稀疏图效率不高。作者采取的解决办法是重排边的处理顺序。但是这需要PE同时存储好几个中间结果?

8.17 GraphA: An efficient ReRAM-based architecture to accelerate large scale graph processing(2022)
改进了记录图结构的方法。原来是
src+outdegree+dst1,dst2..
作者认为只有一个出度的节点就无需记录度数,只需要记录scr+dst
,可以节省一些空间(感觉没什么用,且放到ReRAM阵列之后还是要记录起始位置)改进映射到ReRAM阵列的方法。原来的CSR按照节点顺序填充,并记录每个节点多条出边的起始位置。但这样可能导致大量节点出边分在多行。作者调整了节点填充顺序,使尽可能多的节点在同一行(感觉也没什么用,作者根本没有考虑按块划分,并行度很差)
CSR的时候到底有多少未利用的空间?
作者考察了bfs的加速情况。我的设计是否难以支持bfs这种单节点的访问?
仿真器:NVSim,NVMain
8.17 GraphH: A Processing-in-Memory Architecture for Large-Scale Graph Processing(2019,88cites)
8.17 FARe: Fault-Aware GNN Training on ReRAM-based PIM Accelerators
解决ReRAM器件的不可靠性问题。最严重的是stuck-at-faults(SAF),(单个)忆阻器阻值无法改变,分为SA0(stuck at 0)和SA1(stuck at 1),这种错误可能在训练前出现,也可能在训练中出现
权重矩阵SAF的影响:多数ReRAM采用16bit权重,每个cell存2bit,这样一个权重存在8个cell中。显然,MSB附近出错的影响远远大于LSB。
邻接矩阵SAF的影响:错误地删除了一条边或添加了一条边
本文在不添加纠错bit的情况下最小化SAF的影响。(1)邻接矩阵。对训练前的错误,可以用BIST电路识别,然后通过带权二分图匹配,找到一种影响最小的map方法;对训练中的错误,可以在每个epoch后用BIST电路识别,然后局部调整行的顺序来减小错误的影响(2)权重矩阵。为了防止MSB附近出错使得权重出奇的大,采用weight clipping,限制权重的最大值
- 作者:Tianyao Xiao
- 链接:https://www.xty27.top/article/papers
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。