CXL UIO Direct P2P学习

前言:

在CXL协议中,UIO(Unordered Input/Output) 是一种支持设备间直接通信(Peer-to-Peer, P2P)的机制,旨在绕过主机CPU或内存的干预,降低延迟并提升效率。以下是UIO的核心概念及UIO Direct P2P 的详细解析:

1. UIO(Unordered Input/Output)的核心定义

● 目标场景:允许CXL设备(如加速器、内存扩展设备)直接访问其他设备的HDM(Host-Managed Device Memory)或主机内存,无需通过主机CPU中转。
● 关键能力:
○ HDM访问:通过UIO路径直接读写远端设备的HDM。
○ 路由机制:依赖CXL交换机和主机桥(Host Bridge)的路由能力。
○ 交织(Interleave)支持:支持跨多个HDM设备的交织内存访问。

2. UIO Direct P2P的机制

(1) 硬件支持

● 设备能力声明:
○ CXL.mem设备通过HDM Decoder Capability寄存器的UIO Capable位声明支持UIO请求(见CXL规范8.2.4.20.1)如下图所示。
在这里插入图片描述


○ CXL交换机和主机桥需支持UIO路径的路由,并在其HDM解码器中声明该能力。
● 路由规则:
○ 同虚拟层级(VH):UIO请求可在同一虚拟层级(Virtual Hierarchy)内直接路由到目标HDM。
○ 跨层级/根端口:需通过主机桥路由到其他根端口下的HDM或主机内存。

(2) 交织集(Interleave Set)限制

● 合法交织方式:
○ UIO Direct P2P仅支持1/2/4/8/16路交织的HDM集。
○ 禁止的交织方式:3/6/12路交织的HDM集不能作为UIO目标。
● 地址分配约束:
○ HDM地址必须从CFMWS(CXL Fixed Memory Window Structure) 中分配,且使用标准模运算交织算法(Interleave Arithmetic = Standard Modulo)。

(3) 软件配置流程

1. 路径验证:

○ 软件需检查从UIO请求者到目标HDM路径上的所有设备(交换机、主机桥)是否支持UIO。

2. 解码器配置:

○ 在交换机和主机桥的HDM解码器中设置UIO Capable位。
○ 配置交织参数(UIG、UIW、ISP字段),确保交换机/主机桥能正确解析UIO目标地址。

3. 安全与隔离:

○ UIO路径不依赖Selective IDE Streams保护,需通过其他机制(如PID隔离)确保安全性。

3. UIO Direct P2P的示例(图9-25解析)

在这里插入图片描述

● 场景描述:
○ 4个CXL.mem设备组成3个独立的交织集。
○ UIO请求者(如GPU)直接访问不同交织集的HDM:
■ UIO Target 1 & 2:2路交织集,通过Switch直接路由。
■ UIO Target 3 & 4:需通过主机桥路由到主机内存或其他根端口下的HDM。
● 优势:
○ 绕过主机CPU,减少访问延迟。
○ 支持高效的交织内存访问(如大块数据并行读写)。

4. UIO Direct P2P的技术约束

● 地址映射限制:
○ 目标HDM地址必须在CFMWS窗口内,且使用标准模运算交织。
● 安全性缺失:
○ UIO流量不受Selective IDE Streams保护,需依赖其他机制(如访问权限控制)。
● 配置复杂性:
○ 软件需精确配置路径上的所有交换机和主机桥,确保交织参数一致性。

5. UIO vs 传统P2P(如PCIe)

在这里插入图片描述

6. 应用场景

● AI/GPU计算:GPU直接访问远端内存池(HDM),避免主机内存带宽瓶颈。
● 内存池化:多个主机通过UIO共享分布式HDM,实现低延迟内存扩展。
● 高性能存储:存储加速器直接访问其他设备的内存,加速数据预处理。

总结

CXL UIO Direct P2P通过硬件级路由和交织内存支持,为设备间直接通信提供了高效、低延迟的解决方案。其核心价值在于绕过主机干预,充分利用CXL协议的缓存一致性和内存语义,适用于算力密集型和数据密集型场景。

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

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

相关文章

口腔种植全流程AI导航系统及辅助诊疗与耗材智能化编程分析

一、系统架构与编程框架设计 口腔种植全流程人工智能导航系统的开发是一项高度复杂的多学科融合工程,其核心架构需在医学精准性、工程实时性与临床实用性之间实现平衡。系统设计以模块化分层架构为基础,结合高实时性数据流与多模态协同控制理念,覆盖从数据采集、智能决策到…

李宏毅机器学习笔记(1)—机器学习基本概念+深度学习基本概念

机器学习基本概念 1、获取模型 步骤 1.1、假定未知函数 带未知参数的函数 1.2、定义损失函数 真实值:label MAE MSE 几率分布,cross-entropy? 1.3、优化 单独考虑一个参数 让损失函数最小,找导数为零的点 单独考虑w,w…

专注自习室:番茄工作法实践

专注自习室:番茄工作法实践 我需要一个任务管理工具,但在网上找了很多都找不到合适的工具。市面上的大多数产品过于强调任务完成性,给我带来了很强的心理压力,这种压力最终反而降低了我的工作效率。于是我决定自己动手&#xff0…

【银河麒麟高级服务器操作系统 】虚拟机运行数据库存储异常现象分析及处理全流程

更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…

阿里云数据学习20250327

课堂链接:阿里云培训中心 (aliyun.com) 一、课堂问题 (一)课时3 1.支持字符集的含义是什么

使用QuickReporter将多张图片插入在word多行的表格中

之前有一位QuickReporter的用户提到过一个需求。他有大量的图片需要插入在word里面,他的想法是将图片放在一个文件夹内,按编号1,2,3,...编号,然后自动将这些图片从前到后插入到表格中。 这次偶然发现了该需求是可以实现的,且在当…

【大模型】激活函数之SwiGLU详解

文章目录 1. Swish基本定义主要特点代码实现 2. GLU (Gated Linear Unit)基本定义主要特点代码实现 3. SwiGLU基本定义主要特点代码实现 参考资料 SWiGLU是大模型常用的激活函数,是2020年谷歌提出的激活函数,它结合了Swish和GLU两者的特点。SwiGLU激活函…

vs2017开启性能探测器失败

开启性能探测器失败 错误: 无法启用性能探测器服务没有及时响应启动或控制请求。 (HRESULT: 0xe1110002) Microsoft.DiagnosticsHub.Diagnostics.CollectionStartFailedHubException”的异常。 各种原因排查: 1.管理员启动 2.开启各种诊断服务&…

FPGA——分秒计数器设计(DE2-115开发板)

一、项目创建 1.创建工程 点击File->New Project Wizard...或者直接在页面处点击 在第一行选择文件存放地点,第二行为项目名称,第三行为顶级设计实体名称 (下面的步骤可以暂时不做直接点Finish,因为是先写代码先把它跑出来暂…

香蕉成熟度检测和识别1:香蕉成熟度数据集说明(含下载链接)

一. 前言 本篇博客是《香蕉成熟度检测和识别》系列文章之《香蕉成熟度数据集说明(含下载链接)》,网上有很多香蕉成熟度数据集的数据,百度一下,一搜一大堆,但质量参差不齐,很多不能用,即使一个一个的看也会…

⑦(ACG-网络配置)

网络配置是指对计算机网络的各种参数进行设置和调整,以实现网络正常运行和高效通信。网络配置包括多方面的内容,常见的配置包括: 1. IP地址设置:IP地址是设备在网络中的身份标识,设置IP地址是网络配置的基础&#xff…

DeepSeek反作弊技术方案全解析:AI如何重构数字信任体系

一、技术原理:构建智能防御矩阵 1.1 多维度行为分析引擎 DeepSeek 反作弊技术的基石是多维度行为分析引擎,其借助深度学习算法,对用户行为轨迹展开毫秒级的细致剖析。这一引擎能够构建起涵盖操作频率、设备指纹、网络环境等多达 128 个特征维度的精准行为画像。以教育场景为…

盈亏平衡分析

盈亏平衡分析是一种重要的管理分析方法,广泛应用于企业的成本控制、生产决策、定价策略等方面,以下是对它的详细阐述: 一、基本概念 定义:盈亏平衡分析是通过研究企业在一定时期内的成本、收入与利润之间的关系,确定…

Vue2 脚手架 创建工程 测试程序

Vue2 脚手架 创建工程 测试程序 创建一个 目录 H:\g_web_vue\test 打开 vscode H:\g_web_vue\test 新建文件夹 vue2-demo cd .\vue2-demo vue create demo1 键盘 向下箭头 按键,选中 Vue2, 然后 回车 cd demo1 npm run serve http://localhost:808…

Yolo_v8的安装测试

前言 如何安装Python版本的Yolo,有一段时间不用了,Yolo的版本也在不断地发展,所以重新安装了运行了一下,记录了下来,供参考。 一、搭建环境 1.1、创建Pycharm工程 首先创建好一个空白的工程,如下图&…

IP协议的介绍

网络层的主要功能是在复杂的网络环境中确定一个合适的路径.网络层的协议主要是IP协议.IP协议头格式如下: 1.4位版本号:指定IP协议的版本,常用的是IPV4,对于IPV4来说,这里的值就是4. 2.4位头部长度,单位也是4个字节,4bit表示的最大数字是15,因此IP头部的最大长度就是60字节 3.…

Linux环境上传本地文件安装mysql

windows下载本地文件包,找到文件所在目录 scp 文件名 root192.168.xx.xx:/opt输入ssh密码,成功上传到服务器! //docker拉取镜像 cd /opt && docker load -i 文件名docker run -it -d --restartalways --namemysql5 -p 3106:3306 -v …

Java操作RabbitMQ

文章目录 Spring集成RabbitMQ1. AMQP&SpringAMQP2. SpringBoot集成RabbitMQ3. 模型work模型 4.交换机Fanout交换机Direct交换机Topic交换机 5.声明式队列和交换机基于API声明基于注解声明 6.消息转换器 Spring集成RabbitMQ 1. AMQP&SpringAMQP AMQP(高级消…

MySQL的多表查询

我们之前在讲解SQL语句的时候,讲解了DQL语句,也就是数据查询语句,但是之前讲解的查询都是单表查询,而本章节我们要学习的则是多表查询操作,主要从以下几个方面进行讲解。 5.1 多表关系 项目开发中,在进行…

微软Copilot与向量数据库:智能化办公的技术架构与实现路径

作为大禹智库的向量数据库高级研究员王帅旭,我在向量数据库和AI应用领域深耕30余年,亲历了向量数据库从学术概念到产业核心基础设施的演进历程。今天,我将从专业视角剖析微软Copilot背后的向量数据库技术支撑,并分享如何利用Mlivus Cloud等现代向量数据库构建类似的智能办公…