跳转至

1-AI Systems

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 产品已经交付同样数字。

vLLM KV Offloading and GDS

导言

我之前在 verl 里见过两种 vLLM offload 级别,后来又接触到 vLLM 的 KV offloading。再往 Mooncake 看,项目里似乎已经有 GDS。于是看到 vLLM Issue #48504 还要做 “GDS + KV offloading” 时,一个很自然的困惑出现了:这些机制是不是在重复做同一件事?

真正需要拆开的不是两个实现,而是三种不同的 offload 语义,以及两类不同的 GPU Direct。本文沿着实际数据路径,解释当前 vLLM 会自动做什么、Mooncake 怎样通过 Connector、Store 与 Transfer Engine 的解耦透明接入 GDS,以及 #48504 为什么仍然有独立价值。

io_uring Async I/O

导言

读到 Tutti 的 GPU io_uring 一节时,我几乎完全没看懂。SQ、CQ、IOCB、CUDA Event 和 Green Context 挤在一起,很难看出它们各自解决什么问题。

本文先用取餐叫号解释核心直觉,再用 Linux io_uring 的 SQ、CQ、SQE、CQE 和 SQPOLL 建立准确模型,最后把这些对象放回 Tutti:为什么队列能把发起请求等待结果拆成两个时间点,以及为什么还需要 CUDA Event、Green Context 和 slack-aware Scheduler 才能真正减少 GPU 停顿。

SHMEM Symmetric Memory

导言

我最初把 HCCL 理解成集合通信,把 HiXL 理解成单点通信。这个分法可以作为起点,却会让 SHMEM 无处安放:它既能一对一 Put/Get,也能做原子操作与同步,为什么还需要“对称内存”这套约束?

关键在于,HCCL、HiXL 和 SHMEM 并不只是在争夺同一种通信 API。HCCL 更接近“我要完成什么群体操作”,HiXL 更接近“我要把哪段数据传到哪里”,SHMEM 则把问题改写成“我要访问哪个 PE 上的哪个内存坐标”。它用跨 PE 的布局约束,换取设备侧可以低开销地定位和操作远端数据;但当各 PE 的容量需求严重不均时,这份约束也确实可能造成浪费。

Ascend Interconnect Evolution

导言

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

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

Ascend Communication Runtime Evolution

导言

在昇腾通信栈的第二轴中,HCOMM、SHMEM Runtime、IPC、CANN VMM 与 Fabric Memory 被放在同一个“资源、地址与运行时”区域。它们都在帮助程序访问另一进程、另一设备甚至另一节点的内存,因此很容易被理解成五套重复方案:既然目标相同,为什么不统一成一套 API?

这个问题真正触及的是系统抽象如何演进。五个概念共享“让数据可达”的目标,却分别承诺资源组织、PGAS 编程、进程共享、虚拟内存管理和内存池化;它们不是五代同类技术,而是从五个不同矛盾长出的责任边界。本文从第一性原理拆出这些不可互换的契约,再沿时间纵轴和能力横轴梳理其提出契机、公开时机、新仓库形成条件与未来收敛方向。

Ascend Communication API Evolution

导言

《Ascend Communication Stack》把 HCCL、HiXL、CANN SHMEM 和 Mooncake UBShmem 放在第一轴。既然它们最终都在昇腾设备之间搬数据,也会复用相似的 Runtime、内存和硬件资源,一个很自然的问题是:为什么没有统一成一个库?

关键不在名字,也不在 payload 最后走 HCCS、RoCE 还是 UB,而在调用者究竟声明了什么契约。HCCL 声明 collective,HiXL 声明一批 buffer transfer,CANN SHMEM 声明 PE 对对称对象的 RMA/AMO,Mooncake UBShmem 则服务项目自己的映射型 KV 快路。本文沿公开时间线还原四条路线的提出契机与设计转折,再横向判断哪些差异必须保留、哪些历史包袱可以收敛。研究截止日为 2026 年 8 月 26 日

Ascend Data Movement Evolution

导言

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

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

Ascend Communication Axes

导言

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

AI Chip System Barriers

导言

一场围绕 OpenAI Jalapeño 推理芯片的讨论提出了一个看似矛盾的问题:专用 AI 计算核心可能比顶级通用 CPU 更规则,为什么 AI 芯片仍然很难做?

两句话可以同时成立。矩阵乘加阵列的局部控制逻辑相对规则,但一款有竞争力的 AI 产品还要跨过微架构、RTL、验证、物理实现、先进封装、内存与互联、编译器、Kernel、运行时、模型适配和客户部署。真正的壁垒没有消失,而是从单个计算核心转移到了整条系统栈及其持续迭代能力。