Eyeriss 架构中的访存行为解析

Eyeriss 是 MIT 提出的面向卷积神经网络(CNN)的能效型 NPU(神经网络处理器)架构,其核心创新在于通过硬件结构优化访存行为,以解决传统 GPU 在处理 CNN 时因数据搬运导致的能效瓶颈。以下从访存行为的关键问题、Eyeriss 的解决方案及技术细节展开说明。


一、CNN 的访存挑战:数据复用与带宽压力

CNN 的计算以卷积为核心,其特点是局部性(locality)强但数据复用模式复杂​:

  • 空间局部性​:卷积核在输入特征图上滑动,相邻输出单元的计算共享大量输入数据(如 3x3 卷积核覆盖的 9 个输入像素)。
  • 通道局部性​:同一输入通道的数据会被多个卷积核重复使用(如 16 个卷积核共享同一输入通道)。
  • 批处理局部性​:同一批次(batch)的输入数据在不同输出通道间复用。

传统 GPU 的全局内存(DRAM)→共享内存(Shared Memory)→寄存器三级存储层次,虽能缓解带宽压力,但仍存在:

  1. 数据搬运量大​:CNN 的参数(权重)和激活值(中间结果)需频繁在 DRAM 和计算单元间传输。
  2. 访存带宽成为瓶颈​:计算单元常因等待数据而闲置(计算密度低),能效比差。

二、Eyeriss 的访存优化设计

Eyeriss 通过数据流(Dataflow)架构片上存储层次的协同设计,最大化数据复用,减少 DRAM 访问次数。其核心思想是:​​“让数据尽可能靠近计算单元”​

1. 数据流架构:控制数据流动路径

Eyeriss 定义了四种经典数据流模式(后扩展为更灵活的 ​NoC-aware 数据流),每种模式针对不同的数据复用场景:

  • Weight Stationary (WS)​​:权重固定在一个 PE(Processing Element)中,输入激活值和部分和(Partial Sum)流动。
    → ​优势​:适合权重复用高的场景(如小卷积核),减少权重从片上存储到 PE 的重复加载。
  • Output Stationary (OS)​​:输出激活值固定在 PE 中,权重和输入激活值流动。
    → ​优势​:适合输出通道复用高的场景(如多卷积核并行),减少部分和的频繁更新。
  • Input Stationary (IS)​​:输入激活值固定在 PE 中,权重和部分和流动。
    → ​优势​:适合输入通道复用高的场景(如深层网络),减少输入数据的重复搬运。
  • No Local Reuse (NLR)​​:无数据复用,直接按计算顺序搬运数据(类似传统矩阵乘法)。

Eyeriss 的灵活性​:通过动态配置数据流模式,适配不同层的计算特征(如浅层用 WS,深层用 OS)。

2. 片上存储层次:多级缓存与数据分布

Eyeriss 的存储层次分为四级,逐级减少对 DRAM 的访问:

  1. 片外 DRAM​:存储权重和激活值,带宽有限(如 12GB/s)。
  2. 片上全局缓冲区(Global Buffer)​​:暂存从 DRAM 加载的数据,按需分发给处理单元(PE Array)。
  3. PE Array 内的局部存储​:
    • PE 级寄存器​:每个 PE 包含少量寄存器,存储当前计算的输入、权重和部分和。
    • 行缓冲区(Row Buffer)​​:每个 PE 行共享的缓冲区,用于暂存输入激活值(支持空间局部性复用)。
  4. 数据广播与共享机制​:
    • 权重广播​:同一权重可被多个 PE 共享(通过行缓冲区或全局缓冲区)。
    • 输入激活值共享​:同一输入数据可通过行缓冲区广播给多个 PE(支持通道局部性复用)。

3. 稀疏性与零值跳过

CNN 中存在大量冗余计算(如 ReLU 激活后的零值),Eyeriss 通过稀疏数据流跳过零值计算:

  • 标记零值​:在数据加载时标记零激活值,PE 直接跳过相关计算。
  • 动态调整数据流​:零值跳过后,剩余数据重新分配到 PE,避免无效搬运。

三、Eyeriss 的访存行为示例(以卷积层为例)​

假设一个 3x3 卷积层,输入特征图尺寸 32x32,输出特征图 30x30,输入/输出通道数各为 16:

  1. 数据加载​:
    • 权重(3x3x16x16)从 DRAM 加载到全局缓冲区,按 WS 数据流分发给 PE。
    • 输入激活值(32x32x16)分块加载到全局缓冲区,通过行缓冲区广播给 PE 行。
  2. PE 计算​:
    • 每个 PE 计算局部 3x3 区域的输出(如 1x1 输出单元),权重固定,输入激活值从行缓冲区流动。
    • 部分和(Partial Sum)存储在 PE 寄存器中,逐步累加。
  3. 数据复用​:
    • 空间复用​:同一输入激活值的 3x3 区域被多个 PE 共享(通过行缓冲区)。
    • 通道复用​:同一输入通道被多个卷积核(16 个)重复使用(通过全局缓冲区)。
  4. 结果写回​:
    • 输出激活值(30x30x16)暂存于全局缓冲区,按需写回 DRAM(非实时写入,减少带宽压力)。

四、Eyeriss 的能效优势

通过上述设计,Eyeriss 实现了:

  1. 数据复用率提升​:输入激活值的空间复用率达 90%+,权重复用率达 80%+。
  2. DRAM 访问减少​:相比 GPU,DRAM 访问量降低 10-100 倍。
  3. 计算密度优化​:PE 利用率(Utilization)从 GPU 的 10% 提升至 30%-50%。

总结

Eyeriss 的访存行为优化核心是​“数据流驱动存储层次”​​:通过动态数据流模式匹配计算特征,结合多级片上存储和数据复用机制,最大限度减少 DRAM 访问,从而显著提升能效。这一设计为后续 NPU(如 Google TPU、华为 Da Vinci)的访存优化奠定了基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90312.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90312.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90312.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字图像处理(三:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么

数字图像处理(三)一、(准备工作:咋玩,用什么玩具)图像以矩阵形式存储,那矩阵一变、图像立刻跟着变?1. Python Jupyter Notebook/Lab 库 (NumPy, OpenCV, Matplotlib, scikit-image…

docker-desktop启动失败

报错提示deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \\wsl$\docker-desktop\etc\wsl_bootstrap_version: The network n…

基于FastMCP创建MCP服务器的小白级教程

以下是基于windows 11操作系统环境的开发步骤。 1、python环境搭建 访问官网:https://www.python.org/。下载相应的版本(如:3.13.5),然后安装。 安装完成之后,使用命令行工具输入python,显示…

网络协议与层次对应表

网络协议与层次对应表(OSI & TCP/IP模型)OSI七层模型TCP/IP四层模型协议/技术核心功能与应用​应用层​应用层HTTP/HTTPS网页传输协议(HTTP)及其加密版(HTTPS)FTP文件上传/下载协议SMTP/POP3/IMAPSMTP发…

android studio(NewsApiDemo)100%kotlin

api接口地址:https://newsapi.org/docs/get-started 项目成品地址:https://github.com/RushHan824/NewsApiDemo 项目效果展示: MVVM数据流 UML图 本系列文章将带你从零实现一个新闻列表App,适合零基础读者。一步步来&#xff0c…

面试高频题 力扣 417. 太平洋大西洋水流问题 洪水灌溉(FloodFill) 深度优先遍历(dfs) 暴力搜索 C++解题思路 每日一题

目录零、题目描述:用人话再讲一遍一、为什么这道题值得咱们学习?二、思路探索常规思路:逐个检查每个格子(会超时!⚠️)三、正难则反:反向思维的巧妙应用 🔄(思考时间&…

博物馆智慧导览系统AR交互与自动感应技术:从虚实融合到智能讲解的技术实践

本文面向博物馆信息化开发者、智慧场馆系统技术建设师及AR 设计工程师,从AR 交互与自动感应技术的逻辑出发,拆解AR虚实融合技术与智能讲解自动感应技术的原理,为相关开发者实践提供可复用的技术路径。如需获取博物馆智慧导览系统解决方案请前往文章最下方获取&#…

高效编程革命:DeepSeek V3多语言支持与性能优化实战

文章目录 如何利用DeepSeek V3编写高效程序代码:从原理到实践 引言 一、DeepSeek V3核心能力解析 1.1 模型架构与优势 1.2 与传统编程辅助工具对比 二、高效代码编写实践指南 2.1 精准提示工程(Prompt Engineering) 基础提示模板 高级提示技巧 2.2 生产级代码生成案例 示例:…

OkHttp 与 JSON 解析库完美结合:Moshi/Jackson/Gson 实战指南

前言在现代 Android 开发中,网络请求与 JSON 数据处理是密不可分的。OkHttp 作为强大的 HTTP 客户端,与 JSON 解析库(Moshi/Jackson/Gson)的结合使用,可以极大简化网络请求与数据解析的流程。本文将详细介绍如何将 OkH…

An error occurred at line: 1 in the generated java file问题处理及tomcat指定对应的jdk运行

一、背景 tomcat7启动后,加载jsp页面报错,提示无法将jsp编译为class文件,主要报错信息如下: An error occurred at line: 1 in the generated java file 最后确认该错误原因为:tomcat7不支持jdk1.8版本 机器上已配…

深入剖析大模型在文本生成式 AI 产品架构中的核心地位

一、大模型的崛起与概念解析 在人工智能技术飞速迭代的当下,大模型已成为驱动行业发展的核心引擎。从技术定义来看,大模型(Large Model) 是指基于深度学习架构、具备海量参数规模(通常数十亿至数万亿级别)&…

Vue Scoped样式:当动态元素成为“无家可归“的孤儿

引言:一场CSS的"身份危机"想象一下:你精心设计了一个Vue组件,为每个元素添加了漂亮的样式。你满意地添加了scoped属性,确保样式不会"越狱"影响其他组件。然后你动态添加了一些新元素,却发现它们完…

vmware分配了ubuntu空间但是ubuntu没有获取

一开始我看vmware中的ubuntu磁盘空间只有200g不够用,我在vmware给Ubuntu分了300G的磁盘空间,但是ubuntu还是只有之前的200g 如图在ubuntu查看后来发现,在磁盘软件里面需要自己分配磁盘空间大小拓展后就可以了

[MarkdownGithub] 使用块引用高亮显示“注意“和“警告“和其他注意方式的选项

参考来源: https://github.com/orgs/community/discussions/16925 Alerts are an extension of Markdown used to emphasize critical information. On GitHub, they are displayed with distinctive colors and icons to indicate the importance of the content. 提示框是 Ma…

mac测试ollama llamaindex

LlamaIndexs 将大语言模型和外部数据连接在一起的工具。大模型prompt有一个长度限制,当外部知识的内容超过这个长度,无法同时将有效信息传递给大模型,因此就诞生了 LlamaIndex。 具体操作就是通过多轮对话的方式不断提纯外部数据&#xff0c…

数据结构:字符串:大小写转换(changing case of a string)

目录 第一性问题:什么是“大小写”? 逐步构造代码:全部转为大写 我们现在用 第一性原理 的方式,从字符串与字符的本质出发,一步步推导出如何在 C 语言中将字符串中的字母变成全部大写或全部小写。 第一性问题&…

闲庭信步使用图像验证平台加速FPGA的开发:第三十二课——车牌识别的FPGA实现(4)车牌字符的分割定位

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程…

03_java_运行机制

1. java执行流程2. 什么是编译3. 什么是运行

鸿蒙卡片开发保姆级教程

卡片 1. 卡片概念 什么是卡片?卡片用来显示或者提示一些基本信息或者进行一些基本操作。注意不能做重逻辑,所有重要逻辑全部交给应用如果是元服务如何唤醒?因为元服务不提供桌面应用图标,我们可以通过用户手动的方式在桌面上添加一…

反向传播及优化器

反向传播(Backpropagation)反向传播是计算梯度的算法,核心作用是高效求解 “损失函数对模型所有参数的偏导数”(即梯度)。没有反向传播,深度学习的大规模训练几乎不可能实现。 整个过程像 “从终点回溯到起…