UniMem: Redesigning Disaggregated Memory within A Unified Local-Remote Memory Hierarchy
START
Basic
# UniMem: Redesigning Disaggregated Memory within A Unified Local-Remote Memory Hierarchy
TL;DR:基于缓存一致性的DM,做了消除中间层、优化缓存、页面提升的优化
1 Introduction分离式内存系统,基于RDMA或者CXL现存的三种分离式内存系统
基于对象的分离式内存系统
基于页的分离式内存系统
缓存一致性分离式内存系统
基于缓存一致性的分离式内存系统面临的问题
地址转换开销
缓存颠簸和污染
我们建议UniMem重新设计远程内存机制,将远程内存池直接暴露给CN的物理内存空间,从而消除间接层我们扩展了操作系统的内存热插拔功能[11]来实现灵活的远程内存管理考虑到 CN 上远程内存的本地缓存必须承受缓存抖动和污染,我们提出了一种本地缓存机制,为频繁访问的页面保留大部分缓存空间,并及时驱逐很少或没有重用的页面它根据页面热度和热度碎片确定设备连接内存中的哪个页面应迁移到主机内存本文中提到的基于缓存一致性的DM系统代表了通过网络扩展远程内存的工作
2.2 Mo ...
HydraRPC: RPC in the CXL Era
START
Basic
# HydraRPC: RPC in the CXL Era
TL;DR:
1 Introduction传统的RPC基于消息传递,但是CXL可以基于共享内存三个问题1)如何设计RPC的控制平面和RPC协议,以充分发挥CXL HDM的潜在性能;2)CXL HDM提供共享内存接口。如果没有消息传递接口,就没有高效且易于使用的机制来通知CPU请求/响应到达;3)在RPC场景中使用CXL HDM时如何管理它。
延迟低、拓展性好
Challenges of State-of-the-art RPC现有RPC的挑战,
网络开销
数据复制开销
拓展性问题
相较于传统的传值,基于共享内存的通信只需要传引用
优势包括
不涉及网络通信
字节寻址,可以对动态数据就地更新。这消除了序列化和反序列化的需求从而提高性能
为什么要不过cache的CXL内存访问?
不是3.0的共享内存,是在2.0的池化基础上做的,可以访问同一块内存,但是没有缓存一致性.mem协议、,所以手动规定不能被缓存,保证正确性
Design of HydraRPC5.1 Architect ...
Low-overhead General-purpose Near-Data Processing in CXL Memory Expanders
START
Basic
TL;DR:利用mem协议解决NDP卸载延迟大的问题,
I. INTRODUCTIONCXL技术提出,延迟对于延迟敏感性应用很重要,带宽也比不过内存带宽,所以NDP是不错的解决方案。
本文提出一种新颖的Memory-Mapped NDP (M2NDP) architecture.基于两个设计
Memory-Mapped function (M2func) for lowoverhead communication between the host and NDP-enabled CXL memory,
Memory-Mapped μthreading (M2μthr) for efficient NDP kernel execution.M2func 有选择地重新利用 CXL.mem 中定义的读写数据包,以实现内存事务之外的高效主机设备通信。通过将 CXL.mem 请求中的 NDP 管理命令(即函数调用)封装到预先确定的地址,我们可以避免使用 CXL.io / PCIe 的传统卸载的高延迟开销。M2func 的关键推动因素是放置在 CXL 存储 ...
Partial Failure Resilient Memory Management System for (CXL-based) Distributed Shared Memory
START
Basic
# Partial Failure Resilient Memory Management System for (CXL-based) Distributed Shared Memory
TL;DR:基于CXL的共享内存部分容错设计
> 我对疑问是,这篇文章是否描述了共享内存多进程之间如何对同一块物理内存建立映射
>
> 答案:在使用前先mmap共享内存到自己的虚拟地址上去
> 正常来说,单机内多进程使用共享内存就是通过shm或mmap,cxl3.0的共享内存就类似这个,但是GIM呢,难道也要提前mmap吗?恐怕是需要的,一个进程就算能访问所有的物理内存也得先malloc才能访问,对于共享内存也得先shm或mmap才能访问
## 1 Introduction
DSM的相关论文
Efficient distributed memory management with RDMA and caching.
{Latency-Tolerant} Software Distributed Shared Memory.
Distributed Shared Pers ...
Memory Sharing with CXL: Hardware and Software Design Approaches
START
Basic
# Memory Sharing with CXL: Hardware and Software Design Approaches
TL;DR:介绍基于CXL的内存共享机制的软硬件设计
1 IntroductionAMD出品这篇文章的intro介绍了从cxl1.1到3.0的特性,尤其是内存拓展共享内存方面,
CXL2.0不支持硬件共享,CXL3.0支持硬件共享,但是必须通过软件解决方案来实现较高的性能。出于性能考虑,对于较大的共享地址空间,很大一部分内存区域需要软件支持才能有效实现内存共享。本文主要提出一些software-only和软硬件协同的共享方案
2 Software-Enabled Memory Sharing共享内存使用Inter-Processor Communication (IPC)
linux提供了一些方法创建映射共享内存
System V shared memory API(shmget shmat shift shmctl)
POSIX shared memory API(shm_open mmap)这些机制是单host多进程的 ...
OmniCache: Collaborative Caching for Near-storage Accelerators
START
Basic
# OmniCache: Collaborative Caching for Near-storage Accelerators
TL;利用neardata cache 和主机设备cache的协作来加速IO(文件系统)和数据处理
## 1 introduction
数据量激增,高性能数据处理需求,传统CPU面临性能和能耗瓶颈,引入近存储数据处理设备,减少数据移动和相关开销。
之前sota的方法:using storage as a raw block device [33], developing near-storage key-value stores [13, 17, 24, 34], and creating near-storage file systems
除此之外还有特定应用的设计。
在近存储加速器上利用内存缓冲区对于减轻较高存储延迟和有限带宽的影响至关重要,带宽高,局部性好,但是容量比DRAM小很多。希望协同利用device和host memory,最大限度地减少存储层和主机层之间的数据移动,从而加速数据处理和常规 I/O 操作( ...
Toward CXL-Native Memory Tiering via Device-Side Profiling
START
Basic
# Toward CXL-Native Memory Tiering via Device-Side Profiling
TL;DR:将内存访问分析放入CXL控制器中,以实现高精度低开销的内存访问分析,从而实现高效的分层内存管理
## I. INTRODUCTION
面向CXL的内存分层系统,困难源于内存访问分析方法,现有的分析方法比如PTE-scan [50], hint-fault monitoring [25], and PMU sampling都有固有的缺陷
PTE 扫描和提示错误监控操作页表条目 (PTE) 中的特殊位来实现页面跟踪。PTE 扫描定期清除 PTE 中的访问位,在处理器设置这些位后通过扫描来识别访问的页面
Hint-fault monitoring [25] 也会毒害一些采样的 PTE。对这些页面的以下访问将触发保护错误,并通知操作系统该页面访问。
显然,PTE-scan 在每个 epoch 中每页仅捕获一次访问,导致时间分辨率低且开销高。显然,PTE-scan 在每个 epoch 中每页仅捕获一次访问,导致时间分辨率低且开销高
** ...
HME: A Lightweight Emulator for Hybrid Memory
START
Basic
# HME: A Lightweight Emulator for Hybrid Memory
TL;DR:
## Ⅰ. INTRODUCTION
NVM硬件不可用,现有的模拟平台存在种种问题
- Gem5
- Zim
- Intel Persistent Memory Emulation Platform (PMEP)
- Quartz
本文提出HME,不专注于准确的模拟内存访问的细节,而是专注于模拟带宽和延迟
带宽限制类似PMEP和Quartz,用DRAM thermal control interface控制(intel CPU支持)。定期注入额外的软件创建的延迟(NVM 和 DRAM 延迟之间的差异)来模拟 NVM 延迟。
II. NVM EMULATION MODELS令 RDi 表示在给定时间间隔 i 内应注入的总读取延迟,NVM r 和 DRAMr 分别表示平均 NVM 和 DRAM 读取延迟,M i 表示间隔 i 内的内存访问总数。等式1描述了计算附加延迟RDi的基本模型,其中M i 是我们需要在时间间隔i内计数的唯一关键参数。当前的商用 ...
Sidekick: Near Data Processing for Clustering Enhanced by Automatic Memory Disaggregation
START
Basic
# Sidekick: Near Data Processing for Clustering Enhanced by Automatic Memory Disaggregation
TL;DR:一套基于CXL的NDP聚类算法系统,使用函数调用堆栈区分函数类型,使用遗传算法来决定自动迁移策略
## INTRODUCTION
面向聚类的NDP
聚类是常见的算法,其需要大内存来进行计算,且CPU会频繁的访问DRAM。CXL可以提供一种拓容方法,然而会增大延迟,且目前带宽弱于DRAM
NDP是此类应用的一种有前途的解决方案,我们可以实现一个 NDP 加速器,以卸载内存密集型任务以减少数据通信。同时,主机可以基于一致的设备间内存访问能力来执行其余的计算。
然而,对于聚类算法有两个挑战
需要支持多种聚类技术,而不是特定应用优化
以自动化方式执行适合 NDP 的任务,不需要手动修改。在本文中,我们提出了一种支持 NDP 的内存分解系统,称为 Sidekick,它基于 2 型 CXL 设备,并通过系统软件进行增强,该系统软件实现了聚类算法的自动分配技术。 Sideki ...
EMS-i: An Efficient Memory System Design with Specialized Caching Mechanism for Recommendation Inference
START
Basic
# EMS-i: An Efficient Memory System Design with Specialized Caching Mechanism for Recommendation Inference
TL;DR:
## 1 INTRODUCTION
DLRM 对于大规模嵌入表不规则和稀疏的数据访问模式导致内存带宽利用率低和缓存中的数据局部性差。
一些先前的工作[15,33,37]通过直接使用近数据处理(NDP)解决方案来增加内存带宽来加速DLRM的推理。其他工作[2]尝试通过使用定制的软件管理缓存技术来提高数据局部性,例如,在缓存中保留频繁访问的嵌入向量。
然而,所有这些工作都有一些突出的弱点:例如,在 NDP 解决方案中,DRAM 或 SSD 内部架构的重大变化导致研发 (R&D) 成本高昂,并可能潜在增加制造成本。此外,仅使用 DRAM 来存储数百/数千 GB 的嵌入向量会导致较高的内存成本,因为 DRAM 芯片比 SSD 贵得多。虽然基于SSD的NDP平台内存成本较低,但有限的I/O带宽和较低的计算能力导致推理延迟较高。此外,当前NDP加 ...