论文解析——异构多芯粒神经网络加速器

news2024/11/15 18:21:04

作者

朱郭益, 马胜,张春元, 王波(国防科技大学计算机学院)

摘要

   随着神经网络技术的快速发展, 出于安全性等方面考虑, 大量边缘计算设备被应用于智能计算领域。首先,设计了可应用于边缘计算的异构多芯粒神经网络加速器其基本结构及部件组成. 其次, 通过预计算异构芯粒上的计算负载, 将计算任务在神经网络通道上进行划分, 不断加入新的任务, 逐芯粒测试并进行迭代, 选取异构芯粒组合以构建神经网络加速器. 最后, 分别在抽样构造的测试神经网络、MobileNet 以及 ShuffleNet 上使用这种粗粒度优化的方法构建了异构多芯粒神经网络加速器, 并测试了其能耗与性能表现. 实验结果表明, 这种异构的设计方法可以在控制能耗同时, 分别取得 7.43, 2.30 和 5.60 的加速比。

正文

现有神经网络加速器的弊端

部件耦合程度高导致设计制造成本高

使用单一的芯粒,未考虑多样性

芯粒技术在神经网络加速器中的应用优势

设计复用性强

制造不同计算性能需求的 CPU, 仅需设计一次计算芯粒; 因此在保持整体架构不变的条件下, 考虑通过在单个芯片上集成数量不同的计算芯粒, 实现多种性能的芯片制造。

加速器的硬件和数据流的关系

现有的神经网络加速器的主要层次结构为“DRAM-全局缓存-计算单元”,如图所示:
在这里插入图片描述

权重固定数据流

同一组权重会与多组输入的特征图进行计算, 权重在神经网络的计算过程中存在复用的机会。
该类型加速器在计算中先把权重放入计算单元的片上存储中进行存储, 再通过不断地更换输入特征图和输出的部分和完成神经网络的计算。例如NVIDIA的NVDLA。

输出固定数据流

输出固定数据流的神经网络加速器在片上寄存器中存放每个周期计算完成的部分和。 通过在计算过程中不断地更换计算时的输入数据与权重数据, 将结果累加到之前的部分和中, 最后完成输出数据的计算与数据的换入/换出操作。 例如Google 公司的 TPU。

行固定数据流

由于卷积运算中可以将高维的卷积操作拆分为一维的行卷积操作, 通过在依网格排布的计算单元中横向广播权重、斜向广播输入特征图, 在计算单元中实现输入特征图中一行与权重中一行的乘累加操作, 再在纵向进行一维卷积部分和的累加操作, 得到单层卷积计算的输出结果。例如 MIT 的 Eyeriss。

本文设计的神经网络加速器

异构多芯粒神经网络加速器的组成部分主要为 I/O 芯粒模块、控制单元以及计算芯粒阵列。
在这里插入图片描述

各类芯粒功能

IO芯粒

I/O 芯粒主要负责控制单元的信号传输以及计算芯粒阵列与 DRAM 间的数据交换。主要功能是传输数据信号至邻近的计算芯粒, 传输外部的控制信号至控制模块, 接收控制单元的控制信号, 并向外部设备传出计算完成的数据与设备中断信号。

计算芯粒

通过mesh网络互联。该阵列中的每一个芯粒单元均类似于传统的神经网络加速器, 每个芯粒拥有自己的片上缓存与片上计算单元, 可以异步执行分配的计算任务, 计算任务的数据包通过片上网络进行转发, 控制信号则由控制单元通过一对多的方式轮询与发送。

计算芯粒接口内联标准化

单个计算芯粒的外部连接接口均需要划分为接收块、发送块、时钟块与异步块, 并采用相同大小的接口设计。
每个计算芯粒通过异步块查询相邻的计算芯粒是否忙碌,从而判断是否接受数据

使用AIB作为芯粒间的接口

参考文献

[9] Shao Y S, Cemons J, Venkatesan R, et al. Simba: scaling deep-learning inference with chiplet-based architecture[J]. Communications of the ACM, 2021, 64(6): 107-116
[18] Wade M, Anderson E, Ardalan S, et al. TeraPHY: a chiplet technology for low-power, high-bandwidth in-package optical
I/O[J]. IEEE Micro, 2020, 40(2): 63-71

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ - 可变模版参数 - emplace相关接口函数 - 移动构造函数 和 移动赋值运算符重载 的 默认成员函数

可变模版参数 我们先来了解一下,可变参数。可变参数就是在定义函数的时候,某一个参数位置使用 "..." 的方式来写的,在库当中有一个经典的函数系列就是用的 可变参数:printf()系列就是用的可变参…

基于SSM的个人博客系统

实现内容 本系统为用户提供实现了以下功能: 1.登录功能: 系统为单用户系统,为用户分配了用户名和密码。用户必须先登录,进入操作界面。用户输入ID和密码,通过服务器验证方可运行,否则显示消息提示。 2.…

Netron【.pt转.onnx模型展示】

接着上一篇写哈,如何转.onnx的。 因为是转.onnx类型的,需要先安装onnx的包。 这是直接pip install onnx后转onnx报的错: 很显然是版本问题导致的,so: 将export.py的脚本拉到最下面的parse_opt函数,把“17”改为“12”…

解读非托管流动性协议Hover: 差异化、层次化的全新借贷体系

“Hover 是 DeFi 借贷赛道的另辟蹊径者,除了在自身机制(借贷模型、治理体系)上进行创新获得内生动力外,背靠日渐繁荣的 Kava、Cosmos 生态进一步获得外生动力,发展潜力俱佳” 与 DEX 类似,借贷也是 DeFi 世…

对于L1正则化和L2正则化的理解

在DL中,L1和L2正则化经常被使用到,因为大于1L的正则化都是凸优化的问题,是个简单问题,可以被解决。 首先说正则的意义: 一切可以缓解过拟合的方法,都可以被叫做正则化 我最开始理解正则化的时候就是看lh…

数学分析:含参变量的积分

同样很多收敛性的证明不是重点,但里面的知识还是需要适当掌握,知道中间的大致思考和解决路径即可。 本质还是极限的可交换性,求导可以换到积分里面去操作。 这里要注意变量的区别,首先积分的被积变量是x,但是函数的变量…

小红书婴童产业探索,解析消费者需求!

在消费升级、市场引导的背景下,众多产业都在悄然发生着变化,其中“婴童产业”就是非常有代表性的一个。今天就来深入分析小红书婴童产业探索,解析消费者需求! 一、何为婴童产业 事实上,婴童产业,并不仅仅局…

java中线程池的使用+优雅的spring释放资源

1.定义一个接口 package com.zsp.quartz.service;public interface ScheduledService {void setInfo(); }2.定义实现类 package com.zsp.quartz.service.impl;import com.alibaba.fastjson.JSON; import com.zsp.quartz.entity.User; import com.zsp.quartz.service.Schedul…

弹性资源组件elastic-resource设计(四)-任务管理器和资源消费者规范

简介 弹性资源组件提供动态资源能力,是分布式系统关键基础设施,分布式datax,分布式索引,事件引擎都需要集群和资源的弹性资源能力,提高伸缩性和作业处理能力。 本文介绍弹性资源组件的设计,包括架构设计和详…

ctfshow-web11(session绕过)

php代码审计: function replaceSpecialChar($strParam){$regex "/(select|from|where|join|sleep|and|\s|union|,)/i";return preg_replace($regex,"",$strParam);} 首先定义了一个函数,主要是使用preg_replace函数对我们提交的内…

【C++设计模式之解释器模式:行为型】分析及示例

简介 解释器模式(Interpreter Pattern)是一种行为型设计模式,它提供了一种解决问题的方法,通过定义语言的文法规则,解释并执行特定的语言表达式。 解释器模式通过使用表达式和解释器,将文法规则中的句子逐…

用 HTTP 提交数据,基本就这 5 种方式

网页开发中,向服务端提交数据是一个基本功能,工作中会大量用 xhr/fetch 的 api 或者 axios 这种封装了一层的库来做。 可能大家都写过很多 http/https 相关的代码,但是又没有梳理下它们有哪几种呢? 其实通过 http/https 向服务端…

SQL Server 简介与 Docker Compose 部署

今天我翻阅了在之前公司工作时的笔记,发现了有关数据库的一些记录。当时,我们的项目开始使用 Oracle 数据库,但后来由于一些项目需求的变更,我们切换到了 SQL Server 。值得一提的是,公司当时也开始采用 Docker 技术&a…

基于matlab统计Excel文件一列数据中每个数字出现的频次和频率

一、需求描述 如上表所示,在excel文件中,有一列数,统计出该列数中,每个数出现的次数和频率。最后,将统计结果输出到新的excel文件中。 二、程序讲解 第一步:选择excel文件; [Filename, Pathn…

VBox启动失败、Genymotion启动失败、Vagrant迁移

VBox启动失败、Genymotion启动失败、Vagrant迁移 2023.10.9 最新版本vbox7.0.10、Genymotion3.5.0 Vbox启动失败 1、查看日志 Error -610 in supR3HardenedMainInitRuntime! (enmWhat4) Failed to locate ‘vcruntime140.dll’ 日志信息查看方法->找到虚拟机所在位置->…

Linux基础指令大全

Linux基础指令大全 1. ls 指令2. pwd命令3. cd 指令4. touch指令5. mkdir指令6. rmdir指令 && rm 指令7. man指令8.cp指令9. mv指令10. cat 指令11. more指令12. less指令13. head指令14. tail指令15. 时间相关的指令1. **在显示方面,使用者可以设定欲显示的…

苍穹外卖项目

1. 苍穹外卖项目介绍 1.1 项目介绍 定位:专门为餐饮企业(餐厅、饭店)定制的一款软件产品 项目架构:体现项目中的业务功能模块 1.2 产品原型 产品原型:用于展示项目的业务功能,一般由产品经理进行设计 …

三十三、【进阶】索引的分类

1、索引的分类 (1)总分类 主键索引、唯一索引、常规索引、全文索引 (2)InnoDB存储引擎中的索引分类 2、 索引的选取规则(InnoDB存储引擎) 如果存在主键,主键索引就是聚集索引; 如果不存在主键&#xff…

【计算机基础】Git系列3:常用操作

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

多路彩灯控制器led流水灯VHDL速度可调仿真图视频、源代码

名称:多路彩灯控制器led流水灯VHDL速度可调 软件:Quartus 语言:VHDL 代码功能: 使用VHDL设计彩灯控制器,共24个led灯,分为5种不同的花样,可以通过按键切换花样的变化速度。 代码下载&#…