2024CANN昇腾用户手册_第1页
2024CANN昇腾用户手册_第2页
2024CANN昇腾用户手册_第3页
2024CANN昇腾用户手册_第4页
2024CANN昇腾用户手册_第5页
已阅读5页,还剩19页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024-05-文档版本01文档版本01(2024-05-快速上 目目录使用导 CANN是什 快速安装 实践:图片分类任 实践简 模型迁移与训 导出ONNX模 将ONNX模型转换为OM模 模型加载与推 总 11文档版本01文档版本01(2024-05-3CANN以Atlas0训练服务器(型号:)把手带您在昇腾设备上快速搭建CANN境,然后以一个简单的“图片分类”任务,让您快速了解基于CANN型进行推理的流程。快速安装5实践:图片分类任(AscendComputingLanguage),进行图形22昇文档版本01文档版本01(2024-05-2-1昇Atlas200AI加速模块、Atlas300I推理卡(型号:3000)、Atlas300I推理卡(型号:3010)Atlas500智能小站、Atlas200DK开200/500A2推Atlas500A2智能小站、Atlas200IDKA2开发者套件、Atlas200IA2加速模块Atlas推理系Ascend310PAtlas300IPro推理卡、Atlas300V视频解析卡、Atlas300V视频解析卡、Atlas300IDuo推理卡、Atlas200ISoCA1Atlas800IAtlas800IA2Atlas推理服Atlas500Pro智能边缘服务器支持插入Atlas300I推理卡(型号:3000)、Atlas300IPro推理卡、Atlas300V视频解析卡、Atlas300VPro视频解析卡使用Atlas800推理服务器(型号:3000)支持插入Atlas300I(型号:3000)、Atlas300I推理卡(型号:3010)、Atlas300IPro推理卡、Atlas300V视频解析卡、Atlas300VPro视频解析卡、Atlas300IDuo推理卡使用Atlas800推理服务器(型号:3010)支持插入Atlas300I(型号:3010)、Atlas300IPro推理卡、Atlas300V视频解析卡、Atlas300VPro视频解析卡、Atlas300IDuo推理卡使用Atlas训练系Atlas800训练服务器(型号:9000)、Atlas800训练服务器(型号:9010)、Atlas900PoD(型号:9000)、Atlas900TPoDLite、Atlas300T训练卡(型号9000)、Atlas300TPro训练卡(AtlasA2训练Atlas800TA2训练服务器、Atlas900A2PoDAtlas300TA2训练卡、Atlas200TA2Box16昇腾产品以昇腾AI处理器的PCle(PeripheralComponentInterconnectExpress)的工RCAtlas200AIAtlas200DK开发者套件、Atlas200ISoCA1、Atlas500A2EP推理产品:Atlas500小站、Atlas200AI加速模块、Atlas推理系列产品训练产品:Atlas训练系列产品、AtlasA2训练系列(如Atlas300I推理卡)相连接的X86服务器或ARM服务器,利用昇腾AI处理器提33CANN文档版本01文档版本01(2024-05-CANN异构计算架构CANN(ComputeArchitectureforNeuralNetworks)是华为针对AI场

3-1CANN昇腾计算服务层(AscendComputingServiceLayer):主要提供昇腾算子库AOL(AscendOperatorLibrary),通用神经网络(NeuralNetwork,NN)子加速计算;昇腾调优引擎AOE(AscendOptimizationEngine),通过算子调速度。同时提供AI框架适配器FrameworkAdaptor用于兼容TensorFlow、PyTorch昇腾计算编译层(AscendComputingCompilationLayer):昇腾计算编译层通过图编译器(GraphCompiler)将用户输入中间表达(Intermediate擎TBE(TensorBoostEngine)的自动调度机制,高效编译算子。昇腾计算执行层(AscendComputingExecutionLayer):负责模型和算子的执行,提供运行时库(Runtime)、图执行器(GraphExecutor)、数字视觉预处理(DigitalVisionPre-Processing,DVPP)、人工智能预处理(ArtificialIntelligencePre-Processing,AIPP)、华为集合通信库(HuaweiCollectiveCommunicationLibrary,HCCL)等功能单元。昇腾计算基础层(AscendComputingBaseLayer):主要为其上各层提供基础服务,如共享虚拟内存(SharedVirtualMemory,SVM)、设备虚拟化(VirtualMachine,VM)、主机-设备通信(HostDeviceCommunication,HDC)等。

ComputingLanguage),提供运行资源管理、内存管理、模型加载与执行、算CAN针对训练任务提供了完备的支持,针对Po、w等开源框架网络模型,CAN提供了模型迁移工具,支持将其快速迁移到昇腾平台。此外,CAN还提供了多种自动化调测工具,支持数据异常检测、融合异常检测、整网数据比对等,帮助开发者高效问题定位。关于CANN的更多介绍,可参见在线课程:异构计算架构CANN介绍44快速安装文档版本01文档版本01(2024-05-快速安装

图4-1CANN开发运行环境搭建流程本节以Atlas800训练服务器(型号:9010)为例,指导用户在昇腾AI处理器上快速搭

NetworkProcessingUnit,神经网络处理器单元,此处NPU指昇腾AI处理器)是否正以Atlas0训练服务器(型号:0)为例,执行lspci|gpd80命令检查U是否正常在位,如果服务器上有N路,回显N行含“”字段,则表示正常在位。3d:00.03d:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)3e:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)60:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)61:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)b1:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)b2:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)da:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)db:00.0Processingaccelerators:HuaweiTechnologiesCo.,Ltd.Deviced801(rev20)

表4-1步骤1以root用户登录待安装环境,将驱动和固件包上传至安装环境的任意目录(如“/groupadd-guseradd-ggroupadd-guseradd-gHwHiAiUser-d/home/HwHiAiUser-mHwHiAiUser-s步骤3chmod+xAscend-hdk-<soc_version>-npu-firmware_.220.run步骤5./Ascend-hdk-<soc_version>-npu-driver_23.0.3_linux-x86-64.run--full--install-for- Driverpackageinstalled 您还可以通过执行npu-smiinfo图4-2步骤6 FirmwareFirmwarepackageinstalledsuccessfully!Rebootnoworafterdriverinstallationfortheinstallation/upgradetotakeeffect步骤7 ----安装

驱动固件安装完成后,就可以进行CAN软件包的安装了,本节以在昇腾AI处理器上安装开发套件包为例,介绍CAN软件安装的步骤。CANN开发套件包包含开发应用程序所需的库文件、开发辅助工具等,安装之后开发者可进行应用及自定义算子的开发。需要注意CAN网络,并已配置软件源,以下以用户操作为例。步骤1apt-getinstall-ygccg++apt-getinstall-ygccg++makecmakezlib1gzlib1g-devopenssllibsqlite3-devlibssl-devlibffi-devunzippciutilsnet-toolslibblas-devgfortranlibblas3yuminstall-ygccgcc-c++makecmakeunzipzlib-devellibffi-developenssl-develpciutilsnet-toolssqlite-devellapack-develgcc-gfortranyuminstall-ygccgcc-c++makecmakeunzipzlib-devellibffi-developenssl-develpciutilsnet-toolssqlite-devellapack-develgcc-gfortran步骤2安装Pythonpip3--version件安装指南》中的“安装开发环境>安装依赖”根据对应的操作系统安装python。说明若您后续需要安装Poh0版本或者Poh0的AI框架,您的yn版本需要为y1、y7或y2,y环境仅支持安装Poh0。pip3installattrspip3installattrsnumpydecoratorsympycffipyyamlpathlib2psutilprotobufscipyrequestsabsl-pywheel步骤4安装CANNchmodchmod+xAscend-cann-toolkit_8.0.RC2.alpha001_linux-[INFO][INFO]Ascend-cann-toolkitinstallsource/usr/local/Ascend/ascend-安装source/usr/local/Ascend/ascend-

----腾提供的AscendExtensionforPyTorch插件。作步骤,其他场景请参考《AscendExtensionforPyTorch配置与安装》。#下载官方torchwget/whl/cpu/torch-2.1.0%2Bcpu-cp39-cp39-linux_x86_64.whl##下载官方torchwget/whl/cpu/torch-2.1.0%2Bcpu-cp39-cp39-linux_x86_64.whl#安装官方torch包pip3installtorch-2.1.0+cpu-cp39-cp39-步骤2安装pytorchgitclone-bv6.0.RC2.alpha001-pytorch2.1.0/ascend/pytorch.gitcdpytorchgitclone-bv6.0.RC2.alpha001-pytorch2.1.0/ascend/pytorch.gitcdpytorch#指定#指定Python版本编包方式,以Python3.9为例,其他Python版本请使用--python=3.8或--bashci/build.sh--##请用户根据实际情况更改命令中的torch_npupip3install--upgradedist/torch_npu-2.1.0.post3-cp9-cp39-步骤3python3-c"importtorch;import 步骤4安装PyTorch扩展库torchvisionpip3install ----55文档版本01文档版本01(2024-05-将ONNX模型转换为OM

后续操作以Atlas800训练服务器(型号:9010)为例进行操作说明,若您使用其他

ifnottorch.cuda.is_available()ifnottorch.cuda.is_available()andnotprint('usingCPU,thiswillbeslow')elifargs.distributed:elifargs.gpuisnotNoneandtorch.cuda.is_available():model=eliftorch.backends.mps.is_available():device=torch.device("mps")model=model.to(device)iftorch.cuda.is_available():ifargs.gpu:device=torch.device('cuda:{}'.format(args.gpu))device=eliftorch.backends.mps.is_available():device=torch.device("mps")device=defrun_validate(loader,ifargs.gpuisnotNoneandtorch.cuda.is_available():images=images.cuda(args.gpu,non_blocking=True)iftorch.backends.mps.is_available():images=images.to('mps')target=iftarget=target.cuda(args.gpu,defiftorch.cuda.is_available():device=torch.device("cuda")eliftorch.backends.mps.is_available():device=torch.device("mps")device=ififnotprint('usingCPU,thiswillbeslow')elifargs.distributed:elifargs.gpuisnotNoneandtorch.cuda.is_available():model=#eliftorch.backends.mps.is_available(): device=torch.device("mps") model=iftorch.cuda.is_available():ifargs.gpu:device=torch.device('cuda:{}'.format(args.gpu))device=#elif device=device=defrun_validate(loader,ifargs.gpuisnotNoneandtorch.cuda.is_available():images=images.cuda(args.gpu,non_blocking=True) if images= target=iftarget=target.cuda(args.gpu,defiftorch.cuda.is_available():device=torch.device("cuda") eliftorch.backends.mps.is_available(): device=torch.device("mps")device=将定制好的main.py文件上传至服务器,例如上传到“/home/sample可从t官方网站h.image-net.ogimportimportfromtorch_npu.npuimportimportfromtorch_npu.npuimportimport步骤4python3python3main.py/home/sample/data/resnet50/imagenet--batch-size128--lr0.1--epochs1--archresnet50--world-size1--rank0--workers40--momentum0.9--weight-decay1e-4--gpu0--lr--epochs--arch--workers--weight-decay--gpu:DeviceID,这里参数名称仍为gpu,但迁移完成后实际训练设备已在代码图5-1获得权重文件----导出ONNX.pth.tar文件导出ONNX步骤1创建转换脚本,例如命名为“pth2onnx.py”,和ResNet50网络训练脚本main.py放置fromfromcollectionsimportOrderedDictimporttorchimporttorch_npuimportimporttorchvision.modelsas#如果.pth.tar文件保存时节点名加了前缀或后缀,则通过遍历删除。此处以遍历删除前缀"module."为例。若无defproc_nodes_module(checkpoint,new_state_dict=forkey,valueincheckpoint[AttrName].items():ifkey=="module.features.0.0.weight":#if(key[0:7]==name=name=new_state_dict[name]=valuereturnnew_state_dictdefdef#模型定义来自于torchvision,样例生成的模型文件是基于resnet50checkpoint=torch.load("./checkpoint.pth.tar",map_location=torch.device('cpu'))#根据实际文件名称checkpoint['state_dict']=model=models.resnet50(pretrained=False)input_names=["actual_input_1"]output_names=["output1"]dummy_input=torch.randn(1,3,224,torch.onnx.export(model,dummy_input,"resnet50.onnx",input_names=input_names,output_names=output_names,opset_version=11) #输出文件名根据实际情况修改ifname=="main":步骤2python3 ----将ONNX模型转换为OM将5.3导出ONNX模型导出的“resnet50.onnx”模型,用CANN提供的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论