学习: libfabric 2.0

libfabric 2.0 (OpenFabrics Interfaces / OFI,2024-12 发布)不是"加几个 API"的小版本,而是把 OFI 从"HPC RDMA 抽象层"重新定位成 AI/HPC fabric 的统一北向接口,尤其给 Ultra Ethernet / UET 当软件底座。

一、为什么有 libfabric 2.0

  • 1.x 里堆了很多历史 provider / 内存模型 / 进度模型,云厂和 NIC 厂商都不好优化
  • UEC 要定义下一代以太网 RDMA 传输(UET),需要一个"现代、干净、可映射到 packet spraying / 乱序放置 / 选择性重传"的 API
  • 结果:UET 软件 API = libfabric 2.0 + UEC 扩展

二、2.0 本身的 API/工程变化

  • 删废弃特性:FI_MR_BASIC、FI_MR_SCALABLE、FI_LOCAL_MR、异步 MR 注册、poll sets、FI_THREAD_FID/ENDPOINT 等
  • fi_info 必须由 libfabric 分配,不允许手搓结构体(方便 provider 藏私有字段)
  • 进度模型合并:control_progress + data_progress → 单个 progress
  • 删老 provider:sockets、usnic、gni、bgq、netdir、rstream;sockets 可用 tcp 替代
  • 线程模型收敛:标准 EP 倾向 FI_THREAD_DOMAIN,可扩展 EP 倾向 FI_THREAD_COMPLETION
  • 目标:减少 provider 复杂度,让 NIC 做 lockless / zero-copy / offload 更顺

三、为 AI / UET 加的东西

  • 标准化 tag format (mem_tag_format → max_tag_bits 思路),更适配集合通信
  • 新 atomic 类型,面向 AI 张量/梯度类操作
  • inter-provider 用法稳定化:同一应用可在 verbs / cxix / efa / 未来 UET provider 间切换
  • UET 映射里引入:
    • FI_ADDR_UET
    • DGRAM/RDM endpoint 语义
    • Rendezvous / Deferrable Send
    • Tagged / Untagged / RMA / Atomic
    • Traffic Class、Packet Delivery Context
    • AI Base / AI Full / HPC 三档 profile

四、libfabric 2.0 在生态里的位置

复制代码
MPI / OpenSHMEM / SHMEM / CCL / DAOS
            ↓
        libfabric 2.0  (OFI API)
            ↓
 provider: verbs | efa | cxix | opx | tcp | UET provider
            ↓
   InfiniBand / RoCEv2 / EFA / UET(Ethernet)
  • MPI:MPICH / Open MPI 走 OFI
  • 存储:DAOS
  • PGAS/SHMEM:GASNet、OpenSHMEM、UPC
  • AI:CCL 库通过 libfabric 对接不同 fabric,不直接绑 Verbs

五、和 RDMA Verbs 的区别(很关键)

  • Verbs:贴近 IB/RoCE QP/MR/CQ,硬件味重,AI 大模型要自己包一层
  • libfabric:语义层更厚,message / tagged / RMA / atomic / collective 一体,适合跨 fabric
  • UEC 不选 Verbs 而选 libfabric,是因为 Verbs 的"面向连接/有序/Go-Back-N"假设和 UET 的"无连接/多路径 spraying/乱序放置"不对齐

六、2025-2026 现状

  • libfabric 已走到 2.1 / 2.2 / 2.3 / 2.4,2.0 是基线不是终点
  • UEC 1.0(2025-06)明确以 libfabric 2.0 为软件契约
  • 生产侧:
    • IB/RoCE 集群:还是 verbs/NCCL 为主,libfabric 多在 MPI/DAOS
    • UET 设备出来后:厂商会提供 libfabric UET provider ,对应用看起来还是 fi_send/fi_write/fi_atomic
  • 采购别只问"支持 libfabric":要问支持哪些 provider、哪些 UET profile、atomic 集合、inject 大小、MR 模型、collective offload

七、一句话

libfabric 2.0 = 把"高性能网络通信"从 IB/RoCE 的 verbs 世界,升级成 AI 十万卡时代的 fabric 中间件标准;UET 负责重做传输层,libfabric 2.0 负责让 MPI/SHMEM/CCL 不用重写就能用上新网络。

相关推荐
云飞云共享云桌面18 小时前
机械制造研发部门:一台SolidWorks云主机替代 10 台传统图形工作站
运维·服务器·网络·3d·自动化·制造
loulanyue_19 小时前
从碎片文档到工业知识网络:TDengine工业知识图谱架构设计与大模型落地破局——读涛思数据OpenDay实录
网络·知识图谱·tdengine
东方佑19 小时前
去魅:工具调用、Agent 调用、A2A、MCP、Harness 到底都是什么
服务器·网络·数据库
上海云盾-小余19 小时前
七层 CC 攻击检测难点:如何区分真实用户与攻击请求
网络·人工智能·windows·tcp/ip·udp
2401_8858850419 小时前
巴林语音通知接口如何对接?系统告警语音API接入教程
android·前端·网络·python·语音识别
JSON_L19 小时前
TCP 粘包拆包解析及示例
网络·网络协议·tcp/ip
科技小E20 小时前
私有化部署:私有化/本地化AI模型训推工作站DLTM数据不出内网的“安全锁”
网络·安全·自动化
汤愈韬20 小时前
OSPF外部路由引入
网络·网络协议
Lzg_na20 小时前
OSPF协议学习
网络
梦帮科技21 小时前
基于幺正李代数连续归一化流的混合量子生成模型 (HQNN-Flow) 完整技术指南(上部分)
网络·人工智能·算法·量子计算