摘要: 本文探讨了新型存内计算架构的相关内容,包括其研究背景、原理与应用、面临的挑战以及解决方案。随着人工智能的发展,对计算架构的要求日益提高,存内计算架构应运而生。它在多个领域有广泛应用,但也面临着一些挑战,需要不断探索和解决。
PPT文件【新型存内计算架构的应用与挑战】
存内研讨会
一、研究背景
(一)人工智能运算需求
人工智能在自然语言处理、人脸识别、自动驾驶等众多领域广泛应用,其模型参数量和计算量呈爆炸式增长。例如,从 GPT - 1 到 GPT - 3,模型参数量大幅增加,导致对计算资源的需求急剧上升,出现了 AI 与存储墙的问题,即数据搬运成为计算效率的瓶颈。
(二)摩尔定律放缓
晶体管集成密度的发展逐渐放缓,从原本每两年翻倍变为每 18 个月翻倍,且集成电路性能日趋饱和。晶体管尺寸缩小带来了寄生效应、高场效应和泄漏电流等问题,尽管材料和光刻技术不断进步,如采用 High - K 介质、从 DUV 到 EUV 光刻技术,以及晶体管结构从 Plain FET 到 FinFET 再到 GAA FET 的转变,但摩尔定律放缓的趋势不可避免。
(三)冯氏架构及其限制
冯诺依曼架构存在 “功耗墙” 和 “存储墙” 问题。在该架构下,处理器算力、存储器带宽增长速度不匹配,数据搬运远远大于计算,导致计算效率低下,限制了计算机性能的进一步提升。
二、原理与应用
(一)存内计算架构
存内计算架构打破了存储单元与计算单元的物理隔离,基于不同存储器件(如 DRAM、SRAM、MRAM、PCM、Flash、RRAM 等)的工作原理,利用多种物理定律在存储器内部实现计算功能,避免了数据搬运造成的高昂代价。
(二)基于 eNVM 阵列的存内计算系统
- MVM 运算
新型非易失存储器(eNVM)具有面积小、存储状态多、保持时间长、响应速度快等优势。eNVM 阵列能通过欧姆定律、基尔霍夫电流定律实现模拟乘法、累加运算,从而在存储权重数据的阵列内部实现矩阵向量乘法运算(MVM),将 MVM 运算时间复杂度由 O (n2) 降低为 O (1),同时避免了 MVM 过程数据搬运带来的能量开销。 - 有符号 MVM 运算方案
通过电导差分表示负数权重,权重通过一对器件电导的差值表示,输入向量通过不同方向模拟电压表示,计算结果通过不同方向位线电流表示。 - 高效神经网络系统
- ANN:基于 eNVM 阵列的全连接网络,输入向量转换为模拟电压,网络权重用器件电导差分表示,输出向量为阵列位线电流,可与 CMOS 神经元集成,直接在模拟域完成 ANN 推断运算,无需数据搬运,提升了神经网络的速度和能量效率。
- CNN:2d 卷积核转换为 1d 权重存储在 eNVM 阵列,2d 滑窗像素映射为 1d 输入向量(输入电压向量),1 次卷积对应一次 MVM 运算,依次进行多次 MVM 完成对 feature map 卷积操作。
- RNN:阵列输出经过电流 - 电压转换、数学映射之后再次输入阵列构建循环神经网络,可实现联想记忆、时序信息分析预测等功能。
- 芯片级实现
基于 eNVM 阵列构建的人工神经网络芯片在识别精度上与传统实现方式相似,但在能效、吞吐量、并行度方面相较于传统架构有明显优势。存内计算芯片朝着大容量、高吞吐量、高能效的方向发展。 - 高效机器学习系统
- 无监督学习:以 K - means 聚类为例,需多次计算样本点与每个聚类中心之间的欧氏距离,欧氏距离中的交叉项可通过 MVM 运算获得,样本点坐标作为输入向量,中心点坐标作为权重矩阵(eNVM 阵列电导)。
- 随机权重表示:eNVM 器件通过物理状态存储数据,携带本征的随机性,可用于实现具有时间、空间随机性的权重,用于贝叶斯神经网络、生成对抗网络等,避免单一生成结果。
- 高效科学计算系统
离散微分方程、离散余弦变换等求解过程可转换为 MVM 运算,从而能够通过 eNVM 阵列高效实现。
(三)性能提升方案
- 3D 阵列结构
将 2D eNVM 阵列进行多层堆叠并互联形成 3D 阵列,有效提升数据存储密度、计算并行度、吞吐量等,能够高效实现卷积运算中的窗口移动操作。 - 拓展输入频域
eNVM 阵列为线性系统,将不同的输入向量调制到同一输入信号不同的频段上,同时将所有向量输入到阵列中,对阵列输出信号进行解调获取每个频段上调制的信息,可在一个输入周期中实现多次 MVM 运算。
三、面临的挑战与解决方案
(一)问题与挑战
- 模型原始权重与 eNVM 器件电导状态不匹配
AI 模型在服务器中训练的权重为 FP32 形式,几乎是连续数值,而 eNVM 器件通过物理状态表示权重,状态数量有限、分布不均匀且存在噪声,导致原始模型参数无法直接映射存储到 eNVM 阵列中。 - eNVM 阵列计算噪声
编程误差(目标电导与实际写入电导之间的差异)、阵列在模拟域执行 MVM 运算时存在的热噪声等随时间变化的噪声,以及阵列输入、输出需要进行 AD/DA 转换产生的转换噪声,都影响了计算结果的准确性。 - 边缘端学习能力缺失
当前 eNVM 阵列大多仅支持推断运算,不支持权重微调等训练操作,只能基于固定模型参数实现指定功能,环境适应能力受限,功能拓展完全依赖云端算力。
(二)解决方案
- 训练后量化
模型训练结束后,将 FP32 形式的参数量化到低精度定点数,并对超出范围的参数进行截断,使其能够映射为 eNVM 器件的电导,但直接对参数进行低精度量化以及裁剪可能导致模型性能下降。 - 量化、噪声感知训练
从 eNVM 阵列中提取器件、阵列以及电路的噪声、电导状态分布等信息并建模,模拟阵列工作时的硬件状态,将硬件信息带入模型训练过程中,使模型在硬件限制下收敛,再将此模型部署到阵列中,可避免性能损失。 - 片上训练
直接在 eNVM 存内计算系统中执行训练过程,系统产生的梯度信息中既包含数据集的信息,同时包含硬件平台的信息,能有效提升模型的性能。通常固定复杂结构的权重,仅对线性层的权重进行更新,即可实现全网片上训练的效果。
四、内容总结
存内计算架构中的存内 MVM 运算在 ANN、CNN、RNN、K - Means 等多个领域有广泛应用。同时,训练后量化和硬件感知训练等方法对于解决存内计算架构面临的问题具有重要意义,为存内计算架构的进一步发展和应用提供了保障。