URMA Mental Model

导言

我刚开始接触 URMA 时,最容易卡住的问题不是某个函数不会调用,而是概念没有连成一条线:WQE 和 Jetty SQ 是什么关系,Segment 为什么要注册和导入,urma_post_jetty_send_wr() 提交之后又去了哪里。本文只做一件事:沿着一条 WRITE 请求的生命周期,把这些名词放回它们各自的位置。

Read more

OpenURMA Unified Bus

导言

一次 64 B 远端读取,数据在链路上只需要约 200 ns,端到端却可能超过 2 μs;当 1024 个本地发起上下文连接 1024 个远端端点时,按 Queue Pair(QP)组织的连接状态又会膨胀到约 537 MB。OpenURMA 认为这不是某个 RDMA Kernel 写得不够快,而是 QP over PCIe 这一抽象同时制造了状态乘积和外围设备往返。

OpenURMA 是 Unified Bus(UB)传输层与事务层的 clean-room 开放实现。它用 Jetty / TP Channel 拆开应用状态与可靠传输状态,把 UB Controller 放到片上总线,并为短同步操作提供绕过 Work Queue 的 Load/Store 路径。本文沿这条依赖链解释方案,同时把 500 ns / 2186 ns 放回论文的模拟条件:这组结果证明新抽象值得继续做成硅,不等于 Ascend 950 或任意商用 UB 产品已经交付同样数字。

Read more

Ascend Interconnect Evolution

导言

在昇腾通信栈的第五轴中,PCIe、片内 NoC、HCCS、RoCE 与 UnifiedBus 被放在同一行。看到这些概念,一个很自然的疑问是:它们为什么没有统一?是不是每一种新互联,都是为了解决上一代的缺陷,并最终取代前者?

这个问题抓住了技术演进,却预设了一条并不存在的替换链。这些概念分别工作在芯片内部、服务器 I/O、节点内 Scale-Up 和集群 Scale-Out 等不同范围,提供的事务与内存语义也不相同。本文从无法绕开的物理约束出发,沿历史纵轴梳理它们出现的契机,再用同一组维度比较其设计取舍,最后说明:什么时候一种新思想只需要增加后端,什么时候它会形成新的编程契约和代码仓。

Read more

Ascend Data Movement Evolution

导言

在昇腾通信栈的第四轴里,ACL Copy、LD-ST、MTE、IPC、SDMA、RDMA 与 UDMA 被放在相邻位置。看到这么多搬运相关名词,一个很自然的判断是:它们大概是同一种能力的不同代际,后来者之所以出现,是因为前一代不够好。

这个判断抓住了技术演进的一部分,却把几类不同对象混在了一起。这些概念不是七代同类传输引擎,而是地址能力、操作表达和执行后端在不同距离、粒度与控制路径下的组合。本文从无法绕开的物理成本出发,再沿历史纵轴和技术横轴解释它们为何没有统一,以及什么时候一种新思想才真正值得形成新的代码仓。

Read more

Ascend Communication Axes

导言

昇腾通信栈总图从上到下列出了语义、资源、提交者、搬运引擎和互联五部分。看到五个编号,很自然会追问:它们是否正好对应 OSI 七层、互联网五层或 TCP/IP 四层?答案是否定的。经典网络模型按协议功能分层,这张图则按一次通信如何从程序意图落到字节搬运划分责任。本文把两套分类放到同一张坐标系中,说明哪些位置可以近似对应,哪些位置必须保留“无对应”的边界。

Read more

Ascend Communication Stack

导言

华为昇腾通信资料最容易制造一种错觉:DMA、HCCS、HCCL、SHMEM、Fabric Memory 和 AIV 直驱仿佛是一摞可以从上到下整齐堆叠的软件层。实际并非如此。这些词分别回答“谁组织通信、谁建立地址、谁提交任务、谁搬数据、数据走哪条物理链路、对端是否参与”中的不同问题。有些是库,有些是协议或硬件,有些只是数据路径属性;把它们画在同一层,关系一定会错。

本文把历史纵轴和技术横轴合并:先建立一张总地图,再逐个概念给出小白版与专业版解释,最后核对公开仓库的首次可见提交、立项目的、硬件范围、迁移和待废弃状态。研究截止日为 2026 年 8 月 26 日

Read more

UB-Mesh Architecture

导言

训练万亿参数模型时,几千甚至上万张 NPU/GPU 不是各算各的。每一步训练都会反复交换梯度、激活和专家 token,网络就像一座每秒要分拣海量包裹的城市:包裹搬得慢,昂贵的计算卡只能停下来等路。

UB-Mesh 的关键想法不是发明一条“无限快”的网线,而是承认通信具有局部性:把最频繁、最大量的通信放到近处的短链路,把较少的远程通信留给远层网络,再让路由、集合通信和容错都理解这张不对称的地图。

Read more

Memory Semantics vs RDMA

导言

MPI、RDMA 和内存语义都能搬运数据,但它们让应用表达的是不同对象:MPI Point-to-Point 表达 rank、tag 和消息,RDMA Verbs 表达 QP、WQE 和完成记录,内存语义则尽量让应用只表达 地址、长度、读写方向和数据依赖

后一种方式的收益不是“凭空消灭通信”,也不是“任何场景都比 RDMA 带宽高”。它真正改变的是通信契约:把外围队列事务下沉为更接近计算流水的地址访问与 tile 可见性,使 Scale-Up 域内的短操作、细粒度生产消费和异步流水更容易表达。

Read more