Ascend Communication Axes
为什么不能逐层改名
《Ascend Communication Stack》中的总图依次回答五个问题:程序选择什么通信语义,Runtime 如何建立地址和资源,谁提交任务,谁搬运数据,以及字节最终经过哪种互联。
观察这张图时,关键不是数方框,而是看每个方框回答的动词:选择、建立、提交、搬运、承载。这些动作横跨软件 API、Runtime、驱动、硬件引擎和互联协议。与之不同,OSI 七层模型划分的是应用、表示、会话、传输、网络、数据链路和物理等协议功能;RFC 1122中的 TCP/IP 模型则使用应用、传输、Internet 和 Link 四层。
所以,更准确的称呼是五个责任轴或执行阶段,而不是另一套网络五层。若强行把第 1~5 轴改名为应用层、传输层、网络层、数据链路层和物理层,第 2~4 轴的 Runtime 与硬件执行过程就会被错误塞进并不存在的协议层。
先对齐三种经典模型
这里所说的“五层模型”采用常见的教学划分:应用、传输、网络、数据链路、物理。它把 OSI 顶部三层合入应用层,同时保留物理层;TCP/IP 四层再把数据链路与物理合入网络接入层。
| OSI 七层 | 教学五层 | TCP/IP 四层 |
|---|---|---|
| L7 应用、L6 表示、L5 会话 | 应用层 | 应用层 |
| L4 传输 | 传输层 | 传输层 |
| L3 网络 | 网络层 | Internet 层 |
| L2 数据链路 | 数据链路层 | 网络接入层 |
| L1 物理 | 物理层 | 网络接入层 |
这张表只解决三种经典网络模型之间的换算。接下来才能把昇腾五轴作为另一种分类放进来。
五轴怎样近似映射
| 昇腾通信轴 | 实际回答的问题 | OSI 七层中的近似位置 | 教学五层 / TCP/IP 四层 |
|---|---|---|---|
| 1 语义与产品库 | 程序要完成 Collective、单边传输还是 RMA | 主要接近 L7;部分库也吸收 L5/L6 职责 | 应用层 / 应用层 |
| 2 地址、内存与资源 | 哪些地址可以访问,Endpoint、Channel、Team、MR 和映射如何建立 | 无严格对应;部分行为像会话和传输控制面 | 应用与传输之间的 Runtime,无独立协议层 |
| 3 提交者 | 由 Host、AICPU 还是 AIV 生成并提交 WQE | 无协议层对应;接近传输或链路的本地实现控制路径 | 传输或网络接入层的实现细节 |
| 4 搬运与执行机制 | 由 MTE、SDMA、RDMA、UDMA、ACL Copy 或 LD/ST 搬运 payload | 取决于具体机制;可能横跨 L4~L1,本地复制也可能不进入网络 | 可能涉及传输、网络、链路和物理的实现 |
| 5 互联 | 字节经过 PCIe、NoC、HCCS、Ethernet、RoCE 还是 UB | 以 L1/L2 为基础,但 RoCEv2、UB 等会继续覆盖 L3/L4 | 以物理、链路或网络接入为基础,也可能包含网络与传输 |
这张映射里,第 2、3 轴故意保留了“无严格对应”。这是最重要的边界。
例如,第 2 轴中的“地址”通常是 Device VA、VMM 映射、MR 与 key,不是 IP 地址,不能因为都叫地址就映射到 OSI L3。第 3 轴中的 AIV 直驱也只改变谁生成和提交通信任务;它没有因此变成一种传输协议。
第 4、5 轴则有另一种容易混淆的关系:前者回答谁搬,后者回答从哪里走。SDMA over HCCS、RDMA over RoCE 和 UDMA over UB 都可以同时拥有一个搬运引擎和一条互联路径,二者不是上下互斥的协议层。
为什么 RoCE 会跨层
第 5 轴最不能被简单等同为物理层,因为其中既放了物理互联,也放了多层协议:
- PCIe、片内 NoC、HCCS、SIO最接近 OSI L1/L2,但它们不是 TCP/IP 协议。
- Ethernet的 MAC 属于 L2,下面的电气或光信号属于 L1。
- RoCE v1把 InfiniBand/RDMA transport 承载在 Ethernet L2 上,没有 IP 网络层。
- RoCE v2使用 UDP/IP/Ethernet,因而实际覆盖 L4、L3、L2 和下面的 L1。IBTA 对 RoCEv2 的说明也强调了它从单一 L2 网络扩展到可跨 L3 路由。
- UnifiedBus自己就包含 Physical、Data Link、Network、Transport、Transaction 和 Function 等层次,因此也不能整体塞进 OSI 物理层。
沿一条路径读图
以 HCCL 通过 RoCEv2 完成一次通信为例,五轴与网络协议层可以同时存在:
1 | HCCL Collective 语义 昇腾第 1 轴,约等于应用层 |
这条路径给出了一种更稳妥的读图方法:先问对象属于语义、资源、提交、引擎还是互联,再对其中真正的线协议讨论 OSI 或 TCP/IP 层次。不要反过来拿五个网络层名称套五个方框。
最终可以压缩成三个判断:
- 第 1 轴最接近应用层,但库内部仍可能包含会话、表示或传输相关职责。
- 第 2、3 轴没有经典网络层对应物,它们主要揭示了网络模型通常隐藏的 Runtime 和控制路径。
- 第 4、5 轴会跨越多个网络层;具体落在哪层,必须拆到 RDMA、UDP、IP、Ethernet、HCCS 或 UB 等具体对象判断。
回到最初的问题,答案不是“昇腾五层分别对应哪五层”,而是:五轴先解释一次通信怎样实现,OSI/TCP/IP 再解释其中的线协议怎样分层。两套模型正交使用,信息才不会被压扁。