ABNDP: Co-optimizing Data Access and Load Balance in Near-Data Processing——论文泛读

ASPLOS 2023 Paper 论文阅读笔记整理

问题

近数据处理(NDP)是一种很有前途的体系结构范式,可以解决数据密集型应用程序的内存墙挑战。基于3D堆叠存储器的典型NDP系统包含大量并行处理单元,每个并行处理单元都可以访问其本地存储器以及系统中的其他远程存储器区域。

现有方法局限性

在NDP体系结构中,最小化远程数据访问和实现计算负载平衡需要权衡。对于倾斜的负载,在离其数据位置更近的地方执行计算任务会导致负载不平衡产生热点。为确保负载平衡而动态调度任务不可避免地会使一些计算远离其数据的首选位置,从而导致更多的远程访问。现有技术[13,55,59,70,88]必须牺牲一种技术来改进另一种技术,从而限制NDP的性能和能源效益。

本文方法

本文提出了ABNDP,利用软硬件协同优化来同时缓解这两个问题。

  • 在硬件方面,使用了分布式DRAM缓存设计Traveller cache,在每个处理单元保留一小部分本地DRAM,以缓存来自远程存储器的数据。不允许在任何地方自由缓存数据,而是将每个数据块的缓存限制在NDP系统中分布的有限数量的camp位置。camp位置的缓存数据由附近的多个处理单元共享,提高了缓存空间利用率和数据重用时间,同时仍确保了较短的访问距离。进一步对不同的camp位置使用倾斜映射,减少缓存冲突。

  • 在软件方面,采用混合任务调度策略,同时考虑远程访问成本和负载不平衡影响。除了原始内存位置之外,用于缓存数据的多个camp位置为调度提供了更高的灵活性,这可以更好地分散热数据上的繁重计算,并减少任务中的总远程访问距离。偏斜的camp位置映射方案简化了访问多个数据的任务的调度。

评估表明,ABNDP成功地实现了最小化远程访问成本和保持负载平衡这两个目标,并且平均在性能(1.7×)和能耗(25%)方面显著优于基线系统。

实验

实验环境:zsim[77]模拟器

数据集:数据密集型应用。BFS、单源最短路径(sssp)、Page Rank(pr)、图卷积神经网络(gcn)、A*搜索(astar)、K最近邻(knn)、稀疏矩阵向量乘法(spmv)、K-means(kmeans)。

实验对比:加速比、能量消耗、远程访问次数、活跃核心数、

实验参数:数据集

总结

针对使用3D堆叠存储器的近数据处理(NDP)问题,现有方法难以同时实现最小化远程数据访问和计算负载平衡。本文提出ABNDP,利用软硬件协同优化来同时缓解这两个问题。(1)在硬件方面,使用了分布式DRAM缓存,在每个处理单元缓存远程存储器的数据。对处理单元分组(camp),每组缓存一份数据,缓存数据由附近的多个处理单元共享。进一步对不同的camp位置使用倾斜映射,减少缓存冲突。(2)在软件方面,采用混合任务调度策略,同时考虑远程访问成本和负载不平衡影响。可以调度到camp缓存附近,更好地分散热数据上的繁重计算,并减少任务中的总远程访问距离。

局限性:同一份数据缓存在多个DRAM,缓存一致性的开销应该较高,适用于数据修改较少的负载。

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

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

相关文章

HTML基础:8个常见表单元素的详解

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端程序媛。 后台回复“前端工具”可免费获取开发工具,持续更新。 今天来说说 HTML 表单。它是用于收集用户输入信息的元素集合。例如文本框、单选按钮、复选框、下拉列表等。 用户经常填写的表…

2024智能EDM邮件营销系统使用攻略

在数字化营销领域,智能EDM(Electronic Direct Mail)邮件营销作为一种高效、精准的推广方式,正日益受到企业的高度重视。而要实现这一策略的成功落地,一个高可靠性和高稳定性的专业邮件发送平台则是不可或缺的关键环节。…

大数据分析案例-基于决策树算法构建大学毕业生薪资预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

前端发版上线出现白屏问题

目录 路由配置问题资源缓存问题首屏加载过慢 :喂,你的页面白啦! 出现上线白屏的问题有很多,如:配置错误、缓存问题、浏览器兼容问题,根据不同情况去解决。 路由配置问题 问题描述: 在vue开发…

C语言中位运算介绍

在C语言中,位运算是一种对二进制位进行操作的运算方式,它可以对数据的二进制表示进行位级别的操作,包括按位与、按位或、按位异或、按位取反等。位运算常用于处理底层数据结构、优化代码性能以及实现各种算法。本文将深入介绍C语言中的位运算…

两区域二次调频风火机组,麻雀启发式算法改进simulink与matlab联合

区域1结果 区域2结果 红色曲线为优化后结果〔风火机组二次调频〕

软件杯 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &am…

鸿蒙操作系统-初识

HarmonyOS-初识 简述安装配置hello world1.创建项目2.目录解释3.构建页面4.真机运行 应用程序包共享包HARHSP 快速修复包 官方文档请参考:HarmonyOS 简述 1.定义:HarmonyOS是分布式操作系统,它旨在为不同类型的智能设备提供统一的操作系统&a…

电脑windows 蓝屏【恢复—无法加载操作系统,原因是关键系统驱动程序丢失或包含错误。.......】

当你碰到下图这种情况的电脑蓝屏,先别急着重装系统,小编本来也是想重装系统的,但是太麻烦,重装系统后你还得重装各种软件,太麻烦了!! 这种情况下,你就拿出你的启动U盘,进…

2016国赛-路径之谜

分析: 看到n*n以及四个方向移动,那么就直接使用dfs即可。根据题意可知起始位置是(0,0),终点位置是(n-1,n-1)。 又有要求靶子上的箭数决定了走的路径,那么我们就要加一个判断各个方位的箭数是否符合要求。 示例代码: …

JVM之堆

堆的核心概述 一个JVM实例只存在一个堆内存,堆也是内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 堆内存的大小是可以调节的。 《JVM虚拟机规范》规定,堆可以处于物理上不连…

Pillow教程04:学习ImageDraw+Font字体+alpha composite方法,给图片添加文字水印

---------------Pillow教程集合--------------- Python项目18:使用Pillow模块,随机生成4位数的图片验证码 Python教程93:初识Pillow模块(创建Image对象查看属性图片的保存与缩放) Pillow教程02:图片的裁…

盲盒小程序开发,互联网盲盒下的潜在发展优势

近几年,我国潮玩市场经历了爆发式的发展阶段,尤其是盲盒市场屡创新高!盲盒商品主打IP衍生品、周边等具有收藏价值的商品,深受市场的追捧,满足了不同年龄群体的需求。面对盲盒的蓝海市场,众多的品牌也纷纷加…

Altium Designer的差分对布线走线技巧及规则设置

AD的PCB页面是有差分对布线的工具的,这种工具的使用首先需要自己添加差分对,才能进行交互式差分对布线: 在原理图中放置差分对标识,其中差分对要以_P和_N结尾来命名: 在原理图中放置差分对: 差分对在PCB中的…

浏览器导出excel

做java web项目时&#xff0c;经常遇到需要在页面上点击导出按钮&#xff0c;然后直浏览器接下载下来一个excel文档。 比如一个List<Person>的集合&#xff0c;需要将每个Person当做一行&#xff0c;输出到excel中去。其中Person实体类如下&#xff1a; import lombok.…

selenium元素定位--xpath定位--层级与逻辑组合定位

其他元素非唯一时&#xff0c;又不想用xpath绝对定位时&#xff0c;需要用到层级与逻辑定位. 一、层级属性结合定位&#xff1a; 遇到元素没有class、name、id等或属性动态变化情况时&#xff0c;可以找父节点元素&#xff0c;父级节点没有id时&#xff0c;可以继续往上找id&…

✨一键释放手机空间,让生活更流畅——手机清理大师超实用体验分享

&#x1f4dd;亲爱的朋友们&#xff0c;你是否也曾为手机里堆积如山的照片、杂乱无章的相册和不断提醒存储不足的问题而头疼不已呢&#xff1f;今天给大家安利一款我近期爱不释手的神器——手机清理大师&#xff0c;它就如同你的手机专属大扫除小能手&#xff0c;让你的手机瞬间…

Python爬虫:爬虫基本概念、流程及https协议

本文目录&#xff1a; 一、爬虫的基本概念1.为什么要学习爬虫1.1 数据的来源1.2 爬取到的数据用途 2.什么是爬虫3. 爬虫的更多用途 二、爬虫的分类和爬虫的流程1.爬虫的分类2.爬虫的流程3.robots协议 三、爬虫http和https1.http和https的概念2.浏览器发送HTTP请求的过,2.1 http…

数据分析面试题(41~50)

41、lstm的原理、lstm和rnn的区别 ①LSTM是一种常用于处理序列数据的循环神经网络&#xff08;RNN&#xff09;架构&#xff0c;特别适用于长序列的建模。其主要特点是通过门控机制来控制信息的流动&#xff0c;从而有效地解决了传统RNN在处理长序列时的梯度消失或爆炸的问题。…

Git学习笔记之基础

本笔记是阅读《git pro》所写&#xff0c;仅供参考。 《git pro》网址https://git-scm.com/book/en/v2 git官网 https://git-scm.com/ 一、git起步 1.1、检查配置信息 git config --list查看所有的配置以及它们所在的文件 git config --list --show-origin可能有重复的变量名…