【2023 · CANN训练营第一季】应用开发深入讲解——第二章 模型推理

news2024/11/17 9:58:15

学习目标

在这里插入图片描述

学习资源

内存管理

在线课程
文档

模型推理

文档

第1节 AscendCL运行资源管理

运行资源管理概述

在这里插入图片描述
申请运行管理资源时,需按顺序依次申请: Device 、 Context 、 Stream ,然后根据实际需求调用 aclrtGetRunMode 接口获取软件栈的运行模型(当同一个应用既支持在 Host 运行,也支持在 Device 运行时,在编程时需要就需要根据运行模式来判断后续的接口调用逻辑,这时需要提前获取运行模式。)。
·调用 aclrtSetDevice 接口显式指定用于运算的 Device 。

指定用于计算的 Device
aclrtSetDevice
■调用 aclrtCreateContext 接口显式创建 Context ,调用 aclrtCreateStream 接口显式创建 Stream 。
.不显式创建 Context 和 Stream ,系统会使用默认 Context 、默认 Stream ,该默认 Context 、默认 Stream 是在调用 aclrtSetDevice 接口时隐式创建的。默认 Context 、默认 Stream 作为接口入参时,直接传 NULL 。

是否显式创建
Context 和 Stream ?
创建 Context 和 Stream
acirtCreateContext
aclrtCreateStream
.不显式指定用于运算的 Device 。
调用 aclrtCreateContext 接口显式创建 Context ,调用 aclrtCreateStream 接口显式创建 Stream 。系统在显式创建 Context 时,系统内部会调用 aclrtSetDevice 接口指定运行的 Device , Device ID 通过 aclrtCreateContext 接口传入。

在这里插入图片描述

接口命名规则

在这里插入图片描述

Device 管理

  • 获取当前设备数量

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
释放device资源,要注意释放顺序
在这里插入图片描述
在这里插入图片描述
Context 管理
在这里插入图片描述
在这里插入图片描述

Stream管理

·原理介绍:
>在 ACL 中, Stream 是一个任务队列,应用程序通过 Stream 来管理任务的并行,一个 Stream 内部的任务保序执行,即 Stream 根据发送过来的任务依次执行;不同 Stream 中的任务并行执行。一个默认 Context 下会挂一个默认 Stream ,如果不显式创建 Stream ,可使用默认 Stream 。

创建
在这里插入图片描述
在这里插入图片描述

第2节 AscendCL 内存管理&数据传输

. ACL 是有一套自己的内存管理逻辑的,任何用于参与 ACL 运算的内存( Device 侧)都不能是 C / C ++原生内存管理接口( Malloc 、 new )申请的内存,而是调用 ACL 提供的内存管理专用接口
.回忆一下: ACL 在设备的管理上,是要区分 Host 和 Device 的(还记得 aclrtGetRunMode 接口吗?),所有的加速计算最终都是要在 Device 上执行的,也就是说所有的数据(数据集、模型等)最终都会在 Device 侧参与计算,这里分两种场景:

Host & Device 分设,如Atlas300场景(虽然在同一台机器上,但是是通过 PCle 接口交互的,本质上是两个设备),此时数据、模型都在 host 侧加载,然后将这些数据传输到 device 侧进行计算,计算完毕后将结果回传至 host 侧进行使用
Host & Device 合设,如Atlas200Dk场景,此时不区分 Host 与 Device ,只有 Device ,数据、模型都在 device 上直接加载、计算、使用
·本模块就是要跟大家分享如何在 Host 侧和 Device 侧分别申请内存,并将数据在两端进行传输(复制)。

Host侧内存的申请&释放
在这里插入图片描述
Device侧内存的申请及释放
在这里插入图片描述
在这里插入图片描述
异步内存初始化
在这里插入图片描述

AscendCL 模型加载与执行

模型推理三大流程
在这里插入图片描述
模型推理整体流程
在这里插入图片描述
准备推理输入、输出数据
在这里插入图片描述

自动管理内存场景
在这里插入图片描述
手动管理内存场景
在这里插入图片描述
在这里插入图片描述
模型卸载
在这里插入图片描述
获取模型描述信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模型推理执行接口——同步
在这里插入图片描述
模型推理执行接口——异步
在这里插入图片描述

案例演示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/504521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑马Redis实战项目——黑马点评笔记06 | 好友关注

黑马Redis实战项目——黑马点评笔记06 | 好友关注 1、关注和取关2、共同关注2.1 查看他人主页2.2 查询共同关注A 改造关注和取关功能B 求交集 3、关注推送3.1 Feed 流分析3.1.1、拉模式(读扩散)3.1.2、推模式(写扩散)3.1.3、推拉结…

C++ JPEG编码

依据上一篇的JPEG编码所得到的RGB信息,我们可以重新对RGB图片进行编码,也可对其他图片如BMP所得到的RGB信息进行编码,来得到*.jpg文件,注意我这里实现的JPEG编码不知道为啥编码出来的文件比原来大了好多。 还有要注意的地方,下面会…

【计算机三级网络技术】 第六篇 交换机及其配置

文章目录 IPS(入侵防护系统)相关知识点蓝牙服务器技术DNS 服务器WWW 服务器FTP 服务器邮件(Winmail 邮件服务器)生成树协议IEEEVLAN 标识的描述DHCP 服务器 IPS(入侵防护系统)相关知识点 1、入侵防护系统&…

迅为i.MX6ULL开发板生成 KEY 文件,并安装

使用“ssh-keygen” 生成个四个 key 文件“ssh_host_rsa_key” “ssh_host_dsa_key” “ssh_host_ecdsa_key” 和“ssh_host_ed25519_key” 。 1 在虚拟机 Ubuntu 控制台, “ /home/ssh/openssh-4.6p1” 目录下, 使用命 令“ssh-keygen -t rsa -f ssh…

帮助客户实现自助服务,企业可以打造产品知识库来解决

随着科技的不断发展,越来越多的企业开始将自助服务作为一种解决客户问题的方式。自助服务不仅可以提高客户满意度,还可以减少企业的工作量和成本。为了帮助客户实现自助服务,企业可以打造产品知识库来解决客户问题。本文将介绍产品知识库的定…

shell脚本----函数

文章目录 一、函数的定义1.1 shell函数:1.2函数如何定义 二、函数的返回值三、函数的传参四、函数变量的作用范围五、函数的递归六、函数库 一、函数的定义 1.1 shell函数: 使用函数可以避免代码重复使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更…

数字农业农村解决方案(ppt可编辑)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 数字农业农村发展现状 数据基础薄弱:数据资源分散,天空地一体化数据获取能力弱;资源数字化、产业数字化水平不高,部分农业数…

“玲珑”编解码融合架构助力视频多元化需求

随着近年来 AI 技术的兴起,视频监控、汽车、智能家居、移动设备及数据中心等对高清视频处理有了越来越高的要求。安谋科技全新视频处理器——“玲珑”V6/V8,针对主流市场的视频流媒体技术进行了大量投入,通过一系列智能权衡实现了极大优化&am…

常用数据处理方式

文章目录 缺失值处理删除法填充法基于统计学变量填充基于插值填充基于模型填充基于预测填充 不处理 异常值处理基于统计分析的方法基于聚类的方法基于树的方法基于预测的方法 数据重采样标准化min-max标准化(归一化)z-score标准化(规范化&…

基于Web的电竞赛事管理系统的设计与实现(论文+源码)_kaic

摘要 迅猛发展并日益成熟的网络已经彻底的影响了我们的方方面面。人们也确实真切的体会到了网络带给我们的便捷。本网站的设计理念在于作为一个大学生电竞赛事联盟推广网,就是能够尽可能详细地展示、介绍电竞赛事联盟资讯信息,播放视频,同时…

WhatsApp 营销:获得更多潜在客户和销售(一)

你需要了解客户的世界观才能进行有效的营销,你应该投入时间和精力来学习和实施你的业务WhatsApp营销 -因为你的客户出现在WhatsApp上,他们希望在那里联系,而不是在他们讨厌被打断的电子邮件或电话中。 SaleSmartly(ss客服&#x…

基于磁盘的Kafka为什么这么快

基于磁盘的Kafka为什么这么快 原创 Wyman 大数据技术架构 2019-05-23 18:04 Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。Kafka虽然是基于磁盘做的数据存储,但却具有…

代码随想录算法训练营day27 | 39. 组合总和,40.组合总和II,131.分割回文串

代码随想录算法训练营day27 | 39. 组合总和,40.组合总和II,131.分割回文串 39. 组合总和解法一:回溯解法二:回溯排序剪枝 40.组合总和II解法一:回溯(使用used标记数组)解法一:回溯&a…

1688获取商品api接口

作为一名技术爱好者,我们总会遇到各种各样的技术问题,需要寻找合适的技术解决方案。而在互联网时代,我们可以快速通过搜索引擎获取丰富的技术资源和解决方案。然而,在不同的技术分享中,我们常常会遇到质量参差不齐的文…

虹科方案 | 视频和广播专业人士的存储和存档解决方案

虹科HK & Overland-Tandberg 为所有视频和广播工作流阶段提供全面的数字媒体存储解决方案组合,包括创建、复制、传输、存储、保护和归档数据和内容。 一、后期制作工作流程 后期制作是一个多任务过程,通过掌握处理原始视频和声音元素。 这个过程的前…

c++ 11标准模板(STL) std::vector (十)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…

adb bugreport 与adb shell getprop 详解

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c; 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想当开发的测试&#xff0c;不是一个好…

低代码行业未来如何?大家都真的看好低代码开发吗?

低代码行业未来如何&#xff1f;大家都真的看好低代码开发吗&#xff1f; 是否一定需要开发人员&#xff1f;低代码和无代码平台会取代传统编程吗&#xff1f;低代码/无代码真的是未来吗&#xff1f; 无疑是需要且重要的。今天就来解答为什么低/零代码工具越来越受欢迎&#xf…

第1章计算机系统漫游

文章目录 1、信息就是位上下文2、程序被其他程序翻译成不同的格式3、了解编译系统如何工作的益处4、处理器读并解释储存在存储器中的指令4.1 系统的硬件组成4.2 执行 hello 程序 5、高速缓存6、形成层次结构的存储设备7、操作系统管理硬件7.1 进程7.2 线程7.3 虚拟存储器7.4 文…

领英退出中国,谷歌Bard集成进安卓,陆奇最新演讲,HuggingFace网传遭禁|今日科技圈要闻

夕小瑶科技说 原创 作者 | 智商掉了一地、兔子酱 AI 新闻速递来咯&#xff01;搬好小板凳&#xff0c;一起了解近期发生了什么新鲜事~ 领英职场退出中国 领英是一个专注于职业发展、招聘和营销等方面的社交平台。Linkdein 官方公众号发布公告称&#xff0c;由于面临日趋激烈的…