行业背景与核心矛盾 - 计算机体系结构长期存在总线与网络两种互联范式的根本性割裂,总线技术(如PCIe、NVLink)在紧耦合系统内提供纳秒级延迟和极高带宽,但扩展性受限;网络技术(如以太网、InfiniBand)为松耦合系统设计,具备超强扩展性但存在复杂协议栈和微秒级延迟的性能鸿沟[2] - 深度学习领域的Scaling Law(缩放定律)揭示模型性能随规模增大持续提升,使得传统单机8卡配置在千亿参数巨型模型面前不堪重负,推倒总线与网络之间的墙成为迫切需求[3] - 行业需要一种统一互联技术,既能提供总线级编程简易度和极致性能,又具备网络级超大规模扩展能力,以构建真正的"数据中心计算机"[3] 架构范式革命 - 传统主从架构以CPU为主设备控制所有I/O操作,随着设备数量和速度增加,CPU成为系统瓶颈,无法高效扩展以支持大量GPU、NPU等智能设备的横向数据交换[4][8] - Unified Bus提出对等架构,所有设备平等且可被视为内存块,任何设备可通过Load/Store内存语义直接访问其他设备内存,无需对方CPU干预,实现零拷贝和微秒级超低延迟[5] - 对等架构使不同服务器内存可组成共享内存池,异构计算和存储资源可池化,根据应用需求动态组合,提高资源利用率并减少不必要数据搬运[5] 协议设计哲学 - 总线与网络在设计范式、地址空间、拥塞控制和优劣势上存在显著差异:总线为节点内紧耦合设计,共享统一物理地址空间,硬件流控简单,延迟极低但扩展性差;网络为节点间松耦合设计,独立地址空间,需要复杂端到端拥塞控制,扩展性好但协议栈复杂[7] - UB在底层物理实现上承认超节点内和超节点间互联技术差异,但通过统一抽象向应用屏蔽物理差异,在编程抽象层面实现统一,最终实现"鱼与熊掌兼得"[7] - 协议设计借鉴基础领域方法论,将复杂问题分解为关键子问题(如编程抽象、功能划分、地址分配、路由拓扑、流控拥塞控制等),并从已有方案中选择组合解决[10] 通信语义创新 - 单边语义(内存语义)允许发送方直接将数据写入接收方可访问位置(如共享内存或Key-Value Store),接收方在方便时读取,无需双方同时在线,适合传输大块数据但缺乏通知机制[11][12] - 双边语义(消息语义)需要发送和接收方配合,通过消息收发进行通信,适合通知但性能较低,因接收方CPU需处理消息且需预先准备内存缓冲区[13][14] - UB协议核心提供高效单边内存操作,允许服务器直接读写另一服务器内存而无CPU干预,同时认识到双边语义最重要作用是通知应用[15] - 引入带立即数操作(Write with Immediate和Send with Immediate)将数据传输和轻量级通知融合为单个硬件原语,消除应用层发起第二次通知操作必要,简化逻辑并避免乱序问题[16][17][18] 可扩展性突破 - 传统RDMA等面向连接模型需维护队列对状态,在超大规模数据中心面临硬件资源耗尽和管理复杂度爆炸的可扩展性天花板[20][24] - UB创造Jetty无连接抽象取代传统连接模型,将N x N私有航道管理问题简化为N个公共码头管理问题,解决可扩展性难题[22][27] - Jetty模型采用泊位机制,通过JFS和JFC一一对应建立背压机制,解决软硬件速度不匹配导致的事件丢失问题,同时提供灵活多Jetty创建选项以缓解HOL阻塞、公平性和隔离问题[25][26][28][29][30] 内存访问范式 - UB提供同步Load/Store与异步Read/Write两种互补编程范式:Load/Store由处理器指令直接支持,实现同步远程内存访问,延迟极低且对应用透明,但硬件要求高;Read/Write由软件发起,异步操作,灵活支持大数据传输且故障隔离性好,但过程复杂延迟较高[46][47][50][51][56][57] - 远程内存寻址支持三种模式:物理内存统一编址实现简单但扩展性差;网络地址+远程虚拟地址灵活可扩展但无缓存一致性;映射到本地虚拟地址通过UBMMU将远程内存段映射到进程虚拟地址空间,支持缓存和硬件一致性,性能优势巨大[58][59][60] - 缓存一致性设计以多读单写所有权模型为核心,提供从强一致性动态共享列表到软件管理一致性等多种方案平衡性能、复杂度和一致性强度[62][63][64][65][66][67] 性能优化机制 - 弱事务序设计将顺序保证分解为执行序和完成序两个正交维度,提供NO、RO、SO、Fence等分级原语,允许应用在性能与一致性间按需选择,避免不必要的强顺序枷锁[41][42][44][45] - 拥塞控制采用C-AQM机制,通过端网协同实现"按需分配、主动授予"的近似零队列目标,发送端通过I位请求带宽,交换机根据拥塞状况置位C位并给出精确Hint建议值,实现快速响应和低延迟[78][80][81] - 可靠传输支持事务级和包级负载均衡,事务级通过TPG固定路径避免乱序,包级最大化带宽利用但需处理乱序;重传机制提供GoBackN与选择性重传、快速重传与超时重传的组合模式适应不同网络场景[84][85][86][87][88] 应用场景与价值 - 内存池技术找到杀手级应用KV Cache,解决LLM推理服务中海量中间状态缓存需求,其数十上百GB规模和高频访问特性完美匹配UB大容量、低延迟、高效共享优势[68] - Prefill-Decode分离调度和Prefix KV Cache技术可基于UB全局内存池实现,显著降低TTFT并节省计算资源,支持跨请求计算结果复用[69][70][71] - URMA作为统一编程抽象,将对等访问、无连接模型和弱事务序等设计哲学融合,为上层应用提供简单、高效且极具扩展性的接口,代表面向未来的异构计算通信范式[74][75][76]
Nvlink的国产替代:华为Unified Bus背后的思考
半导体行业观察·2025-10-11 09:27