
CANN环境配置基础命令NPU架构在Docker容器中使用NPU设备Ascend-SDK 的使用视频编解码、图片编解码、图像处理模型操作编译模型查看模型推理模型算子开发算子开发基础知识算子与核函数的联系和区别Kernel函数直调开发核函数的实现核函数的编译核函数的调用算子工程化开发算子原型设计创建适配AI框架的算子工程实现算子Host侧、Kernel侧、AI框架插件层的代码编译部署算子工程创建简易算子工程实现Host和Kernel侧代码编译部署简易工程算子调用算子工程实现的算子单算子API执行单算子模型执行基于算子二进制文件中的核函数执行算子调测工具环境配置卸载驱动:/usr/local/Ascend/driver/script/uninstall.sh卸载固件:/usr/local/Ascend/firmware/script/uninstall.sh卸载CANN必须先卸载 ops:再来卸载Toolkit包:升级CANN-toolkit如果需要同时升级固件和驱动,则必须按照此顺序升级:固件》驱动》CANN》无论是升级或安装CANN,都需要执行升级或安装的用户对安装目录有所有者权限,否则会安装或升级失败Ascend-hdk-chip_type-npu-firmware_.run --upgradeAscend-hdk-chip_type-npu-driver__linux-.run --upgrade`./Ascend-cann-toolkit_8.1.RC1_linux-aarch64.run --upgrade --install-for-all --chip=Ascend310B基础命令查询命令:npu-smi info查询系统占用:npu-smi info watch查询产品型号:npu-smi info -t product -i 0查询卡的信息:npu-smi info -t board -i 2查询卡的某个芯片信息:npu-smi info -t board -i 2 -c 0查看所有加速卡列表:npu-smi info -l查看支持的功能列表:npu-smi set -h查询硬件信息:lshw查询硬件信息:ascend-smi info 或 ascend-smi status使用lspci工具查询设备信息:lspci | grep Device然后根据查询到的PCI设备ID的确定具体产品型号NPU架构DMA搬入单元将数据从Global Memory搬运到Local Memory,Vector/Cube计算单元完成数据计算,并把计算结果写回Local Memory,DMA搬出单元把处理好的数据从Local Memory搬运回Global Memory。Ascend C算子编程是**SPMD(Single-Program Multiple-Data)**编程将需要处理的数据拆分多片并同时在多个计算核心运行,每个核用 block_idx 来标识当核函数被调用时,多个核都执行相同的核函数代码,具有相同的函数入参,并行执行区别C++函数执行时只调用一次核函数中运行的是算子类在Docker容器中使用NPU设备在容器中使用NPU设备必须将主机/dev目录下对应的设备节点挂载到容器中,有多少个加速卡就要挂载多少个类似/dev/davinci0节点。容器创建成功后,需在容器中设置对应的环境变量:source /usr/local/Ascend/ascend-toolkit/set_env.sh。驱动程序必须安装在宿主机(Host OS)。dockerrun-itd\--net=host\--hostname=docker-jack\--shm-size=100g\--privileged=true\--cap-add=SYS_NICE\--name=jack_da500i_run_env\--device=/dev/davinci0\--device=/dev/davinci_manager\--device=/dev/devmm_svm\--device=/dev/hisi_hdc\-v/usr/local/Ascend/driver:/usr/local/Ascend/driver:ro\-v/usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons\-v/usr/local/Ascend/driver:/usr/local/Ascend/driver:ro\-v/usr/local/dcmi:/usr/local/dcmi\-v/usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi\-v/etc/ascend_install.info:/etc/ascend_install.info\-v/workspace/da500i_test/jack:/workspace\-p59666:22\mec_build_env:da500i_ubuntu22.04.3Ascend-SDK 的使用昇腾AI处理器的版本:进入“CANN软件安装目录/compiler/data/platform_config”目录,".ini"文件的文件名即为昇腾AI处理器的版本Ascend C核函数是在一个核上的处理函数,所以只处理部分数据Host 侧使用的是 AscendCL API;NPU侧使用的是 AscendC类库设置落盘文件的保存路径:exportASCEND_CACHE_PATH=/repo/task001/cacheexportASCEND_WORK_PATH=/repo/task001/172.16.1.12_01_03接口的分类接口说明acl系统配置类接口aclrt运行时管理类的接口aclop单算子模型执行类的接口aclblasBLAS 类接口aclmdl模型推理类的接口acldvpp/aclvdec/aclvenc媒体数据处理 V1 版本的接口hi_mpi媒体数据处理 V2 版本的接口aclprofProfiling 配置类接口acltdt数据传输接口aclfv特征向量检索接口视频编解码、图片编解码、图像处理昇腾的这个解码器没有数据就会告警,所以得调用 aclrtProcessReport() 报告状态模型操作编译模型昇腾张量编译器(Ascend Tensor Compiler,简称ATC)是异构计算架构CANN体系下的模型转换工具,它可以将开源框架的网络模型以及Ascend IR定义的单算子描述文件(JSON格式)转换为AI处理器支持的.om格式离线模型。执行模型转换前,要在当前终端执行:source /usr/local/Ascend/ascend-toolkit/set_env.shatc--model