tags
type
status
date
slug
summary
category
password
icon

3.20 (st-gcn)Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

notion image
  • Image integration:
,取样函数
,c维的特征函数
  • Image→Graph
redefine fin&p&W
,定义为与节点边数≤D的节点集合。这里我们固定D=1
  • st-gcn
labeling function。其中都是针对,K是分组的组数。这样一共分为组。
notion image
第一种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
notion image
notion image
  • 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的方式存储
优点:?
notion image
notion image
  • 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忆阻器有内在伪随机性,可以帮助跳出局部最优解
  • 架构
notion image
  • 器件性能(2019)
notion image

3.27 In-memory hyperdimensional computing

inspiration:生物神经网络,牺牲准确度换效率
advantage:
  1. HDC对个别的bit错误不敏感
  1. 只需要少量的样本
💡
用来适配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
  1. addition/bundle
    1. component-wise majority看每一位0多还是1多
  1. multiply
    1. 按位XNOR
  1. permutation
    1. 对下标的伪随机重排
💡
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实现?
notion image
本工作用PCM实现RRAM
实现时,由于向量中01个数相似,可以作如下简化

4.15 RelHDx: Hyperdimensional Computing for Learning on Graphs With FeFET Acceleration

完成两种任务:
  1. 预测节点标签
  1. 预测节点之间是否有连边
💡
是否有其他的任务种类?
  • 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

notion image
按照光和电交汇的地方分类。目前主要是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)

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

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,限制权重的最大值
 
 
 
会议、期刊与检索Quantum Computation News-followup
Loading...