昇腾AI进阶课
应用开发深入讲解
异构计算架构昇腾CANN
- AI 异构计算架构CANN 5.0
- AscendCL应用开发
• 模型转换 | ACT工具完成模型转换
• 代码开发 | 使用AscendCL接口完成代码开发
• 编译执行 | 在运行环境上将应用落地
模型转换
- 将开源框架的网络模型转换为昇腾处理器支持的离线模型
• 开源模型经过Parser解析,转换为IR Graph经过图准备,图拆分,图优化,图编译转换为离线模型
• 环境准备-模型准备-ATC模型转换
- AIPP 人工智能预处理(在AI Core上)
• 静态AIPP 与 动态AIPP
• 尺寸转换
• Crop/Padding 裁切与采用 改变图片格式
• 色域转换
• YUV分量存储(明亮度 + 色彩)
• 轻量化处理图片
• 归一化处理
• 通过减均值与乘系数操作完成
- 根据实际场景配置AIPP配置文件的更改
• --model 指定原始模型--framework 指定原始网络模型架构-- input_format 输入数据格式--input_shape 输入输出格式--output 输入模型的路径与文件名--insert_op_conf 插入算子的配置文件路径&文件名
模型离线推理
- Host & Device内存管理
•
• Host端使用专用的 aclrtMallocHost 与 aclrtFreeGost 与接口
• Device端使用 aclrtMemMallocPolicy 与 aclrtFree 接口
• 初始化接口 aclrtMemset
• 数据传输接口 aclrtMemcpy
• 实时获取Device内存接口 aclrtGetMemInfo
- 模型加载
• 多种方式加载
• 从om模型文件或内存加载
• 由用户自行管理内存或由AscendCL管理内存
- 模型推理-输入输出准备
• 数据使用aclmdlDesc类型描述数据基本信息
• 使用aclDataBuffer类型来描述每个输入/输出的地址内存
• 使用aclmdlDataset类型描述模型的输入/输出数据集
数据预处理(DVPP)
- DVPP
• VDEC视频解码、JPEG图片解码、jpeg图片编码
• 接口
• acldvppMalloc 内存申请与释放
• acldvppCreateChannelDesc acldvppDestroyChannelDesc通道创建与释放
• acldvppCreatePicDesc acldvppDestroyPicDesc图片描述信息创建与销毁
• acldvppSetPicDesc 图片描述参数设置
- JPEGD图片解码
• 调用流程
•
- VPC视觉预处理
• 抠图,缩放,叠加,拼接,格式转换,图形灰度化
•
样例讲解
- 日志文件
• 默认目录为$Home/ascend/log
• 日志格式
• lever:日志级别ModuleName:日志模块名称PID:应用进程IDPName:应用进程名字DateTimeMS:日志打印时间FileName:LineNumber:日志行号LogContent:各模块具体内容信息
- 样例开发步骤
• 结构设计-原始模型与输入输出分析-样例编写-样例运行