当前位置: 首页 > news >正文

#PCIE#《PCIE P2P 传输那点事儿》

1. PCIe P2P是什么

PCIe的peer to peer简称P2P,即点对点传输,用于一个EP设备访问另一个EP设备,而不需要使用主机RAM作为临时存储。

PCIe P2P特性带来的好处有:可以极大提升数据的传输效率,减少CPU的负载,并在特定场景下优化系统性能。

2. PCIe P2P传输原理

一般来说,PCIe P2P传输可以分为以下三大类。

第一种是:只经过Switch的P2P传输,EP1 → Switch → EP2。如下图所示。

如果EP端的ATC(Address Translation Cache)声称其发出的访问请求是经过转换后的地址,且该地址刚好落在PCIe Switch的BAR范围内,则该请求不会到达RC,而是被Switch路由到该地址所对应的EP。也就是说,该访问请求绕过了IOMMU的隔离,进行了P2P传输。

需要注意的是,这种只经过Switch的P2P传输需要关闭PCIe Switch的ACS(Access Control Service)的p2p重定向(redirect)功能,否则redirect会将请求发给RC。

简单说一下PCIe的ACS capability。ACS提供了一种机制,能够决定一个TLP被正常路由、阻塞或者redirect。通过在Switch上开启ACS,可以禁止P2P发送,强迫Switch将所有地址的访问请求发送到RC,从而避开P2P访问中的风险。

第二种是:经过RC的P2P传输,EP1 → RC → EP2。这个过程可能也会经过Switch。典型过程如下图所示。

图中的P2P传输经过了3个Switch和1个RC,绿色框为MRd事务,红色框为CplD事务。

第三种是经过片上网络NoC的P2P传输,EP1 → RC → NoC → RC → EP2。

这个过程可能也会经过Switch。当两个EP设备连接在芯片的不同位置或者不同die上时,P2P传输需要经过NoC。

以ARM CMN片上网络为例,其经过CMN路由的P2P路径为:EP1 → RC → RND → XP → HNP → RC → EP2。这种P2P传输需要依赖NoC的实现来完成。

3. PCIe P2P应用场景

PCIe P2P的一个典型应用场景就是GPUDirect。GPU Direct是 NVIDIA 开发的一项技术,可实现GPU与其他设备(例如NIC网卡、存储设备)之间的直接通信和数据传输,而不涉及CPU。GPUDirect主要包括GPUDirect P2P、GPUDirect RDMA、GPUDirect Storage等。

GPUDirect P2P解决了节点内的GPU与GPU通信问题,两个GPU可以通过PCIe P2P直接进行数据搬移,避免了主机内存和CPU的参与,如下图所示。

GPUDirect RDMA使得GPU和网卡可以直接通过PCIe进行数据交互,也避免了跨节点通信过程中内存和CPU的参与。

GPUDirect RDMA结合了GPU加速计算和RDMA(Remote Direct Memory Access)技术,实现了在GPU和RDMA网络设备之间直接进行数据传输和通信。它允许GPU直接访问RDMA网络设备中的数据,无需通过主机内存或CPU。

GPUDirect Storage允许存储设备和GPU之间进行直接数据传输,绕过了CPU,减少数据传输的延迟和CPU开销。

通过GPUDirect Storage,GPU可以直接从存储设备(如固态硬盘SSD或NVMe驱动器)访问数据,而无需将数据先复制到CPU的内存中。这种直接访问能够实现更快的数据传输速度,并高效利用GPU资源。

此外,推荐一套学习PCIe协议的培训视频,里面对PCIe协议的总体架构和原理都做了非常详细的介绍。

http://www.dtcms.com/a/532172.html

相关文章:

  • HTTP | 跨域 - 知识点总结
  • 解决[PM2][ERROR] Script not found: D:\projects\xxx\start
  • 开发一款连接带有GEM/SECS协议软件的设备(一)
  • 大连微信网站开发app软件开发培训班
  • 同仁微网站建设工作室微信辅助网站制作
  • FFmpeg 基本数据结构 AVPacket分析
  • Linux at命令详解:轻松调度延迟任务
  • 线程停止、休眠、礼让、强制执行、观测线程状态
  • 复盘|嵌入式Linux驱动开发之I2C子系统
  • AI Agent常用的RAG有哪些种,分别适用于什么情况
  • 对中兴光猫zteOnu.exe项目的简单分析(提供下载地址)
  • 有没有专门做中考卷子的网站网站建设培训要多久
  • 做网站图片用什么格式最好个人网站备案能做宣传用么
  • JAVA1026 方法;类:抽象类、抽象类继承;接口、接口继承 Linux:Mysql
  • 密码学系列 - 零知识证明(ZKP) - NTT与MSM的总结
  • 《解决界面交互痛点:WaterFlow 瀑布流、双层嵌套滚动、键盘避让与跨 Ability 跳转实践》
  • 网页设计建立站点步骤做网站的广告词
  • Spring Boot3零基础教程,生命周期启动加载机制,笔记64
  • StarGantt在线甘特图最新版本评测
  • 43.渗透-Kali Linux-工具-Ettercap(dns欺骗)
  • 详解C++中的迭代器
  • 区块链论文速读 CCF A--USENIX Security 2025(2)
  • 基于区块链的新能源管理平台的设计与实现(源码+文档)
  • 2025年10月26日 AI大事件
  • 企业建站个人建站源码沧州专业网站建设公司
  • 基于springboot的电影评论网站系统设计与实现
  • 1.2.1.3 大数据方法论与实践指南-一种跨团队业务结算方式探索
  • 西安地产网站建设百度手机管家
  • NoSQL 简介
  • C++ 分治 快速排序优化 三指针快排 力扣 面试题 17.14. 最小K个数 题解 每日一题