【NPU】A800-9000服务器8*Ascend 910 B的HCCS测试

本文详细描述了HCCS集合通信带宽数据在AtlasA2系列训练设备中的timeline信息展示,以及在msprof_*.json和hccs_*.csv文件中的汇总,同时提供了测试命令npu-smiinfo-ttopo的结果,展示了NPU间的连接关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HCCS集合通信带宽数据

HCCS集合通信带宽数据timeline信息在msprof_*.json文件的HCCS层级展示

summary信息在hccs_*.csv文件汇总。

支持的型号

Atlas 训练系列产品
Atlas A2训练系列产品

测试命令

npu-smi info -t topo

结果展示

	       NPU0       NPU1       NPU2       NPU3       NPU4       NPU5       NPU6       NPU7       CPU Affinity
NPU0       X          HCCS       HCCS       HCCS       PHB        SYS        SYS        SYS        144-167
NPU1       HCCS       X          HCCS       HCCS       SYS        PHB        SYS        SYS        96-119
NPU2       HCCS       HCCS       X          HCCS       SYS        SYS        PHB        SYS        48-71
NPU3       HCCS       HCCS       HCCS       X          SYS        SYS        SYS        PHB        0-23
NPU4       PHB        SYS        SYS        SYS        X          HCCS       HCCS       HCCS       144-167
NPU5       SYS        PHB        SYS        SYS        HCCS       X          HCCS       HCCS       96-119
NPU6       SYS        SYS        PHB        SYS        HCCS       HCCS       X          HCCS       48-71
NPU7       SYS        SYS        SYS        PHB        HCCS       HCCS       HCCS       X          0-23

Legend:

  X    = Self
  SYS  = Path traversing PCIe and NUMA nodes. Nodes are connected through SMP, such as QPI, UPI.
  PHB  = Path traversing PCIe and the PCIe host bridge of a CPU.
  HCCS = Connection traversing HCCS.
  NA   = Unknown relationship.

在这里插入图片描述

<think>好的,我现在需要帮助用户在华为Ascend 910 AI处理器上运行和测试PyTorch框架。根据用户提供的引用资料,特别是引用[2],昇腾适配PyTorch框架需要通过PyTorch Adapter来实现,因为原生的PyTorch模型不能直接在昇腾处理器上运行。 首先,我应该确认用户的环境是否满足要求。用户需要安装CANN工具包,这是昇腾计算的基础软件栈,负责芯片使能和资源调度。然后,安装PyTorch Adapter,它作为PyTorch和昇腾处理器之间的桥梁。这可能涉及到配置Python环境和依赖项,比如torch_npu等库。 接下来,用户需要将现有的PyTorch代码进行适配。例如,将CUDA相关的代码替换为昇腾的NPU支持,比如将.cuda()改为.npu(),以及使用昇腾的分布式训练接口。这可能涉及到修改模型定义、数据加载和训练循环中的部分代码。 然后,用户需要进行性能测试,使用昇腾提供的性能分析工具,如Ascend PyTorch Profiler,来监测资源利用率和优化模型性能。同时,用户可能需要注意昇腾910与GPU在架构上的差异,比如内存管理和计算单元的不同,这可能会影响代码的调整和优化策略。 此外,用户可能需要参考华为的官方文档和社区资源,解决在适配过程中遇到的兼容性问题或错误提示。例如,检查CANN和PyTorch Adapter的版本兼容性,确保驱动程序正确安装。 最后,用户可能需要了解昇腾910的算力优势,比如高达200+ TOPS的性能,适用于大规模训练任务。但在实际应用中,可能需要调整批量大小或优化数据流水线以充分利用硬件资源。 总结步骤大致是:环境准备→安装依赖→代码适配→运行测试→性能优化。需要确保每一步都按照昇腾的文档进行操作,并处理可能出现的兼容性和配置问题。</think>在华为昇腾Ascend 910 AI处理器上运行和测试PyTorch框架,需通过昇腾适配工具链实现。以下是具体步骤: --- ### 一、环境准备 1. **安装CANN工具包** 昇腾计算架构的基础软件栈,包含驱动、固件及运行库。需从昇腾社区下载对应Ascend 910版本的CANN包(如6.0.RC1),执行安装脚本并配置环境变量: ```bash source /usr/local/Ascend/ascend-toolkit/set_env.sh ``` [^3] 2. **部署PyTorch Adapter** 昇腾提供与PyTorch兼容的适配层,通过`torch_npu`库实现NPU设备支持: ```bash pip3 install torch==2.1.0 # 需与CANN版本匹配 pip3 install torch_npu==2.1.0 # 从昇腾仓库获取对应版本 ``` [^2] --- ### 二、代码适配 1. **设备声明修改** 将原有GPU代码中的`cuda`替换为`npu`: ```python device = torch.device("npu:0") # 替换cuda为npu tensor = tensor.to(device) ``` 2. **分布式训练配置** 使用昇腾的通信库`hccl`替代NCCL: ```python import torch.distributed as dist dist.init_process_group(backend='hccl', init_method='env://') ``` 3. **混合精度训练** 启用昇腾优化后的AMP模块: ```python from torch_npu.contrib import amp model, optimizer = amp.initialize(model, optimizer, opt_level="O2") ``` --- ### 三、运行与测试 1. **单卡训练示例** ```python import torch_npu model = Model().npu() # 模型加载到NPU data = data.to(torch.device("npu")) output = model(data) ``` 2. **多卡分布式训练** 使用昇腾的`torch_npu.npu.multiprocessing`启动多进程: ```python from torch_npu.npu.multiprocessing import spawn spawn(train_fn, nprocs=8, args=(args,)) ``` 3. **性能监测** 使用`Ascend PyTorch Profiler`分析NPU利用率: ```python with torch_npu.profiler.profile(activities=[torch_npu.profiler.ProfilerActivity.NPU]) as prof: model(inputs) print(prof.key_averages().table()) ``` [^1] --- ### 四、注意事项 1. **算力差异优化** Ascend 910的HBM内存带宽与GPU不同,需调整`batch_size`或使用梯度累积优化显存[^3]。 2. **算子兼容性** 部分PyTorch算子需替换为昇腾定制实现,例如`nn.LayerNorm`替换为`nn.NpuLayerNorm`。 3. **混合精度稳定性** 若出现数值溢出,需在`amp.initialize`中调整`loss_scale`参数。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值