CANN2022训练营第一季,学习笔记——初级应用开发3

2024-03-19 16:40

本文主要是介绍CANN2022训练营第一季,学习笔记——初级应用开发3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 CANN2022训练营第一季,学习笔记(含打卡截图)——初级应用开发3

学习笔记

模型转换工具(ATC工具)
将TensorFlow/Caffe等开源网络的模型通过ATC工具转为昇腾AI处理器支持格式的模型(Model.om file)

流程:开始→环境准备(获取ATC工具、设置环境变量)→模型准备→ATC模型转换(可以根据需要进行配置)→结束

ACL简介(见第二节课内容)

用于加速推理的应用开发框架(不是新手训练用的)。其向上可以供第三方框架、开发第三方lib库调用,向下可以调用GE执行器、运行管理器等

一、开发图片分类运用学习

ACL主要接口调用流程(实验ACL开发应用的基本流程):
ACL初始化→运行管理资源申请→算子调用/模型推理(算子调用:生成算子文件、加载算子文件、执行算子 或者 模型推理:模型加载、模型执行、模型卸载)
→运行管理资源释放→ACL去初始化

 

课程内容

1、ACL运行资源管理

申请运行资源
注意!!要按顺序依次申请(就像逻辑运行一样要有顺序)
顺序为:Device、Context、Stream,然后根据需要调用aclrtGetRunMode接口获取软件栈的运行模型(当同一个应用既支持在Host运行也支持在Device运行时,在编程时就需要根据运行模式来判断后续的接口调用逻辑,这时需要提前获取运行模式)

运行管理资源释放

注意!!释放和申请的顺序相反(类比C++中多个构造函数和多个析构函数的调用顺序)!!
顺序为:Stream、Context、Device

  • Device管理相关接口
    aclrtGetDeviceCount接口:获取可用的Device数量,同步接口(即同步等待接口,须接口完成动作返回后才可继续向下执行。
    aclrtGetRunMode接口:获取当前昇腾软件栈的运行模式,同步接口
    aclrtSetDevice接口:制定用于运算的Device,同时隐式创建默认Context,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。同步接口。
    aclrtResetDevice接口:复位当前运算的Device,释放Device上的资源,包括默认Context、 默认Stream以及默认Context下创建的所有Stream, 同步接口。若默认Context或默认Stream下的任务还未完成,系统会等待任务完成后再释放。
    aclrtGetDevice接口:获取当前正在使用的Device的ID。同步接口。
  • Context管理相关接口
    aclrtCreateContext接口:显式创建一个 Context,该Context中包含2个Stream, 1个默认Stream和1个执行内部同步的Stream,同步接口。
    aclrtDestroyContext接口:销毁一个Context,释放Context的资源,只能销毁通过aclrtCreateContext接口显式创建的Context。同步接口。
    aclrtSetCurrentContext接口:设置线程的Context。同步接口。
    aclrtGetCurrentContext接口:获取线程的Context。同步接口。
  • Stream管理相关接口
    aclrtCreateStream接口:创建一个Stream。同步接口。
    aclrtDestroyStream接口:销毁指定Stream,只能销毁通过aclrtCreateStream接口创建的Stream。同步接口。

未完待续……

2、ACL内存管理&数据传送

3、ACL数据预处理

4、ACL模型加载与执行

5、ACL单算子加载与执行

6、ACL案例讲解

二、编译及运行应用

步骤:①准备模型 ②准备数据 ③编译程序 ④运行程序

三、获取运行日志
重点:日志目录默认为:“CANN软件安装目录/ascend/log”,应用运行之后,可以在该目录下查阅日志
日志中的关键信息:

 

这篇关于CANN2022训练营第一季,学习笔记——初级应用开发3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/826628

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex