当前位置: 首页 > article >正文

对稀疏矩阵运算的两种优化方式

背景卷积神经网络CNN广泛应用于移动端视觉任务GEMM 是其推理的性能瓶颈脉动阵列SA通过局部寄存器通信高效加速 GEMM被广泛应用于 TPU 等商用产品但传统架构仍有优化空间。面临问题CNN 模型中普遍存在稀疏性但利用稀疏性面临四大挑战随机稀疏难以利用、结构化稀疏影响精度、索引存储开销大、SA 寄存器比率失衡。本文提出的 STA 架构一次性解决了这些问题。问题描述随机稀疏难以利用零元素位置无规律需额外存储索引负载不均衡导致硬件利用率低下结构化稀疏影响精度将零值按固定块组织虽便于硬件实现但块尺寸较大时会显著损害 CNN 精度索引存储开销大传统方法需为每个非零元素存储索引在 INT8 权值场景下开销尤为严重SA 寄存器比率失衡每个 MAC 单元需要两个 INT8 寄存器 一个 INT32 累加器比例存在优化空间1. 引言本文两大贡献将标量 PE 泛化为 Tensor-PE 衍生出 STA 架构引入 DBB 稀疏格式实现 STA-DBB在面积效率和功耗上均大幅领先 SA 基线同时完全向后兼容密集模型。卷积层通常通过将二维卷积降维为 GEMM 核来执行。SA 由一列 MAC 处理单元PE构成各单元之间仅通过局部的寄存器到寄存器通信传递操作数和结果使其非常高效且易于扩展不产生时序问题。这些优势使其被部署在 Google TPU 等商用产品中。本文针对移动端 CNN 推理的窄 INT8 操作数描述了两项对传统 SA 架构的重大改进第一STA将传统的标量 PE 泛化为Tensor-PE衍生出Systolic Tensor ArraySTA微架构家族。STA 通过增加 PE 内操作数复用和 datapath 效率在同吞吐量下与时钟门控 SA 相比电路面积减少最高2.08 倍功耗降低1.36 倍。第二STA-DBB扩展 STA 以支持Density-Bound BlockDBB新型块稀疏数据格式。该变体在处理专门训练的 DBB 稀疏模型时相较于 SA 基线在同吞吐量下面积效率提升3.14 倍功耗效率提升1.97 倍同时完全向后兼容密集模型。2. 背景与相关工作2.1 面向 CNN 推理的脉动阵列INT8 微架构的 datapath 成本相对较低数据移动成本占比更高本文以 TPU-like SA 为基线通过时钟门控和输出驻留数据流进行优化。本文以 TPU-like SA 为起点进行了修改1对零操作数进行时钟门控2采用输出驻留数据流——让较大的 INT32 累加器保持不动而移动较小的 INT8 操作数。2.2 CNN 的稀疏矩阵DBB 是随机稀疏与结构化块稀疏之间的完美折中对每个块的非零元素数量设定上限在相同 NNZ 下获得更高精度同时硬件计算量已知保证高利用率。CNN 层在权值数据和激活数据中均存在稀疏性。随机稀疏图 1a零的位置没有约束很难利用结构化块稀疏图 1b硬件友好但块尺寸较大时会损害 CNN 精度本文提出DBB图 1c对每个块的非零NNZ元素数量设定上限。例如由 8 个 8×1 块组成每个块最多 3 个非零值NNZ≤3。这在相同 NNZ 下能获得更高 CNN 精度同时硬件计算量已知保证高利用率。DBB 采用位掩码压缩可实现权重内存占用减少 37.5%。Fig 1. 三种稀疏矩阵格式对比(a) 随机稀疏(b) 块稀疏4×2 块© DBB8×1 块。填充元素表示非零值。2.3 稀疏矩阵乘法加速器索引方法存储开销巨大本文在 SA 架构基础上另辟蹊径采用 Tensor-PE 新型结构化稀疏方案而非随机稀疏。利用零操作数的方法包括时钟门控和索引存储例如 EIE、SCNN。然而索引方法开销巨大。本文在 SA 架构基础上利用Tensor-PE 新型结构化稀疏方案而非随机稀疏开创了一条新路径。3. 密集 GEMM 加速器3.1 传统脉动阵列SASA 通过局部寄存器通信实现高效 GEMM但存在寄存器/MAC 比率失衡的优化空间基线 SA 采用 INT8 操作数寄存器和 INT32 累加器。Fig 2. SA 微architectures将每个标量 PE 泛化为执行矩阵乘法的 tensor PE。NotationA×B×C_M×N 表示 M×N 个 A×B×C tensor PE 的阵列。图 2a 展示了经典的 SA被广泛应用于产品中。目标应用为移动视觉场景采用 INT8 操作数寄存器REG和 INT32 累加器寄存器ACC。传统 SA 仍有很大改进空间——放松操作数寄存器REG与 MAC 的比率。3.2 脉动张量阵列STASTA 将多个标量 PE 融合为一个 Tensor-PE每个 Tensor-PE 内执行向量点积经典 SA 是 STA 的特例ABC1通过减少操作数缓冲区和累加器缓冲区实现显著效率提升。Fig 3. Example 2×2×2_2×2 STA 数据流。tensor PE 执行 4×4 × 4×4 矩阵乘法。图 2b 展示了传统 SA图 2a 展示了Systolic Tensor ArraySTA——通过将一组标量 PE 融合为单个tensor PE来实现泛化。每个 STA 架构包含 M×N 个 tensor PE每个 tensor PE 由 A×C 个 MAC 子阵列构成每个 MAC 对 B 对操作数执行点积运算表示为A×B×CM×N A \times B \times C_{M \times N}A×B×CM×N​图 2c 展示了一个 2×2 的 tensor PE 阵列每个 tensor PE 有 2×2 的 datapath包含 4 个操作数对点积单元DP4。经典 SA 是 STA 的特例ABC1即 1×1×1_M×N。通过将每个 MAC 的操作数缓冲区减少2 倍累加器缓冲区减少4 倍实现了显著的效率提升。4. CNN 稀疏 GEMM 加速器4.1 Density-Bound BlockDBBDBB 对每个块的非零元素数量设定上限是随机稀疏与块稀疏之间的完美折中精度损失仅 0.1%~1.1%内存减少 37.5%硬件高利用率。【请在此处插入 Fig 1 图片liu2020_images/fig1_page2.jpeg】Fig 1©. DBB8×1 块稀疏矩阵格式对每个块的 NNZ 设定上限。DBB 矩阵格式的核心理念很简单对每个块的非零NNZ元素数量设定上限。这与传统的块稀疏格式不同——在传统格式中每个块要么完全不受约束要么全为零。DBB 是随机稀疏与块稀疏之间的完美折中在相同 NNZ 下能获得更高的 CNN 精度。DBB 采用简单的位掩码压缩来编码每个 8 元素块每个块 1 字节开销外加 4 字节非零数据可实现权重内存占用减少 37.5%。4.2 面向 DBB 的 STASTA-DBBSTA-DBB 利用 DBB 上限削减物理 MAC 单元节省 50%用 MUX 替代乘法器成本远低于 8 位乘法器保持一半吞吐量密集 GEMM 向后兼容。将 STA 架构扩展以支持 DBB 稀疏权值矩阵。当 DBB 块大小为 8、NNZ≤4 时每个 8 输入点积单元DP8只需 4 个 MAC 单元而非 8 个实现物理 MAC 减少 50%。该方案在 MAC 前加一个多路复用器MUX根据非零权值的索引选择对应的激活值。在每个 SDP4 中用两个 8 位 4:1 MUX 换取两个 8 位乘法器——MUX 的成本远低于 8 位乘法器。该阵列在每个时钟周期执行16 个有效 MAC但仅使用8 个物理乘法器。重要的是该架构仍以一半吞吐量支持传统密集 GEMM完全向后兼容。5. 结论本文通过将标量 PE 泛化为 Tensor-PESTA增加 PE 内操作数复用显著减少电路面积和功耗进一步扩展的 STA-DBB 在处理 DBB 稀疏模型时效率和兼容性兼得完全向后兼容传统密集模型。文章信息标题Systolic Tensor Array: An Efficient Structured-Sparse GEMM Accelerator for Mobile CNN Inference作者Zhi-Gang Liu, Paul N. Whatmough, Matthew Mattina单位Arm ML Research Lab, Boston, MA, USA期刊IEEE Computer Architecture Letters, Vol. 19, No. 1, January-June 2020DOIhttps://doi.org/10.1109/LCA.2020.2979965

相关文章:

对稀疏矩阵运算的两种优化方式

背景 卷积神经网络(CNN)广泛应用于移动端视觉任务,GEMM 是其推理的性能瓶颈,脉动阵列(SA)通过局部寄存器通信高效加速 GEMM,被广泛应用于 TPU 等商用产品,但传统架构仍有优化空间。面…...

AI模型版本原子回滚、训练-推理环境一致性校验、分布式LoRA微调调度器——Docker AI Toolkit 2026这9个硬核特性,90%工程师尚未启用

更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026核心架构演进与安装部署 Docker AI Toolkit 2026(简称 DAIT-2026)标志着容器化AI工作流从“可运行”迈向“可推理、可编排、可审计”的关键跃迁。其核心架…...

CodeAct:用可执行代码作为LLM智能体行动空间的实践指南

1. 项目概述:用可执行代码重塑LLM智能体最近在折腾大语言模型(LLM)智能体(Agent)时,我发现了一个挺有意思的开源项目:xingyaoww/code-act。简单来说,它提出了一个核心观点&#xff1…...

MZmine3 命令行登录问题深度解析与高效解决方案

MZmine3 命令行登录问题深度解析与高效解决方案 【免费下载链接】mzmine3 mzmine source code repository 项目地址: https://gitcode.com/gh_mirrors/mz/mzmine3 MZmine3 4.2.0版本在Rocky Linux 8.8系统及HPC集群环境中暴露了关键的命令行登录问题。作为开源质谱数据分…...

别再傻傻分不清了!ToB、ToC、ToG产品经理的日常工作到底差在哪?

ToB、ToC、ToG产品经理的日常:从需求挖掘到落地的全景对比 每天早上9点,当ToC产品经理正在分析用户点击热力图时,ToB产品经理可能正在与销售团队讨论某企业客户的定制需求,而ToG产品经理则可能在准备向某政府部门汇报项目进度的材…...

Sigil插件系统深度解析:从架构设计到高级定制实战指南

Sigil插件系统深度解析:从架构设计到高级定制实战指南 【免费下载链接】Sigil Sigil is a multi-platform EPUB ebook editor 项目地址: https://gitcode.com/gh_mirrors/si/Sigil Sigil作为一款跨平台EPUB电子书编辑器,其插件系统通过Python环境…...

向量数据库生产调优:Qdrant性能优化与规模化部署完全指南

从原型到生产的鸿沟 把一个RAG系统从原型推到生产,向量数据库往往是最先遇到瓶颈的组件。常见的痛点:- 查询延迟高:随着数据量增长,相似性搜索越来越慢- 内存爆炸:默认配置把所有向量加载到内存,百万级数据…...

为AI编码助手构建本地记忆系统:基于Markdown的Agentic Memory实践

1. 项目概述:为你的AI编码助手构建一个“会思考”的本地记忆系统如果你和我一样,每天都在和AI编码助手(比如Cursor、Claude Code)打交道,那你肯定遇到过这个烦人的问题:每次新开一个会话,它都像…...

虚拟文件系统 GVfs

GVfs(GNOME Virtual File System) 是 GNOME 桌面环境的用户空间虚拟文件系统,基于 GIO(GLib 的 I/O 抽象库)实现,用于统一访问本地、网络与设备存储,替代旧版 GnomeVFS。GVfs 以 D-Bus 为总线、…...

GDSDecomp:重塑Godot游戏逆向工程的技术范式

GDSDecomp:重塑Godot游戏逆向工程的技术范式 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp 在游戏开发领域,Godot引擎以其开源特性和易用性赢得了广泛认可&#xff0…...

别再手动拖拽了!用NX二次开发实现点到点移动复制,效率提升不止一倍

告别低效操作:NX二次开发实现智能点到点移动复制的实战指南 在模具设计和机械装配领域,工程师们常常需要将数十个零件或特征精确移动到新位置。传统手动拖拽不仅耗时费力,还容易因操作失误导致装配偏差。我曾在一个汽车底盘装配项目中&#x…...

HPM6750 RISC-V开发实战:用Segger Embedded Studio搞定从工程构建到OpenOCD调试的全流程

HPM6750 RISC-V开发实战:从工程构建到OpenOCD调试的完整指南 当一块搭载RISC-V架构的HPM6750 EVK Mini开发板放在桌面上时,许多开发者会面临一个共同问题:如何从零开始构建一个可调试的完整项目?本文将带你使用Segger Embedded St…...

OpenClaw客户端设计:构建高效数据采集与API交互工具

1. 项目概述与核心价值 最近在折腾一个挺有意思的开源项目,名字叫 messyvirgo-openclaw-client 。光看这个仓库名,你可能会有点摸不着头脑, messyvirgo 、 openclaw 、 client ,这几个词组合在一起,到底是个啥…...

Audiveris乐谱识别完全指南:三步将纸质乐谱变为数字音乐

Audiveris乐谱识别完全指南:三步将纸质乐谱变为数字音乐 【免费下载链接】audiveris Latest generation of Audiveris OMR engine 项目地址: https://gitcode.com/gh_mirrors/au/audiveris 你是否曾看着堆积如山的纸质乐谱发愁?想要将它们变成可编…...

全面掌握EPANET:开源水力水质模拟工具从入门到实战

全面掌握EPANET:开源水力水质模拟工具从入门到实战 【免费下载链接】EPANET The Water Distribution System Hydraulic and Water Quality Analysis Toolkit 项目地址: https://gitcode.com/gh_mirrors/ep/EPANET 你是否正在寻找一个能够模拟城市供水系统水力…...

机器学习 |1 模型评估

1.经验误差与过拟合经验误差/训练误差:误差指的是学习器输出的预测值与真实值之间的差距,经验误差是学习器在训练数据上的误差泛化误差:学习器在新样本上的误差过拟合与欠拟合:以前文中猫和狗的分类具体例子,假如学习器…...

python防止栈溢出的实例讲解

1、说明使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的。2、实例123456789101…...

语义分割调参避坑:你的ASPP模块dilation rate选对了吗?PyTorch实验对比告诉你答案

语义分割调参实战:ASPP模块dilation rate选择的科学方法与PyTorch验证 在Cityscapes数据集上训练DeepLabv3模型时,我发现一个奇怪现象:当把ASPP模块的dilation rate从[6,12,18]调整为[12,24,36]后,mIoU指标反而下降了2.3%。这个反…...

如何快速打造个性化机械键盘:开源项目的完整DIY指南

如何快速打造个性化机械键盘:开源项目的完整DIY指南 【免费下载链接】HelloWord-Keyboard 项目地址: https://gitcode.com/gh_mirrors/he/HelloWord-Keyboard 你是否厌倦了市面上千篇一律的机械键盘?是否渴望拥有一把完全按照自己需求定制的输入…...

3步实现Windows电脑变身AirPlay 2接收器:打破苹果生态壁垒的终极方案

3步实现Windows电脑变身AirPlay 2接收器:打破苹果生态壁垒的终极方案 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win 你是否曾经羡慕Mac用户能轻松将iPhone或iPad屏幕投射到电脑上&#xff…...

PitchDetect:基于Web Audio API的实时音高检测完整解决方案

PitchDetect:基于Web Audio API的实时音高检测完整解决方案 【免费下载链接】PitchDetect Pitch detection in Web Audio using autocorrelation 项目地址: https://gitcode.com/gh_mirrors/pi/PitchDetect PitchDetect是一款基于Web Audio API的开源音高检测…...

解构Wot Design Uni:Vue3+TypeScript驱动的uni-app企业级组件库架构演进

解构Wot Design Uni:Vue3TypeScript驱动的uni-app企业级组件库架构演进 【免费下载链接】wot-design-uni 一个基于Vue3TS开发的uni-app组件库,提供70高质量组件,支持暗黑模式、国际化和自定义主题。 项目地址: https://gitcode.com/gh_mirr…...

如何3分钟实现智能字幕同步:音频自动对齐终极指南

如何3分钟实现智能字幕同步:音频自动对齐终极指南 【免费下载链接】Sushi Automatic subtitle shifter based on audio 项目地址: https://gitcode.com/gh_mirrors/sus/Sushi 还在为字幕不同步而烦恼吗?当你在观看不同版本的影视资源时&#xff0…...

Ryujinx Nintendo Switch模拟器完整指南:从零开始PC畅玩Switch游戏

Ryujinx Nintendo Switch模拟器完整指南:从零开始PC畅玩Switch游戏 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验Nintendo Switch游戏的魅力吗&#xff1f…...

地理标志 vs 地理标志资产:一字之差,本质之别

地理标志 vs 地理标志资产:一字之差,本质之别解读《地理标志资产成熟度认证白皮书》中的核心概念区分在《地理标志资产成熟度认证白皮书》中,专知智库首次系统区分了“地理标志”与“地理标志资产”两个概念。这并非文字游戏,而是…...

手把手教你用STM32F103的GPIO口模拟IIC驱动0.96寸OLED(附完整代码和字模提取教程)

STM32F103实战:GPIO模拟IIC驱动0.96寸OLED全流程解析 1. 项目背景与硬件准备 在嵌入式开发中,OLED显示屏因其高对比度、低功耗和轻薄特性成为人机交互的首选方案。对于STM32F103这类基础型MCU,通过GPIO模拟IIC协议驱动OLED是一种高性价比的解…...

AI开发环境革命:基于Docker的AI-OS项目实战与架构解析

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫samirsawarkar/ai-os。光看这个名字,可能很多人会联想到科幻电影里的“人工智能操作系统”,觉得是不是一个能自己思考、管理硬件的庞然大物。但实际点开仓库,你会发…...

5分钟掌握Blender 3MF插件:释放3D打印的完整潜力

5分钟掌握Blender 3MF插件:释放3D打印的完整潜力 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 想要在Blender中无缝处理3D打印文件吗?Blender3m…...

如何快速修复损坏的MP4视频:免费高效的终极解决方案

如何快速修复损坏的MP4视频:免费高效的终极解决方案 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾经遇到过珍贵的视频文件突然无法播放&#…...

孤能子视角:跨域联接之异质大模型同构验证“避坑六原则“

(这个是从头条豆包分析点评"周易"一文引起的。Kimi、信兄参与其中。姑且当科幻小说看)(继续观察AI耦合,比较长)(最后给出百度文心分析点评)豆包对"周易"一文的分析好,我先完整吃透孤能子EIS理论核心,再用它的内部逻辑判断…...