AI智算基础设施落地:从硬件选型到部署运维的完整指南
发布时间:2026/10/17 7:38:04 锦皓数字建站

做智算基础设施落地这个项目我最深的感受是它不像搭一套普通的服务器集群更像是在精密地组建一支高协同的特种部队。每一个环节从GPU服务器的选型到高速网络的搭建再到存储和调度平台的配置都在为同一个目标服务——让大规模AI训练任务能够高效、稳定地跑起来。这篇就来聊聊我在实际落地AI智算基础设施时从需求分析到部署运维的完整思路和具体实操。这套方案适合谁去看如果你正准备从零搭建训练集群或者正在为现有的AI基础设施做扩容和性能优化又或者听完各种厂商的方案后感觉一头雾水希望有个更底层、更务实的参考那这篇内容应该能给你一些启发。1. 需求分析与整体设计别把智算集群做成云计算1.1 先想清楚这个集群到底要跑什么负载我见过不少项目上来就谈几卡集群、什么架构结果落地的负载和设计目标完全错位。智算基础设施和传统云计算基础设施有个本质区别云上跑的是通用负载讲究隔离和多租户智算集群跑的是强通信负载讲究的是协同和全局优化。所以我拿到项目的第一件事不是选硬件而是搞清楚三个问题集群主要用于大模型预训练、微调还是在线推理预期训练的最大模型规模是多少需要多大的GPU显存和总算力训练任务是否要求多机多卡并行数据并行、张量并行、流水线并行的组合方式是什么这三个问题直接决定了集群的规模和网络拓扑。举个例子如果主要做百亿参数模型的预训练通常需要用多节点8卡训练服务器组成集群节点间通信极其频繁这就要求网络具备无阻塞或极低超分比的能力。如果主要做推理规模相对小网络压力也小但需要关注显存容量和存储吞吐。为什么这个分析这么重要因为智算集群的扩展不是线性加机器就行。大模型训练采用类似数据并行加张量并行的混合策略时每次梯度同步都要在集群内做全局规约通信。节点数量翻倍通信量可能增长更多。如果网络拓扑设计不合理集群规模扩大后训练效率提升会急剧降低甚至出现“112”的尴尬局面——钱花了性能没上去。1.2 设计目标与关键决策做完负载分析后我会把设计目标拆成几个可量化的指标性能目标如目标模型训练时的有效算力利用率MFU达到40%-55%千卡规模下多节点线性扩展效率不低于90%。可用性目标如单次训练任务持续数天不中断硬件故障对任务的影响控制在可接受范围。演进能力后续算力扩容是否可以直接增加节点还是需要重新设计网络。围绕这些目标通常有几个关键决策点设计决策方案A方案B我的倾向集群规模几个独立小集群集中式大集群业务单一用大集群多团队可隔离时用小集群网络方案无损以太网RoCE专用高带宽互联网络IB规模大、追求性能选IB追求成本可控选RoCE存储架构通用NAS并行文件系统训练场景优先并行文件系统调度平台传统HPC调度系统容器编排K8s混合方案看团队技术栈两者各有优劣这里说个我踩过的坑某项目初期选了多个小集群方案每个集群独立建设。结果业务发展后一个集群不够用另一个集群闲置率高。由于网络独立设计无法弹性调度任务。后来只能硬着头皮做集群间高速互联改造比一开始建设集中式大集群的成本高很多。所以现在我的经验是如果负载比较统一基本都是训练任务优先建设集中式大集群用分区或调度策略隔离业务比物理拆分更灵活。2. 硬件选型与集群拓扑落地2.1 计算节点选型计算节点是整个集群的心脏。选型的时候很多人只盯着GPU型号和数量其实CPU、内存、本地盘配置同样关键。以典型的8卡训练服务器为例我会按以下规格来配加速卡选择主流大显存训练卡单卡显存在保证能装载模型参数和梯度的基础上留有冗余。CPU通常是双路处理器核心数不少于64核主频不需要极高但核心数要足因为要承担数据加载、预处理、通信调度等任务。内存512GB起大模型训练时CPU内存一部分用于数据加载的预取缓冲一部分用于算子编译和中间表示内存不足会导致任务还没跑到GPU就被卡住。本地存储建议配置2块960GB SSD做系统盘4块或更多大容量NVMe SSD做数据缓存盘。为什么CPU和内存要留余量我举个例子训练任务的数据管线DataLoader如果直接从远程存储读取数据网络抖动或存储吞吐不足会直接导致GPU等待数据利用率直线下降。如果用本地NVMe盘做缓存提前预取数据那CPU和内存就是保证数据管线流畅运行的关键。很多团队忽略这一点结果GPU利用率一直上不去最终发现瓶颈竟然在数据管线上。另外节点内部的GPU互联方式也很关键。8卡服务器内部建议选择支持全互联拓扑如类似全连接或环形结构中的高带宽互通的方案确保单节点内跨卡通信不成为瓶颈。可以用nvidia-smi topo -m这类命令查看GPU间的互联拓扑确认是否满足要求。2.2 网络拓扑从Leaf-Spine到Rail-Optimized网络是整个智算集群里最值得花时间设计的部分因为它直接决定了分布式训练的上限。传统数据中心网络常用三层架构或Leaf-Spine两层架构。对于AI训练集群我强烈推荐做胖树Fat-Tree或Rail-Optimized设计。先解释一下为什么。大模型训练中节点间的通信模式通常是All-to-All节点内每张卡都要和远端节点通信。如果网络收敛比过高比如41收敛意味着多个GPU共享一个上行链路一旦多个节点同时通信拥塞不可避免——而拥塞造成的重传对一个正在做多节点规约的任务来说是灾难性的整个训练会被拖慢数倍。所以我在设计网络时会计算节点接入带宽每台训练服务器配置高速网卡如8×100GbE或8×200GbE确保每个GPU都能独立对外通信。Leaf层接入Leaf交换机上联带宽等于下联带宽做到无收敛。Spine层互联Spine交换机数量满足任意Leaf之间的带宽对称。组网构图采用类似Rail-optimized的组网把分散在不同Leaf下的GPU按索引分配到固定的Spine路径减少跨Leaf跳数。用一组实际参数来算假设我们有32台8卡训练服务器共256张GPU。每台服务器8张100G网卡总接入带宽为32×80025.6Tbps。Leaf交换机若是128端口100G需要覆盖所有网卡接入同时保证上联带宽和下联一致Spine层需要的带宽同样是25.6Tbps。这样算下来网络设备成本会显著增加但这笔钱不能省——省了网络等于省了算力利用率。在RoCE和IB之间选型时我的看法是如果集群规模在百卡以内RoCE方案性价比很高调优得当也能达到不错的性能如果规模到千卡级别或以上IB网络在拥塞控制、可靠传输方面更省心性能也更有保证。虽然单端口成本更高但综合运维成本和故障排查难度反而可能是更划算的方案。2.3 存储与配套存储是容易被低估的部分。智算集群的存储系统建议分三层规划热数据层存放正在训练的数据集和中间检查点要求高吞吐、高IOPS通常用并行文件系统带宽按需求配置比如10GB/s起步大模型训练可能需要50GB/s以上。温数据层存放历史数据集、用户代码、镜像等容量大、吞吐要求中等可以用通用分布式存储。冷数据层存放备份和归档数据可以走对象存储。训练任务的检查点写入是个容易出问题的点。大模型训练每几个小时会写一次检查点单个文件达到几十GB甚至上百GB如果存储带宽不够写检查点期间GPU就会被迫空转等待。在实际项目中我见过因为检查点写入慢导致整个训练任务被拖慢30%以上的情况。此外机房配套还涉及供电和散热。训练服务器的功耗非常大单机8卡满载可能超过6kW机柜功率和散热方案必须提前设计。风冷在10kW/机柜以上的密度下会非常吃力液冷在规模化部署中越来越常见。这部分一定要和机房团队提前沟通否则设备到了发现电力不足那才是真正的灾难。3. 软件栈与调度平台落地3.1 基础软件栈硬件有了软件栈是让它跑起来的灵魂。我的经验是越早用容器镜像固化环境越能避免后面无穷无尽的依赖冲突。基础软件栈包括操作系统选择一个稳定的服务器发行版注意内核版本要与网络驱动和加速卡驱动兼容。驱动与开发框架加速卡驱动、统一计算平台、通信库版本需要完全对齐。版本不一致是训练任务奇奇怪怪报错的头号来源。容器运行时容器本身和GPU容器运行时工具的版本配合要测好。镜像仓库自建私有仓库把训练镜像、推理镜像分类管理镜像标签带上日期和版本。为什么这么强调环境一致性我遇到过同一个训练脚本在这台机器上跑得好好的到另一台机器上就崩溃最后发现是两台机器上通信库版本不一致。用容器镜像把CUDA、通信库、Python环境全部固定下来训练代码用镜像交付才能保证整个集群环境一致问题排查起来也简单得多。3.2 调度器选择与配置调度平台决定了集群资源怎么分、排队怎么排、任务怎么分配。不同团队选择不一样但核心能力有一点是共同的——支持GPU粒度的资源调度和拓扑亲和性调度。传统HPC调度器以Slurm为代表的好处是任务排队清晰、适合固定集群批处理任务Kubernetes生态的好处是资源隔离好、微服务化的推理服务部署方便。大模型训练既要长稳地占用一批GPU又要灵活部署推理服务我建议用一套支持GPU资源的调度系统在队列上做策略隔离比如预训练队、微调队、推理队而不是搞两套环境。调度配置里有两个点极其重要任务级独占训练任务需要独占整卡不能和推理任务共享一张卡除非做了MIG或类似切分否则显存和算力干扰会影响训练稳定性。节点拓扑亲和尽量把任务分配到同一个交换机下、甚至同一个节点组内的GPU上缩短通信距离。通信距离不一样网络延迟差异明显会影响run-to-run的稳定性。配置调度策略的示例简化版queue: training preemption: false resources: gpu: 32 gpu_per_node: 8 nodeAffinity: - switch: leaf-01 - switch: leaf-02这段策略表达的意思很直接这个任务申请32张GPU且要求尽量落在leaf-01和leaf-02这两个接入交换机覆盖的节点上。这样做的好处是通信路径短跨Spine的流量少性能稳定。3.3 网络模式容器网络与高性能网络的绑定容器网络这里有个常见的坑。默认的容器网络都是Overlay模式数据包要经过隧道封装CPU消耗高吞吐被严重压缩延迟增加。对大模型训练这种高频小包通信场景Overlay网络基本不可用。我在部署时训练任务的Pod/容器会采用直通模式让容器的网卡直接映射到物理网卡上获取与宿主机同等的网络性能。这样容器内的通信库如NCCL能够直接用物理网络做GPU间通信不需要经过额外的软件转发。具体做法是给调度平台配置一个专用的网络配置让指定队列的任务启用物理网络直通。要注意这种模式下容器网络和宿主机网络共享一套IP规划需要提前预留好地址段避免冲突。4. 部署实施与核心配置4.1 加速卡驱动与网卡配置实操部署阶段第一步是验证单机基础环境。我的标准动作是这样安装操作系统配置BIOS属性比如开启超大页、调整电源模式为性能模式。安装加速卡驱动和统一计算平台然后重启验证。用命令验证单卡状态nvidia-smi查看驱动版本、卡状态、显存占用。跑一个简单的矩阵计算或示例任务确认卡本身计算正常。网卡配置方面RoCE网络和IB网络的配置思路不太一样这里分别说一下。如果是RoCE无损网络交换机需要开启PFC优先级流控和ECN显式拥塞通知这是无损网络的基础。网卡上要设置正确的流控参数开启RoCE模式。用rdma相关命令检查设备状态。如果是IB网络需要配置子网管理器子网管理器可以跑在专用管理节点或交换机上。对端口的速率、链路状态做检查确保所有端口都从Initialization状态变到Active状态。这个阶段最容易忽略的是一个隐性参数——节点主机名解析和网络路由。如果节点之间不能互相解析主机名通信库初始化就会卡住。所以我在配置时会先统一维护一套名称解析配置确保任意两台节点都能按预期互通。4.2 NCCL环境关键参数通信库NCCL是大规模GPU通信的核心配置不对多卡性能会崩给你看。这是很多团队第一次跑多机训练时发现性能奇差的原因——问题往往不在卡而在NCCL参数没调对。几个关键参数我必须强调指定网卡接口通信库需要知道用哪个网卡接口做跨节点通信。如果节点有多个网卡默认选错会走管理网络速度慢得离谱。指定GPU直接通信方式每个GPU对应哪块网卡需要一一对应让通信路径最短。跨节点通信协议如果选用RoCE网络通信库会尝试用IB verbs或Socket实现。配置要选对否则走了Socket通道RDMA优势全丢。节点内通信模式可以用P2P层控制PCIe拓扑复杂的机器尤其要关注防止走了低带宽路径。举例来说环境变量设置可以参考如下export NCCL_IB_DISABLE0 # 启用RDMA通信 export NCCL_IB_HCAirdma0,irdma1 # 指定可用的RDMA网卡 export NCCL_SOCKET_IFNAMEeth0 # 指定Socket通信的网卡 export NCCL_P2P_LEVELPCI # 允许同一PCIe总线内的GPU直接通信设置完之后可以用通信库自带的带宽测试工具如nccl-tests里的all_reduce测试验证单机8卡之间带宽应该达到几百GB/s量级跨机通过RDMA也应在合理范围内。4.3 集群验收测试集群建设完成后我建议按如下顺序做全链路验收测试单卡计算测试跑ResNet-50或GPT类小模型训练要求loss正常下降无报错。节点内多卡通信测试用nccl-tests跑节点内all-reduce验证8卡互联带宽不低于预期。节点间通信测试跨节点跑all-reduce验证RDMA通路正常丢包率为0。全集群调度测试提交一个64卡或128卡训练任务验证调度平台分配、镜像拉取、任务启动全流程。长期稳定性测试跑一个持续数小时的训练任务监控GPU利用率、温度、网络丢包和存储吞吐。验收时我会格外关注一个指标多机扩展效率。比如32卡比8卡训练同一模型吞吐应该接近线性增长。如果32卡扩展到64卡时效率下滑超过10%就要回头检查是不是网络拓扑带宽不够或者通信参数没调好。这里分享一个我在验收中遇到的真实情况某次多机all-reduce测试节点内没问题但跨节点时性能始终只有预期的70%。排查了一整天最后发现是Leaf交换机上有一个端口没有正确配置为无损模式导致偶发丢包重传。重新配置端口后性能立刻恢复正常。这类问题只能逐端口排查验收环节的全面测试绝对不可省。5. 常见问题与故障排查实录5.1 通信问题多卡训练性能上不去是智算集群最常遇到的问题。我把排查套路总结一下第一看网络是否丢包。丢包是性能杀手尤其是RoCE网络一个千分之一的丢包率就能让整体带宽掉一半以上。通过统计工具查重传率和丢包计数如果有增长优先看流控配置、光模块质量、链路误码。第二看通信路径是否最优。如果网络拓扑是分层的通信路径可能不是最短的。检查路由表确认跨节点流量是从指定的高性能网卡出去的而不是走管理口。第三看GPU间拓扑。有些服务器主板PCIe通道分配不合理GPU和网卡跨PCIe Switch通信性能会打折扣。用拓扑查看命令确认每张GPU对应的网卡位置必要时重新插卡或者调整设备顺序。还有一个问题多卡训练出现“卡死”或“通信超时”。通常是因为某个节点的驱动或通信库版本不一致或者某张GPU出现硬件故障。处理办法是看系统日志和训练日志定位到具体节点后单独对那张卡做压力测试确认是否有硬件故障。若有硬件故障尽快隔离更换避免影响整个集群。5.2 存储问题存储引发的问题往往更隐蔽。训练任务偶尔变慢很多人优先怀疑网络其实可能是存储抖动了。常见现象是训练日志显示迭代时间间歇性变长但GPU利用率看起来正常。排查方法是在训练期间监控存储的读写延迟和带宽。如果并行文件系统出现明显毛刺可能是有其他任务在做大量读写与训练任务抢带宽。另一个高频事故是检查点写入阻塞。训练任务周期性地保存模型如果存储带宽不足写文件要花很长时间这段时间里GPU空等任务时间表被拉长。解决思路要么扩容存储带宽要么把检查点写入调整为异步方式要么优化检查点文件大小比如分片压缩。5.3 运维问题快查表我在日常运维中整理了一张快速定位问题的参考表遇到故障先按这个思路排查现象可能方向排查手段多卡训练卡死通信库超时、驱动异常、硬件故障看通信库日志查系统日志单卡压力测试跨节点带宽低网络丢包、路由错误、端口配置异常查端口丢包统计链路测试检查无损配置GPU利用率忽高忽低数据加载瓶颈、存储抖动、CPU抢占监控数据加载耗时观察存储延迟检查CPU负载任务排队但GPU空闲调度策略不合理、镜像拉取慢检查队列配额、镜像缓存策略训练loss不收敛数据问题、模型代码问题、驱动框架版本不匹配校验数据管线同环境对比实验6. 长期运营与容量规划6.1 资源利用率与监控集群建设好只是开始真正的考验在长期运营。我建议从第一周就建立起监控体系核心指标包括GPU利用率注意看计算利用率还是显存利用率计算利用率低不一定是显存不够可能是通信或数据瓶颈。网络流量与丢包率按设备、端口维度观察建立基线。丢包率异常升高往往是故障前兆。存储带宽与延迟监控读写吞吐和延迟的P99值训练任务性能波动时能快速判断是否存储侧问题。作业排队时长这个指标反映资源供给和需求是否匹配排队过长说明算力不够空闲过多说明需求不饱和或者调度策略有问题。很多团队只监控GPU利用率发现利用率不高就盲目认为算力浪费其实还要看是不是训练任务本身存在资源碎片化。比如一个任务申请32卡但调度系统把它散落到多个交换机下通信效率下降GPU利用率自然高不起来。解决碎片化的方法是合理配置调度队列让大任务优先集中分配节点。6.2 容量规划与扩展智算集群建设不是一次性工程。业务模型变大、参数量翻倍对资源的需求快速增长。容量规划我建议按两条线来做算力规模按业务增长趋势预估未来6-12个月的训练任务峰值需求预留20%-30%的缓冲余量。GPU采购周期长越早规划越不容易被动。网络扩展网络拓扑在设计之初就要考虑扩展性。Leaf交换机预留上联端口Spine层预留扩容槽位光模块和线缆预留备用。有准备的扩容可能只需要几天没准备的扩容可能要重新设计网络耗时按季度算。还有一个容易忽略的点机房空间和电力规划。GPU集群电力密度高扩容前必须和运维团队确认剩余电力容量别等设备到了才发现机柜连电都插不上。我见过有团队就是忽略了这一点设备在仓库放了一个多月才勉强找到机位。6.3 成本与控制最后聊一聊成本因为智算集群的投入是真金白银每一分都得花在刀刃上。我总结了几个经验按需扩容不要过度超前规划GPU迭代快采购太早容易买落后一代的产品反而浪费。按业务明确需求来扩容留出合理的规划提前量就好。撮合用性价比如果业务里有实时推理需求不必都用训练卡用中端推理卡或合适的性能优化方案成本可以显著下降。降低存储冗余不是所有数据都值得放高性能存储上把数据集和备份按生命周期分到不同存储层长尾成本会好看很多。能耗管理空闲节点自动关机或进入低功耗状态GPU任务空闲时也可以动态调低功耗电费账省下来也是可观的数字。我踩过一次痛彻心扉的坑项目初期为追求极致性能给所有节点都配置了最高功耗模式结果机房电费翻倍实际业务负载根本用不到那么多满血算力。后来调整了功耗策略在不影响训练性能的前提下能耗下降了明显一截。这种钱省下来就是纯利润。我自己在运营这套基础设施的过程中经验教训很多最重要的感受是AI智算基础设施不是一个“交付完就结束”的项目它是一个需要持续运营、持续优化、持续和业务对齐的系统。硬件选型决定上限软件配置决定下限而运维和调优决定了长期体验。如果让我给后来者一个最真诚的建议那就是从第一天就把监控、日志、报警和容量规划做好别等到问题爆发了再奔波补救。把基础打牢把细节做实这套设施才能真正承载起AI业务的野心。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。