论文:深度可分离神经网络存内计算处理芯片
引言:SRAM - CIM芯片在处理深度可分离神经网络时面临的挑战
深度可分离卷积(Depthwise separable convolution, DSC)由逐深度卷积(DW)和逐点卷积(PW)组成,逐深度卷积用于提取空间特征,逐点卷积用于提取通道特征,如图1所示。简而言之,逐深度卷积的深度维度不变而改变H/W,即输入特征图通道数=卷积核个数=输出特征图个数;逐点卷积的H/W不变而改变深度维度,即用1x1的卷积核进行升维[2]。相较于传统的卷积神经网络,深度可分离卷积具有如下四个优势:
- 更少的参数:可减少输入通道数量,从而有效地减少卷积层所需的参数;
- 更快的速度:运行速度比传统卷积快;
- 更加易于移植:计算量更小,更易于实现和部署在不同的平台上;
- 更加精简:能够精简计算模型,从而在较小的设备上实现高精度的运算。
图1 深度可分离卷积[1]
因此参数量更少的深度可分离卷积神经网络更容易部署在边缘AI设备上。但是目前基于SRAM的存算一体芯片大多只针对DW和PW中的一种优化了乘累加操作(MAC),所以SRAM-CIM芯片在能量效率、吞吐量和内存利用率方面仍然面临着限制,如图2(左)所示:( 1 )内存能量利用率低,主要由于从CIM宏块外的缓存中重复访问,占总能耗的30 %以上;( 2 )短长度MAC和卷积滑动激活导致数组时间利用率差,增加推理执行周期;( 3 )由于DW卷积对输入和输出激活的重复存储,导致内存空间利用率不足,造成双重内存开销。
图2 SRAM-CIM在处理深度可分离神经网络方面面临的挑战
针对上述挑战,来自北京大学集成电路学院王源教授-唐希源研究员团队首次提出了近存计算与存内计算混合的新型计算架构,针对深度可分离卷积计算,实现了国际领先的能量效率和面积效率,且该项工作以MixCIM: A Hybrid-Cell-Based Computing-in-Memory Macro with Less-Data-Movement and Activation-Memory Reuse for Depthwise Separable Neural Networks为题,发表于2024 CICC。如图2(右)所示,文章提出了三个创新点:
- 可滑动eDRAM阵列增强DW卷积并行性以减少推理执行周期;
- 混合内存计算,通过CNM原理将激活输入到权重的CIM数组中,以提高能量效率;
- 输入和输出激活之间的内存共享方案,以提高有效内存利用率。
课题组在28nm CMOS工艺下流片进行性能测试,该芯片能够达到17.2 TOPS/W的能量效率和1.14 TOPS/mm2的面积效率,实现92.47%的推理精度。该芯片突出的能量效率和面积效率在边缘端智能设备中极具应用前景。
论文地址:https://ieeexplore.ieee.org/document/10529086
- 深度可分离神经网络存内计算处理芯片
创新点一:可滑动eDRAM阵列提升 DW 卷积并行性
如图3所示,MixCIM 包含 144×128 的 7T2C eDRAM CIM 阵列和 8T1C SRAM 阵列,二者通过融合模块相连。eDRAM - CIM 阵列有 16 个 深度卷积通道(DCCs),可存 DW 卷积中 16 通道的激活值与权重,每个 通道的激活值(DCC - A) 含 3 个 卷积滑动窗口电路(CSWCs),能同时计算 3 组子特征卷积。eDRAM 存储单元由 2T1C 存储、3T 读出和 2T1C 计算部分组成,实现读写分离并支持符号数值计算,为卷积计算提供便利架构与功能支持。
图3 电路的总架构以及可滑动eDRAM阵列
融合电路的映射模块含两组 3 - to - 1 开关,由 SLD_HOZ [2:0] 和 SLD_VER [2:0] 信号控制水平和垂直滑动,确保卷积窗口准确滑动。CSWC 中的局部滑动电路通过 tri - state inverter 连接 LRBL 和 LBL,可选择目标 WWL 和源 RWL 进行刷新,在 eDRAM 刷新和卷积窗口滑动中,能准确传输数据并存储计算结果,保障卷积计算的连续性与数据完整性。
流水线操作分两阶段,第一阶段第 i 个通道激活数据卷积滑动时,第 (i + 1) 个通道可同时进行 MAC 操作;第二阶段任务切换,形成连续作业流程。与传统非流水线方式相比,该方式显著提高计算资源利用率,减少计算单元空闲等待时间,大幅提升数据处理速度。经实际测试,在相同条件下,其处理速度可能是传统方式的 1.5 倍甚至更高,有效提升 MixCIM 在 DW 卷积中的吞吐量,且提升倍数因模型和场景而异。
创新点二:混合内存计算减少数据移动
在 MixCIM 中,近内存计算(CNM)与存内计算(CIM)融合是实现高效计算的关键,依据 CNM 原理,激活值被输入到权重的 CIM 阵列中。由图3所示,在计算时,激活值从 DCC-A 出发,经过融合模块与从 DCC-W 中检索出的权重进行匹配,完成乘积累加(MAC)操作。这种路径优化避免了激活值和权重在不同存储区域和计算单元间的长距离传输。结合图3,由于 eDRAM 具有较低的访问能耗,且在 MixCIM 结构中数据移动距离短,减少了数据传输过程中的能量消耗,从而提升了系统能效。
符号位调制(SBM)电路在符号数值计算中也发挥了重要作用。在图 4 中,可以看到在 eDRAM 阵列中,一个多位权重单元(MbWU-D)由 8 个 7T2C bitcells 和一个 SBM 电路组成。首先,SBM 电路负责确定乘积的符号位,并根据符号位将输入(IN)连接到 Q 或 QB 计算路径进行位反转。然后,符号位作为权重配置电路中按位模拟累加的最低有效位(LSB)值,完成从补码格式到符号数值编码的转换。
图 4 用于在高斯分布下提高符号数值计算能效的 eDRAM 和 SRAM 的多位权重单元(MbWU)
这种符号数值计算方式具有节能优势。在模型参数服从高斯分布的情况下,符号数值计算的电压切换活动更少。因为传统的补码计算在
处理负数时,需要进行复杂的位运算来表示负数,而符号数值计算直接分离符号位和数值位,简化了计算过程中的电压变化。图5实验结果也验证了这一点,符号数值计算单元相较于 2 的补码计算,功率降低了 21.5%,有效减少了计算过程中的能量消耗,进一步提升了 MixCIM 在深度可分离卷积计算中的能效,这一优势从图 4 展示的位单元和 SBM 电路的协作关系中可得到更清晰的理解。
图 5不同阵列尺寸下 SRAM 读写与 eDRAM 读写的访问能耗对比及输入访问能耗降低情况
创新点三:内存共享提高内存利用率
在 MixCIM 架构中,DW 卷积完成后,输出激活数据可存储于空闲 eDRAM 位单元或覆盖输入激活通道中不再需用的部分。如图 6的 eDRAM CIM 阵列,DCC - A 存储输入激活值,卷积结束后,部分输入值使命完成,输出激活值便可复用其空间,就像房间物品腾挪复用空间。此策略避免为输出激活值另辟内存,显著减少内存开销。在边缘 AI 设备等内存受限场景,可让设备在不增内存成本下,加载更大模型或处理更高分辨率图像,提升性能与适用范围。
图 6基于 eDRAM 的存内计算(CIM)
此外,内存共享策略与可滑动 eDRAM 阵列紧密配合。从图 7 能看出,可滑动 eDRAM 阵列在执行卷积计算时,产生的中间及最终结果都依据内存共享策略存储复用。在进行 DW 卷积时,输入特征被划分为多个 3×3 子特征,每次计算完一个子特征的卷积结果,可直接存储到按策略分配的 eDRAM 区域,同时不影响阵列继续滑动计算下一个子特征。而且,该策略与混合内存计算协同良好。在图 3 展示的架构中,激活值按近内存计算(CNM)原理输入权重的 CIM 阵列计算后,产生的输出激活值存储复用同样遵循内存共享策略,保证数据在存储和计算单元间高效流转。
图 7深度卷积激活滑动机制:特征划分、滑动操作及权重激活映射详解
在计算效率方面,内存共享策略减少了内存分配和释放带来的时间开销,优化数据存储位置。从图 8 的计算流程可以看出,数据能快速被计算单元访问,加速卷积计算,让计算过程连贯高效。在能效层面,减少内存读写次数和空间分配,降低系统功耗,这对依靠电池供电的移动设备等功耗敏感设备极为有利。在系统可扩展性上,提升的内存利用率使系统能处理更大规模数据和复杂模型。随着神经网络模型不断发展,MixCIM 能更好适应新模型需求,延长系统的使用寿命和应用场景,为深度可分离卷积的高效实现提供有力支持。
图 8 深度卷积与卷积滑动流水线:结构、流程及性能增益解析
- 实验评估
为了验证MixCIM架构的性能,研究团队选用了MobileNet-V2作为测试模型。MobileNet-V2具有轻量级的特点,是常见的移动和嵌入式应用场景下的基准测试模型。该模型在ImageNet数据集的输入分辨率一般设定为224×224,深度乘子和宽度乘子均为1.0,整个模型的参数量约为350万,计算量约为3亿次MAC操作。在性能指标方面,论文重点关注了能量效率、计算精度和内存利用率。能量效率以TOPS/W为单位,体现了芯片在单位功耗下执行MAC操作的效率;计算精度则通过在 ImageNet 数据集上的 Top-1 和 Top-5 准确率来评估模型的推理性能;内存利用率指的是存储单元阵列中实际用于存储模型权重的比例,反映了存储资源的有效利用程度。
实验结果表明,MixCIM能够实现每秒约 1000 帧的处理速度,满足了大部分实时应用场景对算力和延时的要求。得益于 MixCIM 架构的几个关键创新点,混合信号计算单元综合了模拟电路和数字电路在MAC与数据处理方面的灵活性,显著提升了能量效率并达到了 5 TOPS/W。为了更全面地评估 MixCIM 架构的其他性能,论文将其与其他同类型的工作进行了比较。在计算精度方面,MixCIM在ImageNet数据集上使用CIFAR10实现了最高92.47 %的准确率,与一般的数字电路实现方式相近。权重存储策略减少了数据在芯片内部的搬运开销,使得MixCIM的内存利用率最高可提高32.4%,实现了较同类设计2.19倍的计算加速效果。
图9 MixCIM在计算加速方面领先于同类产品
图10 MixCIM的功耗分布
综上所述,MixCIM 架构在移动设备、嵌入式系统以及边缘计算等领域具有广阔的应用前景,有望显著降低功耗、延长电池续航时间,并提升实时性能。
参考资料
- 四、CNNs网络架构-深度可分离卷积(MobileNet v1、MobileNet v2、MobileNet v3、Xception、ShuffleNet v1、ShuffleNet v2)_retinaface 瓶颈结构-CSDN博客
- 深入浅出理解深度可分离卷积(Depthwise Separable Convolution)_dwconv-CSDN博客
- MixCIM: A Hybrid-Cell-Based Computing-in-Memory Macro with Less-Data-Movement and Activation-Memory-Reuse for Depthwise Separable Neural Networks | IEEE Conference Publication | IEEE Xplore
相关文章:

论文:深度可分离神经网络存内计算处理芯片
引言:SRAM - CIM芯片在处理深度可分离神经网络时面临的挑战 深度可分离卷积(Depthwise separable convolution, DSC)由逐深度卷积(DW)和逐点卷积(PW)组成,逐深度卷积用于提取空间特征ÿ…...

hdrnet,Deep Bilateral Learning for Real-Time Image Enhancement解读
论文、代码和ppt地址:Deep Bilateral Learning for Real-Time Image Enhancement 论文使用的数据集: HDR: 这是一个复杂的摄影管道,包括色彩校正、自动曝光、去雾和色调映射等操作。 MIT “FiveK” 数据集: 这个数据集由 Bychkovsky 等人 提…...

Android系统开发(十五):从 60Hz 到 120Hz,多刷新率进化简史
引言 欢迎来到“帧率探索实验室”!今天,我们要聊聊 Android 11 中对多种刷新率设备的支持。你可能会问:“这和我写代码有什么关系?”别急,高刷新率不仅仅让屏幕更顺滑,还会直接影响用户体验。想象一下&…...
js判断一个数组对象中是否有相同的值
let userTitleLevelList[{title:医生,code:20},{title:老师,code:21}]; 如果一个数组对象格式如上面。如果有一样的对象就提示。即:title和code都是一样的内容、 const hasDuplicate userTitleLevelList.some((item, index, array) > { return array.filter(…...

基于深度学习的视觉检测小项目(十五) 用户的登录界面
用户管理离不开的是消息框(QMessageBox)和对话框(QDialog),比如对话框用于用户名和密码输入,消息框用于提示登录成功、密码错误。 • 基础知识:PySide6(PyQT5)的常用对话…...

redis-排查命中率降低问题
1.命中率降低带来的问题 高并发系统,当命中率低于平常的的运行情况,或者低于70%时,会产生2个影响。 有大量的请求需要查DB,加大DB的压力;影响redis自身的性能 不同的业务场景,阈值不一样,一般…...

ui文件转py程序的工具
源博客连接: PyCharm中利用外部工具uic转成的py文件,里面全是C代码,并非python类型的代码,导致大量报错。。。_pyside6-uic为什么把ui转为了c-CSDN博客 如果想把ui文件转为py文件,首先设置pycharm的外部工具…...

Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案
作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技…...
Oracle 数据库常见字段类型大全及详细解析
在工作期间会遇到数据库建表的业务,经常会使用复制粘帖等操作,而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型,根据不同的数据需求,可以选择不同的字段类型来存储数据。 文章目录 一、字符类型(Char…...

U3D的.Net学习
Mono:这是 Unity 最初采用的方式,它将 C# 代码编译为中间语言 (IL),然后在目标平台上使用虚拟机 (VM) 将其转换为本地机器码执行。 IL2CPP:这是一种较新的方法,它会将 C# 代码先编译为 C 代码,再由 C 编译器…...

Tomcat下载配置
目录 Win下载安装 Mac下载安装配置 Win 下载 直接从官网下载https://tomcat.apache.org/download-10.cgi 在圈住的位置点击下载自己想要的版本 根据自己电脑下载64位或32位zip版本 安装 Tomcat是绿色版,直接解压到自己想放的位置即可 Mac 下载 官网 https://tomcat.ap…...
adb常用指令(完整版)
1、adb devices 查看是否连接到设备 2、adb install [-r] [-s] 安装app,-r强制,-s安装sd卡上 3、adb uninstall [-k] 卸载app,-k保留配置和参数 4、adb push 把本地文件上传设备 5、adb pull 下载文件到本地 6、cd D:\sdk\platform-tool…...
大数据学习(36)- Hive和YARN
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
C# ASP.NET MVC项目内使用ApiController
1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。 using System.Web.Http;namespace PrivilegeManager {public class WebApiConfig{public static void Register(HttpConfiguration config){config.MapHttpAttributeRoutes();config.Route…...
Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
前言 在现代微服务架构和分布式系统中,消息队列作为解耦组件,承担着重要的职责。它不仅提供了异步处理的能力,还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ,其中 Kafka 因其高吞吐量…...
“推理”(Inference)在深度学习和机器学习的语境
“推理”(Inference)在深度学习和机器学习的语境中,是指使用经过训练的模型对新数据进行预测的过程。将其简单地理解为“模型的应用阶段”。在这一阶段,我们不再进行模型训练,而是利用已训练好且保存下来的模型来获取对…...
字节腾讯阿里大厂面经汇总:Java集合(容器)大厂面试题及参考答案
ArrayList 的扩容机制以及删除操作的时间复杂度 ArrayList 是 Java 中非常常用的一个集合类,它是基于数组实现的动态数组。当我们创建一个 ArrayList 时,如果不指定初始容量,它会有一个默认的初始容量(通常是 10)。当我们向 ArrayList 中添加元素时,如果元素的数量达到了…...

数据结构(初阶)(一)----算法复杂度
算法复杂度 算法复杂度数据结构算法算法效率复杂度的概念 数据结构 数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所以我们要学各式各样的数据结…...
构建高效稳定的网络环境
概述 网络技术是当今IT行业的重要组成部分,构建高效稳定的网络环境对于企业、个人和互联网发展至关重要。本文将探讨网络技术中的关键要素,包括网络协议、网络架构、网络安全和网络优化,并提供实用的技巧和最佳实践,以帮助您构建…...

使用Edge打开visio文件
使用Edge打开visio文件 打开Edge浏览器搜索‘vsdx edge’ 打开第一个搜索结果 Microsoft Support 根据上述打开的页面进行操作 第一步:安装Visio Viewer 第二步:添加注册表 桌面新增文本文件,将下面的内容放入新建文本中,修…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...