【论文合集1】- 存内计算加速机器学习

本章节论文合集,存内计算已经成为继冯.诺伊曼传统架构后,对机器学习推理加速的有效解决方案,四篇论文从存内计算用于机器学习,模拟存内计算,对CNN/Transformer架构加速角度阐述存内计算。

           【1】WWW: What, When, Where to Compute-in-Memory

简介:本文探讨了在机器学习推理加速中整合Compute-in-memory(CiM)的问题,CiM已经成为缓解冯诺依曼机器高数据移动成本的一个有效解决方案。CiM可以在内存中执行大规模并行的通用矩阵乘法(GEMM)操作,这是机器学习推理中的主要计算。然而,将内存重新用于计算会带来关键问题:1)使用何种类型的CiM:考虑到众多模拟和数字CiM,需要从系统角度确定它们的适用性;2)何时使用CiM:机器学习推理包括具有各种内存和计算要求的工作负载,难以确定何时CiM比标准处理器更有利;3)在何处整合CiM:每个内存级别具有不同的带宽和容量,这会影响CiM整合的数据移动和局部性优势。本文使用Timeloop-Accelergy对CiM原型进行了早期系统级评估,包括模拟和数字基元。我们将CiM整合到不同的缓存内存级别中,在类似Nvidia A100的基线架构中为各种机器学习工作负载量身定制数据流。我们的实验表明,CiM架构可以提高能效,使用INT-8精度能够实现高达0.12倍的能量降低,使用权重交错和复制可以获得高达4倍的性能提升。本文提供了关于使用何种类型的CiM,何时和在何处最优地将其整合到缓存层次结构中以加速GEMM的见解。

 论文链接:https://arxiv.org/abs/2312.15896v1

 【2】AiDAC: A Low-Cost In-Memory Computing Architecture with All-Analog Multi-Bit Compute and Interconnect

简介:本文介绍了一种新兴技术——模拟内存计算(Analog in-memory computing,AiMC),该技术在神经网络加速方面表现出了极高的性能优势。然而,随着计算位宽和规模的增加,高精度数据转换和远距离数据路由将导致AiMC系统不可接受的能量和延迟开销。本文重点研究了负责计算和及时互联的潜力,并展示了一种创新的AiMC架构——AiDAC,它有三个关键贡献:(1)AiDAC通过采用电容器分组技术增强了多位计算效率并减少了数据转换时间;(2)AiDAC首次采用行驱动器和列时间累加器实现了大规模AiMC阵列集成,同时最小化了数据移动的能耗;(3)AiDAC是第一项支持大规模全模拟多位向量矩阵乘法(VMM)操作的工作。评估结果显示,AiDAC在保持高精度计算(总计算误差小于0.79%)的同时,还具有出色的性能特征,如高并行性(最高可达26.2TOPS)、低延迟(<20ns/VMM)和高能量效率(123.8TOPS/W),适用于具有1024个输入通道的8位VMM。

 论文链接:https://arxiv.org/abs/2312.11836v2

【3】CLSA-CIM: A Cross-Layer Scheduling Approach for Computing-in-Memory Architectures

 简介:机器学习(ML)加速器的需求正在快速增长,推动了新型计算概念的发展,例如基于电阻式随机存取存储器(RRAM)的分块计算内存(CIM)架构。CIM允许在内存单元内计算,从而实现更快的数据处理和降低功耗。高效的编译器算法是利用分块CIM架构潜力的关键。虽然传统的ML编译器专注于为CPU、GPU和其他冯诺伊曼架构生成代码,但需要进行适应以覆盖CIM架构。跨层调度是一种有前途的方法,因为它增强了CIM核的利用率,从而加速计算。虽然类似的概念在以前的工作中隐含使用,但缺乏明确且可量化的算法定义,用于分块CIM架构的跨层调度。为了填补这一空白,我们提出了CLSA-CIM,这是一种用于分块CIM架构的跨层调度算法。我们将CLSA-CIM与现有的权重映射策略集成,并将其与最先进的调度算法进行性能比较。CLSA-CIM将利用率提高了高达17.9倍,从而将总体加速比提高了高达29.2倍,与SOTA相比。

论文链接:https://arxiv.org/abs/2401.07671v1 

【4】Towards Joint Optimization for DNN Architecture and Configuration for Compute-In-Memory Hardware

简介:随着对大规模深度神经网络需求的增长,计算内存(CiM)已成为缓解限制Von-Neuman架构的带宽和芯片内互连瓶颈的突出解决方案。然而,CiM硬件的构建面临挑战,因为任何特定的存储器层次结构,如不同接口的缓存大小和存储器带宽,可能不完全匹配于任何神经网络的属性,例如张量维度和算术强度,从而导致次优和表现不佳的系统。尽管神经结构搜索(NAS)技术在产生适用于给定硬件度量预算(例如DNN执行时间或延迟)的高效子网络方面取得了成功,但它假定硬件配置已经被冻结,往往会为给定预算产生次优的子网络。在本文中,我们提出了CiMNet,这是一个框架,它共同搜索了CiM架构的最佳子网络和硬件配置,创建了下游任务准确性和执行度量(例如延迟)的帕累托最优前沿。所提出的框架可以理解子网络性能和CiM硬件配置选择之间的复杂相互作用,包括带宽、处理单元大小和存储器大小。来自CNN和Transformer家族的不同模型架构的详尽实验证明了CiMNet在寻找协同优化的子网络和CiM硬件配置方面的有效性。具体而言,对于与基线ViT-B相似的ImageNet分类准确性,仅优化模型架构可以将性能(或减少工作负载执行时间)提高1.7倍,而同时优化模型架构和硬件配置可以将其提高3.1倍。

论文链接:https://arxiv.org/abs/2402.11780v1 

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

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

相关文章

maven 配置(远程仓库管理)

maven 配置 如何上传至远程仓库单一项目(需配置pom.xml与setting.xml)全局(显式激活) profile (可实现: 单一项目配置、单一用户配置、全局配置)如何使用profile 公司因为jar包管理混乱(本地缺这个缺那个的)&#xff0c;因此建了一个私库。但是仍然很混乱&#xff0c;因为maven…

Java自定义注解:从定义到解析,再到AOP切面与日志打印应用

目录 一、注解定义二、注解解析三、自定义注解结合AOP切面四、自定义注解用于日志打印五、区别总结六、应用场景总结 在Java开发中&#xff0c;注解是一种强大的元编程工具&#xff0c;它可以帮助我们提升代码的可读性和功能性。本文将深入探讨如何创建和使用自定义注解&#x…

Java JVM 浅析

为什么要有JVMJVM是什么&#xff1f;JVM的工作流程和组成部分JVM规范和JVM实现JVM原理详解 带着以上问题&#xff0c;我将尝试对JVM作出一些简单的介绍。 一、JVM 简介 在90年代初&#xff0c;软件开发面临一个大问题&#xff0c;即不同的操作系统和硬件架构要求开发不同的版本…

Acrobat Pro DC 2023 for Mac:PDF处理的终极解决方案

Acrobat Pro DC 2023 for Mac为Mac用户提供了PDF处理的终极解决方案。它具备强大的文档处理能力&#xff0c;无论是查看、编辑还是创建PDF文件&#xff0c;都能轻松胜任。在编辑功能方面&#xff0c;Acrobat Pro DC 2023支持对文本、图像进行精准的修改和调整&#xff0c;还能添…

从RAID 0到RAID 10:全面解析RAID技术与应用

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、磁盘阵列简介 2、磁盘阵列诞生背景 3、硬件RA…

联邦学习框架VeryFL

一、介绍 VeryFL(Variable-Fidelity Learning)是一种联邦学习框架。联邦学习是一种分布式机器学习方法,其中许多参与者(例如移动设备或边缘设备)共同训练一个全局模型,而不需要将他们的数据上传到中央服务器。与传统的集中式方法相比,联邦学习具有更高的隐私性和安全性…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-14-主频和时钟配置

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

MPAndroidChart 详细使用 - BarChart

chart下面的方法 getDescription().setEnabled(boolean enabled);//设置描述是否显示 setPinchZoom(boolean enabled);//设置x轴和y轴能否同时缩放。默认是否 setScaleEnabled(boolean enabled);//是否支持缩放 setScaleXEnabled(boolean enabled);//启用/禁用x轴上的缩放 setS…

示波器基础1-带宽

数字示波器最重要的基本特征之一是其带宽&#xff0c;了解带宽及其对技术指标的影响对于选择合适的示波器非常有帮助。 这里我们对示波器带宽的一些基本方面做一简要介绍。 当我们谈到示波器的带宽时&#xff0c;重要的是要区分模拟带宽和数字带宽。模拟带宽主要受仪器模拟输入…

【AIGC调研系列】基于人工智能的测试用例生成工具QAMete

百度测试平台QAMate是一个基于人工智能的测试用例生成工具。该平台利用文心大模型&#xff0c;支持从需求文本、表格及整份需求文档中自动生成测试用例[1][6][7]。此外&#xff0c;QAMate还允许用户构建专属的Prompt和业务经验知识库&#xff0c;以定向提升生成效果[1][6][7]。…

Vue本地储存与自定义事件

一.本地存储 浏览器通过window.sessionStorage和window.loaclStorage实现本地存储&#xff0c;存储大小一般支持5MB左右&#xff08;不同浏览器大小不同&#xff09; 相关api 1.xxxxxStorage.setItem(key, value) 接受一个键和值作为参数&#xff0c;将键值对添加到储存中…

ppocrV4自带的标注软件的坑

1.默认读图方式是cv2.imread()&#xff0c;不支持中文路径&#xff0c;所以标注的文件夹最好不要有中中文 2.多边形标注方式有bug,标完之后导出识别结果为空。比如下面这张图&#xff0c;多边形标注完之后&#xff0c;再导出识别结果&#xff0c;在crop_img文件夹里面却没有。…

C# WinForm —— 14 CheckedListBox 复选列表框介绍

1. 简介 类似 ListBox&#xff0c;提供项的列表&#xff0c;区别就是 CheckedListBox 每一个项前面有个复选框 2. 常用属性 属性解释(Name)控件ID&#xff0c;在代码里引用的时候会用到,一般以 ckl 开头BackColor背景颜色BoderStyle边框样式&#xff1a;无、FixedSingle、F…

uni-appH5Android混合开发三 || uni-app调用Android原生方法的三种方式

前言&#xff1a; 关于H5的调用Android原生方法的方式有很多&#xff0c;在该片文章中我主要简单介绍三种与Android原生方法交互的方式。 uni-app跨平台框架介绍和快速入门 uni-app跨平台框架介绍和快速入门 一、H5方法调用android原生方法 H5 Android开发规范官方文档&#…

EDA(六)Modelsim

EDA&#xff08;六&#xff09;Modelsim ModelSim是一款由Mentor Graphics公司&#xff08;现为Siemens EDA的一部分&#xff09;开发的高性能、交互式和可扩展的HDL&#xff08;硬件描述语言&#xff09;仿真工具。它支持Verilog、SystemVerilog和VHDL等语言&#xff0c;被广泛…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷2(容器云)

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…

Java入门基础学习笔记10——变量

变量的学习路径&#xff1a; 认识变量->为什么要用变量&#xff1f;->变量有啥特点&#xff1f;->变量有啥应用场景&#xff1f; 什么是变量&#xff1f; 变量是用来记住程序要处理的数据的。 变量的定义格式&#xff1a; 数据类型 变量名称 数据&#xff1b; 数…

Android之给Button上添加按压效果

一、配置stateListAnimator参数实现按压效果 1、按钮控件 <Buttonandroid:id"id/mBtnLogin"android:layout_width"match_parent"android:layout_height"48dp"android:background"drawable/shape_jfrb_login_button"android:state…

[微信小程序] 入门笔记2-自定义一个显示组件

[微信小程序] 入门笔记2-自定义一个显示组件 0. 准备工程 新建一个工程,删除清空app的内容和其余文件夹.然后自己新建pages和components创建1个空组件和1个空页面. 设定 view 组件的默认样式,使其自动居中靠上,符合习惯.在app.wxss内定义,作用做个工程. /**app.wxss**/ /* 所…

【强训笔记】day18

NO.1 思路&#xff1a;双指针模拟。to_string将数字转化为字符。 代码实现&#xff1a; class Solution { public:string compressString(string param) {int left0,right0,nparam.size();string ret;while(right<n){while(right1<n&&param[right]param[right…