本文主要是介绍【Atlas 200 DK】(四)ACL开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 1 ATC 模型转换
- 1.1 模型转换工具 ATC
- 1.2 MS转换流程
- 可视化转换模型
- AIPP详解
- 单算子转换
- 2 ACL 语言简介
- 3 ACL的总述/开发/编译
- 3.1 ACL总述
- 3.2 主要接口流程图
- 3.3 ACL Hello World
- 3.4 编译配置
- 3.5 编译运行
- 4 ACL运行资源管理
- 4.1 运行资源概述
- 4.2 Device
- 4.3 Context
- 4.4 Stream
- 5 ACL内存管理和数据传输
- 5.1 内存管理概述
- 5.2 内存管理接口
- 6 ACL数据预处理
- 6.1 数据预处理概述
- 6.2 基本原理
- 6.3 JPEG图片解码
- 约束
- 流程
- 函数原型
- 内存申请与释放
- 通道描述/通道创建与销毁
- 图片描述创建与销毁
- 图片解码主接口
- 6.4 视频解码
- VDEC基本原理
- VDEC通道创建与销毁 通道描述
- VDEC描述视频码流
- 回调函数
- 回调函数所在线程
- 回调函数触发条件
- sendFrame
- 6.5 抠图/缩放
- 7 ACL模型加载与执行
- 7.1 模型推理三大流程
- 7.2 模型资源准备相关接口
- 7.3 模型推理执行接口
- 8 ACL单算子加载与执行
- 8.1 单算子流程
- 8.2 普通算子调用
- 匹配模式 aclopExecute
- Handel模式
- 8.3 CBLAS类算子调用
- 9 ACL案例
- 9.1 执行流程
- 9.2 部署与运行
- 9.3 代码..
1 ATC 模型转换
1.1 模型转换工具 ATC
- Mindstudio 转换
- ATC转换
环境变量 vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH# 2021.1.13 new_
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux
export NPU_HOST_LIB=$HOME/Ascend/ascend-toolkit/latest/arm64-linux/acllib/lib64/stub# [ATC环境变量] xhh for set path 2021.1.12 200DK (20.1)
export install_path=/home/xhh/Ascend/ascend-toolkit/latest # 以安装用户为xhh
# export PATH=${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:${install_path}/toolkit/bin:$PATH
export PATH=/usr/local/python3.7.5/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:${install_path}/toolkit/bin:$PATH
export LD_LIBRARY_PATH=${install_path}/acllib/lib64:${install_path}/atc/lib64:$LD_LIBRARY_PATH
export PYTHONPATH=${install_path}/atc/python/site-packages:${install_path}/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/atc/python/site-packages/schedule_search.egg:${install_path}/toolkit/python/site-packages:${install_path}/pyACL/python/site-packages:$PYTHONPATH
export ASCEND_OPP_PATH=${install_path}/opp
1.2 MS转换流程
可视化转换模型
选择文件
- .prototxt && .caffmodel
- 格式选择Uint8时,可以进行DataPre-Processing(AIPP)
DataPre-Processing(AIPP)
atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50_aipp --soc_version=Ascend310 --insert_op_conf=caffe_model/aipp.cfg
AIPP详解
AIPP,把模型预处理,固话在模型.om文件中,即AIPP+Model = xx.om
AIPP,可以做一些DVPP无法操作过程
单算子转换
atc --singleop=out/op_models/op_list.json --soc_version=Ascend310 --output=out/op_modelsATC start working now, please wait for a moment.
ATC run success, welcome to the next use.
# op_list.json
[
{"op": "Cast","input_desc": [{"format": "ND","shape": [1000],"type": "float"}],"output_desc": [{"format": "ND","shape": [1000],"type": "float16"}],"attr" : [{"name": "truncate","type": "bool","value": false},{"name": "dst_type","type": "int","value": 1}]
},
{"op": "ArgMaxD","input_desc": [{"format": "ND","shape": [1000],"type": "float16"}],"output_desc"
这篇关于【Atlas 200 DK】(四)ACL开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!