HyperPod Version Checker 用于检查并对比 SageMaker HyperPod 集群节点上的软件组件版本。该脚本需通过 hyperpod-ssm 技能上传到集群节点后再执行。
用途 该工具面向 SageMaker HyperPod 集群节点,帮助用户获取各节点上关键软件组件的版本信息,并支持多节点之间的版本对比,以便排查版本不一致或兼容性问题。
主要能力 脚本可检测以下组件:NVIDIA 驱动(通过 nvidia-smi,适用于 p3/p4/p5/g5 等 GPU 实例)、CUDA 工具包(通过 nvcc 与 /usr/local/cuda 符号链接,适用于 GPU 实例)、cuDNN(通过头文件与软件包,适用于进行深度学习的 GPU 实例)、NCCL(通过库文件名、头文件与软件包,适用于分布式 GPU 训练)、EFA(通过 /opt/amazon/efa_installed_packages 与 fi_info,适用于 p4d/p4de/p5/trn1/trn2 等支持 EFA 的实例)、AWS OFI NCCL(通过 efa_installed_packages 与库搜索,适用于 EFA + NCCL 工作负载)、GDRCopy(通过 rpm/dpkg 与内核模块,适用于带 RDMA 的 GPU 实例如 p4d+/p5)、MPI(通过 mpirun 与 /opt/amazon/openmpi,适用于分布式训练)、Neuron SDK(通过 neuronx-cc、neuron-ls 与软件包,适用于 Trainium/Inferentia 如 trn1/trn2/inf1/inf2)、Python/PyTorch(通过 python3 与 torch 导入,适用于 ML 工作负载)、容器运行时(通过 docker、containerd、kubectl、nvidia-ctk,适用于 EKS 集群)。
使用方式 基本用法为执行 bash hyperpod_check_versions.sh,输出文本报告到控制台并保存到文件。使用 --json 时仅将 JSON 输出到标准输出(文本报告仍保存到文件),适合管道与解析。使用 --output 可自定义输出文件路径,例如 --output /tmp/versions.txt。使用 --no-color 可关闭颜色,便于日志记录。默认输出文件名为 component_versions_<hostname>_<timestamp>.txt。
多节点对比 需通过 hyperpod-ssm 技能在每个节点上单独运行。配合 --json 使用时,标准输出为干净的 JSON,便于进行 diff 比较。
兼容性参考 脚本会自动分析 CUDA 与驱动的兼容性。参考关系为:驱动系列 580+ 支持 CUDA 13.x、12.x、11.x;570+ 支持 12.8+(Blackwell)、12.x、11.x;545+ 支持 12.3-12.7、11.x;525-535 支持 12.0-12.2、11.x;450+ 仅支持 11.x。NCCL 方面,CUDA 12.x 建议使用 2.18+,CUDA 11.x 建议使用 2.12+,且必须在所有节点上保持一致。EFA Installer 与 AWS OFI NCCL 的对应关系为:EFA Installer 1.29+ 对应 AWS OFI NCCL v1.7.3+(推荐);1.26-1.28 对应 v1.7.0-v1.7.2;1.20-1.25 对应 v1.6.0+。
适用场景 适用于 SageMaker HyperPod 集群的运维与调试,尤其是需要确认 GPU 训练环境、分布式训练组件、EFA 网络组件或 Neuron 相关组件版本是否一致与兼容的场景。
限制 该脚本需先通过 hyperpod-ssm 技能上传到集群节点后执行;多节点对比需在每个节点单独运行,未提供一次性跨节点自动汇总的功能说明。各组件检测的适用条件取决于实例类型与工作负载,部分组件仅在特定实例或特定环境下可被检测到。