发布时间:2026/8/16 16:47:25
[AI][昇腾950]AIV 直驱 URMA(UDMA)与 RoCE 对比学习 基于 CANN / ACLSHMEMcann/shmem开源实现梳理。核心对照URMA / UDMAAscend950 上 AIV 直驱 UB灵衢远程内存访问RoCE / RDMAAIV 直驱 RoCEv2 QP跨节点以太网 RDMA本文侧重“控制面谁建链、数据面 AIV 怎么敲铃、语义与选型差异”。0. 一分钟结论问题答案AIV 如何直驱 URMAHost 用 HCOMM 建channel[UB endpoint jettyJFS/JFC]把 SQ/CQ/DB/token/EID 表拷到 DeviceAIV 在 kernel 内组装SQESGE 敲SW doorbell再 pollJFC CQE与 RoCE 的本质差别同一套“AIV 组 WQE → 敲 DB → 轮询 CQE”范式但底层是两套协议栈与对象模型URMA/UBEID、jetty、token vs RoCEv2QP、GID、lkey/rkey何时用谁机内 / UB 域优先 UDMA跨节点以太网走 RoCE高阶 RMA 优先级SDMA → UDMA → MTE → RoCE术语对应缩写含义在 shmem 中的角色URMAUnified Remote Memory AccessUB 上的远程内存访问协议/语义UDMAUnified Direct Memory AccessSHMEM aclshmemx_udma_*实现上消费 URMA jettyRoCERDMA over Converged EthernetRDMA 引擎使用的网络协议aclshmemx_roce_*Jetty / JFS / JFCURMA 队列对象JFS发送 jettySQJFC完成 jettyCQQPQueue PairRoCE 侧 SQ/RQ/SCQ/RCQ 配对AIVVector Core数据面真正写 WQE、敲 DB、poll CQE 的执行核Channelchannel非常重要的概念表达一对endpoint 的连接携带数据从控制面数据面1. 背景为什么是“AIV 直驱”传统路径Host / AICPU 组 WQE、敲 doorbellAIV 只能等结果。ACLSHMEM 把数据面下沉到 AIV后续设计把通信部分功能下沉到asc-comm仓实现通信的统一管理Host 只做控制面(Channel)建链、注册 MR、把队列上下文发布到 Device HBM。AIV 在 kernel 内直接从(Channel) 获取读队列上下文SQ/CQ/DB、远端寻址信息组装 WQE 到 SQ ring写 doorbellpoll CQE 完成 quietURMA 与 RoCE共享这一范式差别在 Host 建的是什么对象、WQE 字段语义、以及网络/总线路径。2. 整体架构对照2.1 AIV 直驱 URMAUDMA┌──────────────── Host / InitUdmaTransportManager──────────────┐ │ 1) HcommEndpointCreate(COMM_PROTOCOL_UBC_CTP, EID) │ │ 2) HcommMemReg对称堆 → tokenId / tokenValue │ │ 3) HcommChannelCreate(..., COMM_ENGINE_AIV, ...) │ │ → 分配 jettyubJfs(SQDB) / ubJfc(CQDB) │ │ 4) D2H 读 ChannelEntity → FillWqCtx / FillCqCtx / FillMemInfo │ │ 5) H2D 发布 aclshmemi_aiv_udma_info_tSQ/CQ/mem/EID/AMO │ └───────────────────────────────┬──────────────────────────────────┘ │ Device VA: jetty rings SW DB ▼ ┌──────────────── URMA / UB 硬件 ──────────────────────────────────┐ │ JFS: SQ ring SQ DB JFC: CQ ring CQ DB │ │ 远端段tokenId / tokenValue / remote EID │ └───────────────────────────────▲──────────────────────────────────┘ │ AIV: fill SQESGE → st_dev(SQ DB) ┌──────────────── AIV Kernel数据面─────────────────────────────┐ │ aclshmemx_udma_{put,get}_nbi → aclshmemi_udma_post_send[_mte3] │ │ aclshmemx_udma_quiet → poll JFC CQE → st_dev(CQ DB) │ └──────────────────────────────────────────────────────────────────┘2.2 AIV 直驱 RoCERDMA┌──────────────── Host / Init ─────────────────────────────────────┐ │ 910B/C: RdmaTransportManager HCCP RA / RaAiQpCreate │ │ 950: RdmaTransportManagerV2 HCOMM COMM_PROTOCOL_ROCE │ │ │ │ 1) 建 endpoint / RA 设备 │ │ 2) 注册 MR → lkey / rkey │ │ 3) 建 RC QPCONN_QP_AI_CORE / COMM_ENGINE_AIV │ │ 4) 发布 AiQpRMAQueueInfo ↔ aclshmemi_rdma_info 到 Device │ └───────────────────────────────┬──────────────────────────────────┘ │ Device VA: SQ/CQ HW/SW DB ▼ ┌──────────────── RoCEv2 NIC / 网卡数据面 ─────────────────────────┐ │ RC QP: SQ SCQAIV 驱动RQ/RCQ 按后端保留 │ │ 寻址remote VA rkey路径GID / sgid_index / TC / SL │ └───────────────────────────────▲──────────────────────────────────┘ │ AIV: fill WQE → ring SQ DB ┌──────────────── AIV Kernel数据面─────────────────────────────┐ │ aclshmemx_roce_{put,get}_nbi → post_sendBACKEND, WRITE/READ │ │ aclshmemx_roce_quiet → poll SCQ必要时敲 CQ DB │ │ Backend 编译期选择IN_DIE / XSCALE / HNS_1825 │ └──────────────────────────────────────────────────────────────────┘2.3 侧车对照同一范式不同对象Host 控制面 Device 数据面 底层 UDMA HCOMM UBC_CTP Jetty SQE/SGE SW DB JFC CQE URMA over UB RoCE HCCP/HCOMM RoCE QP WQE HW/SW DB SCQ CQE RoCEv2 Ethernet3. AIV 直驱 URMA 详细流程3.1 Host 控制面一次性步骤动作说明1OpenDevice/CreateEndpointCOMM_PROTOCOL_UBC_CTP按 Clos/EID 建本地 endpoint2RegisterMemoryRegion对每个 endpointHcommMemReg得到 token 保护信息3Connect/AsyncConnectallgatherEndpointDesc按 peer或 relay slot建 channel4HcommChannelCreate(..., COMM_ENGINE_AIV, ...)明确把数据面引擎交给 AIVHCOMM 内部分配 jetty5WaitHcommChannelReady等 channel READY6BuildUdmaInfo从SqContext.ubJfs/CqContext.ubJfc/ remote MR 填设备可见表7H2D 发布udmaInfoAddress→ device metakernel 经aclshmemi_get_udma_info_address取用Jetty 创建发生在HCOMM 内部SHMEM 读回的关键字段来源填到含义ubJfs.jfsIDwq.wqn发送 jetty 号ubJfs.sqVawq.buf_addrSQ ring 基址ubJfs.wqeSizewq.wqe_size单 WQE 字节数ubJfs.dbVawq.db_addrSW doorbellVAubJfc.jfcIDcq.cqn完成 jetty 号ubJfc.scqVacq.buf_addrCQ ring 基址ubJfc.dbVacq.db_addrCQ SW doorbellremotetokenId/Value EIDubmem_infoSQE 远端寻址与鉴权db_mode固定为SW_DBAIV 用st_dev直接写 DB 内存/寄存器镜像。3.2 Device 数据面aclshmemi_udma_post_send入口aclshmemx_udma_put/get_nbi→aclshmem_ptr取远端 VA →post_send。步骤算 slotdirectslot perelayslot pe * rank_count relay_pe取 WQ 上下文sq_ptr[slot][qp_idx]→head / buf_addr / wqe_size / db_addr / wqe_cntSQ 将满则先 poll CQ防 ring 覆盖读远端ubmem_infotoken、tid、tpn、eid_addr、rmt_jetty_type1组装 WQEPIPE_S标量直接写 SQ GM dcci_cachelinesPIPE_MTE3公开 API 默认在 UB scratch 组 SQESGE再DataCopyPad到 SQ推进 PI / 敲 SQ DBst_dev(cur_head, db_addr)更新head、wqe_cnt返回NBI完成靠aclshmemx_udma_quiet(pe)put/get 差异主要是 opcodeWRITEvsREAD远端 VA / 本地 VA 角色对调。3.3 Quiet / CQEaclshmemx_udma_quiet(pe)对目标 slotrelay 时对所有相关 slotpoll SCQ直到tail wqe_cnt等待 CQEowner bit翻转检查status/substatus 0st_dev(cur_tail 0xFFFFFF, cq_db)—— 注释明确reference URMA同步写回 WQtail语义*_nbi只保证 WQE 已提交读 get 目的地或复用 put 源缓冲前必须 quiet或 signal 协议。3.4 UDMA SQE 关键字段学习用aclshmemi_sqe_ctx_t再加aclshmemi_sge_ctx_t数据搬路径约 64B 一块 WQEBB字段来源 / 填法含义token_en/rmt_token_valueremote MR tokenUB 段访问鉴权rmt_jetty_type固定1peer jetty远端对象类型opcodeWRITE / READ / WRITE_WITH_NOTIFY / FAA / CAS…操作类型tp_idubJfs.tpID传输层实例rmt_jetty_or_seg_idtokenIdtid远端段/jetty 标识rmt_eid_{l,h}16B URMA EID远端 endpoint 身份rmt_addr_*aclshmem_ptr结果远端 VASGEva/len/token_id本地缓冲本端 payload或 AMO scratch4. RoCE 路径要点对照学习4.1 Host 控制面差异项UDMA / URMARoCE / RDMA传输管理器UdmaTransportManagerv1RdmaTransportManager950 上 v2RdmaTransportManagerV2控制面 APIHCOMM only910HCCP RARaAiQpCreate等950HCOMM协议COMM_PROTOCOL_UBC_CTPCOMM_PROTOCOL_ROCE/ RoCEv2队列对象JettyJFS/JFCRCQPSQ/RQ/SCQ/RCQ寻址身份EID16BGID / sgid_index IPV2 endpoint内存钥匙tokenId / tokenValuelkey / rkeyAIV 标记COMM_ENGINE_AIV同COMM_ENGINE_AIV或CONN_QP_AI_COREcq_cstm1AIV poll CQ4.2 Device 数据面差异项UDMARoCEAPIaclshmemx_udma_*aclshmemx_roce_*WQE 布局URMA SQESGEjetty/EID/token后端相关IN_DIE 32B16BXSCALE 128BHNS_1825 64B BEDoorbell统一 SW_DBst_dev(PI)IN_DIE/XSCALE/HNS 各有 HW/SW/双写模型常打包 QPN、PI、SL/COS完成队列JFC CQEis_jetty等SCQ CQEowner / wqe_id / statusBackend单套 UDMA 实现编译期三后端IN_DIE910、XSCALE/HNS_1825950平台仅 Ascend950910B/C Ascend950原子内建 FAA/CAS/…float add 走 reduce-write主要XSCALE支持IN_DIE/HNS 基本不支持单次上限put 请求 ≤256MB受 WQE/后端与 MR 约束实现按消息长度切分/限流4.3 RoCE WQE/DB 直觉与 UDMA 对照IN_DIE910WQE 像经典 HNS RoCEv2——ctrlopcode/owner/rkey/remote VA SGESQ DB 打包 QPN HNS_ROCE_V2_SQ_DB PI SL。XSCALE950更大 WQE128BDiamond send doorbellqp_idnext_pid支持 batch defer/submit 与 atomics。HNS_182595064B WQEBB、大端字段SW PI 镜像 HW DB含sgid_index。共同点都是 AIV 写 ring → 刷可见性 → 敲铃 → poll CQ。不同点URMA jetty PI还是RoCE QPN/PI/SL。5. 对比总表建议背下来维度AIV→URMAUDMAAIV→RoCERDMA互联灵衢UB以太网 RoCEv2SHMEM 引擎名UDMARDMA / ROCEHost 协议枚举UBC_CTPROCE队列抽象JettyJFS/JFCQP远端身份EIDGID / IP内存保护tokenlkey/rkeyDB 模型SW_DB 为主后端相关 HW/SW典型场景950 节点内/UB 域低时延 RMA跨节点、无 UB 或需以太网高阶路由位ACLSHMEM_TRANSPORT_UDMAACLSHMEM_TRANSPORT_ROCEInit 开关ACLSHMEM_DATA_OP_UDMAACLSHMEM_DATA_OP_ROCE与 HCCP 关系不用 HCCP 数据面910 控制面核心是 HCCP950 迁到 HCOMM高阶aclshmem_get/put路由同 PE 多引擎时SDMA → UDMA → MTE → RoCE即能走机内 SDMA/UB UDMA 时不会落到 RoCE。6. 学习路径如何读代码建议按“先 Host 建链再 Device 敲铃最后对照字段”阅读Host 控制面从UdmaTransportManager/RdmaTransportManager开始跟踪HcommChannelCreate或RaAiQpCreate流程理解如何为 AIV 分配队列对象jetty/QP并发布上下文到设备。Device 数据面看aclshmemi_udma_post_send或aclshmemi_rdma_post_send重点关注如何从udma_info/rdma_info读取队列上下文如何组装 WQE/SQE 并填充关键字段token/EID 或 rkey/GID如何敲 doorbellst_dev或ring_sq_doorbell对照字段对比 UDMA 与 RoCE 的 WQE 布局、doorbell 模型、完成队列处理理解协议差异如何体现在数据结构中。调试技巧关注db_mode、owner bit、wqe_cnt等状态字段以及 quiet 轮询逻辑。7. 参考仓库https://gitcode.com/cann/shmemIssueSHMEM 支持 AIV 直驱 UDMA控制面 jetty/HCCP 封装 数据面 put/get组 WQE、敲 DB、轮询 CQE项目术语docs/glossary.mdURMA / UDMA / RoCE / AIVDevice APIdocs/api/device_api.rstshmem_device_udma.h/shmem_device_rdma.h构建Ascend950 需-soc_type Ascend950RoCE 另需-enable_rdma950 指定-rdma_backend XSCALE|...

相关新闻

2026/8/16 16:42:25

AnimateLCM-SVD高清动画生成指南:4步推理产出25帧视频

AnimateLCM-SVD高清动画生成指南:4步推理产出25帧视频 【免费下载链接】AnimateLCM [SIGGRAPH ASIA 2024 TCS] AnimateLCM: Computation-Efficient Personalized Style Video Generation without Personalized Video Data 项目地址: https://gitcode.com/gh_mirro…

2026/8/16 21:02:40

银河麒麟V10 SP1系统密码重置:GRUB单用户模式实战指南

1. 问题场景与核心思路遇到银河麒麟V10 SP1系统登录密码忘记的情况,无论是个人工作站还是运维人员管理的服务器,都是一个让人头疼但必须解决的问题。这不像Windows PE那样有广为人知的工具盘,也不像某些Linux发行版有现成的“单用户模式”一键…

2026/8/16 21:02:40

OpenClaw智能体框架本地部署与QClaw实战指南

1. 从“小龙虾”到“智能体”:OpenClaw生态初印象 最近在折腾本地AI智能体部署的时候,绕不开一个名字——OpenClaw。这名字挺有意思,直译是“开放的爪子”,但圈内人更爱叫它“小龙虾”。它不是什么新出的海鲜,而是鹅厂…

2026/8/16 21:02:40

基于OpenClaw框架为WorkBuddy集成X-Twitter自动化技能实战指南

1. 从WorkBuddy到X-Twitter Skill:一个自动化工作流的诞生 最近在折腾一个挺有意思的自动化场景:如何让我的工作助手WorkBuddy,能自动帮我处理X(原Twitter)上的信息。比如,自动关注特定领域的大V、定时发布…

2026/8/16 21:02:40

基于腾讯云Lighthouse的OpenClaw多实例分布式部署与架构实践

1. 项目概述:为什么要在云上搞分布式OpenClaw? 最近在折腾AI智能体,OpenClaw这个开源框架确实挺有意思,它把大模型、工具调用和记忆管理打包在一起,让你能快速搭建一个能“思考”和“行动”的AI助手。但玩到后面&#…

2026/8/16 21:02:40

银河麒麟V10 SP1密码重置:单用户模式与Live USB两种实战方案详解

1. 项目概述:当“门禁卡”丢失时在数字化办公与个人电脑使用中,操作系统登录密码就像是进入自家大门的唯一钥匙。对于部署了银河麒麟V10 SP1操作系统的用户而言,无论是企业运维人员、政府机关职员,还是追求国产化体验的技术爱好者…

2026/8/16 20:57:39

pgrust 兼容性完全指南:哪些 PostgreSQL 特性已完整支持?

pgrust 兼容性完全指南:哪些 PostgreSQL 特性已完整支持? 【免费下载链接】pgrust Postgres rewritten in Rust, now faster than Postgres and Clickhouse 项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust pgrust 兼容性是许多数据库开…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/16 16:53:03

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…