岗位职责
方向一: Global Fabric Manager (GFM & Switch)
- 多节点 fabric 协调:设计与维护 GFM与LFM(SM) 的分布式协作机制(带内通路),实现跨节点的拓扑发现、配置下发、心跳保活与查询转发。
- 拓扑发现与校验:解析多节点/单节点 fabric 拓扑,构建并校验 GPU–Switch 连接矩阵,剔除未探测到的 GPU/Switch,保证拓扑一致性。
- Fabric 配置与路由:计算并下发全局 fabric 配置(trunk/access 端口、Switch 路由表),协调所有节点完成初始化。
- DLink 链路管理:负责 DLink 的初始化、链路训练(link training)与状态维护,管理链路速率、连接状态与设备仓库。
- 共享 fabric 分区:实现分区(partition)的查询、激活/去激活、多租户隔离等能力。
- 高可用与故障降级:实现 GFM 主备(HA)、心跳检测;处理 access/trunk 链路失效、Switch 失效等场景下的降级模式(degraded mode)与"带故障继续运行"策略。
- 错误处理与运维接口:维护错误工作队列、设备信息管理(GPU/Switch/黑名单/UUID/BDF 映射)、对外命令与查询接口(FM Lib API)、状态持久化与重启恢复。 方向二: OpenSM(Switch 子网管理)
- 子网发现与初始化:基于 SMP(QP0/VL15/定向路由)完成子网设备发现、LID 分配(含 LMC 多 LID)、端口配置。
- 路由计算:实现并优化线性/随机转发表(LFT)的路由算法(如 fat-tree、up/down、torus 等),保证无环、负载均衡。
- 子网管理(SA):提供各类 SA Record 查询服务(PathRecord、ServiceRecord、PKeyTableRecord、InformInfo、MCMemberRecord、SL2VL / VLArb 等)。
- 分区与 QoS:实现 P_Key 分区管理(partitions.conf 解析、P_Key 表下发与隔离)、QoS(SL→VL 映射、VL 仲裁)与多播管理。
- 管理路径可靠性:维护事务重试/超时、VL15 出向流控、RMPP 多包可靠传输、Trap/Notice 事件处理与 SM 高可用。
- 问题定位与性能优化:诊断 fabric 拥塞、路由异常、链路抖动、节点失联等问题,优化大规模子网的扫描收敛速度与稳定性。 跨方向通用职责 • 参与大规模 C++ 代码库(单文件可达数千行)的架构设计、开发与重构; • 与底层驱动(GPU 驱动 / 内核 ib_core、umad)、上层通信库(DCCL 等)对接联调; • 编写设计文档、测试用例,参与代码评审; • 支撑生产集群的上线、灰度与疑难故障攻关。
职位要求
- 计算机、电子、通信等相关专业本科及以上学历,3 年以上 C/C++ 系统软件开发经验;
- 深入理解 InfiniBand 架构,熟悉 Subnet Manager 工作机制,包括拓扑发现、LID/GUID、路由、P_Key、主备选举等。
- 有 OpenSM 部署、配置、调试或二次开发经验,能够处理多 SM 冲突、路由异常、端口状态异常等问题。
- 熟悉 NVIDIA GPU 集群互联技术,了解 Fabric Manager、NVSwitch、NVLink、NVLSM、DCGM 等组件及其在 DGX/HGX 系统中的作用。
- 扎实的 Linux 系统编程功底:用户态/内核态接口、socket/TCP 网络编程、进程与线程、systemd 服务等;
- 理解高性能互连与网络协议:NVLink/NVSwitch、InfiniBand、RDMA 中至少一项,了解其拓扑、路由、流控、QoS 等机制;
- 良好的问题分析、定位与沟通能力,能独立攻坚复杂系统级缺陷。 加分项 • OpenSM 二次开发或自研子网管理器经验; • 有 NVIDIA Fabric Manager / NVSwitch / NVLink fabric 管理相关经验; • 熟悉 RDMA 生态(ib_core、libibumad、libibverbs、rdma-core、NCCL、UCX 等); • 有大规模 AI/HPC 集群(千卡/万卡)网络运维或互连软件开发经验; • 有 NVIDIA UFM、DCGM、HPC-X、Mellanox OFED 等工具使用经验。 • 具备内核网络、RDMA 驱动、白盒交换机相关开发经验。