- 文档首页
GPU云服务器
GPU云服务器
用户指南
安装veCCL
安装veCCL通信库(Analyzer 专用)
安装veCCL
安装veCCL通信库(Analyzer 专用)
安装veCCL通信库(Analyzer 专用)
veCCL(Volcano Engine Collective Communication Library)Analyzer专用版本是火山引擎基于NCCL(Nvidia Collective Communication Library)自研开发的高性能集合通信库,支持安装在单节点或多节点的多张GPU卡上,提供一系列关于通信的无损插桩,用于实现故障发现、根因定位,性能分析和可视化等功能。
本文以ecs.hpcpni3ln.45xlarge实例为例,为您介绍veCCL通信库的安装流程。
- 快速定位故障:能够在复杂的分布式集群协作任务中,快速识别并精准界定通信故障点。
- 极致稳定性(Softbond):能够应对复杂多变的网络异常情况。通过提供Softbond能力,在底层网卡发生故障时可实现毫秒级自动切换,保障业务稳定运行不中断。了解更多。
- 创建GPU计算型实例:请根据通过向导购买实例指引,创建一台符合如下条件的实例。
- GPU 驱动:用于驱动NVIDIA GPU正常工作的底层程序,执行nvidia-smi命令,确认驱动正常。本文以535.161.08版本为例。
- CUDA 环境(12.4 及以上):执行nvcc -V命令查看当前的CUDA版本。若未安装或版本低于要求,请安装 CUDA。
- Python 环境:执行python3 --version命令确认已安装Python 3。若未安装,请安装 Python。
pip install veccl -i https://private.ivolces.com/pypi/simple
ls `python3 -c "import veccl; print(veccl.ld_library_path())"`
-
- (可选)若安装失败,请执行如下命令从pip官方源重新下载并安装veCCL。
pip install veccl -i https://pypi.org/simple
veCCL安装成功后,必须通过环境变量将其注入到当前进程中,以确保程序在运行时优先加载veCCL通信库。请在执行训练脚本前,执行如下命令导入环境变量。
export LD_PRELOAD=$(python3 -c "import veccl; print(veccl.lib_paths())"):${LD_PRELOAD}
export NCCL_NET_PLUGIN=soft-bonding
export LD_LIBRARY_PATH=$(python3 -c "import veccl; print(veccl.ld_library_path())"):$LD_LIBRARY_PATH
说明
此配置方式仅临时生效,关闭窗口或断开连接后环境变量将会失效,再次运行时需重新导入。
本节以单机8卡的PyTorch分布式训练测试脚本为例,验证veCCL的all_reduce集合通信加速效果。
python3 -c "import torch; print(torch.__version__)
- 创建测试脚本,命名为test.py 并填入以下代码。
import torch.distributed as dist
rank = int(os.environ["RANK"])
local_rank = int(os.environ["LOCAL_RANK"])
world_size = int(os.environ["WORLD_SIZE"])
torch.cuda.set_device(local_rank)
dist.init_process_group(backend="nccl")
tensor = torch.randn(1024, device=f"cuda:{local_rank}")
print(f"Rank {rank}: before allreduce tensor sum = {tensor.sum().item()}")
dist.all_reduce(tensor, op=dist.ReduceOp.SUM)
print(f"Rank {rank}: after allreduce tensor sum = {tensor.sum().item()}")
dist.destroy_process_group()
if __name__ == "__main__":
- 执行以下命令运行test.py脚本,启动单节点8卡分布式训练测试。
NCCL_DEBUG=INFO torchrun --nproc_per_node=8 test.py
- 检查控制台输出日志,若包含NCCL INFO PROFILER/Plugin: loaded Bytedance-profiler字样,则veCCL分析器插件已成功挂载。
-
- 检查各个Rank的all_reduce运算结果日志是否符合预期,即未发生卡死(Hang),且所有Rank最终打印的after数值完全一致。
-
在多实例多卡训练或复杂网络环境下,您可能需要调整以下NCCL环境变量以保证通信的最佳性能和稳定性。
最近更新时间:2026.05.08 15:36:24