【2023 · CANN训练营第一季】应用开发(初级)第四章——模型推理

news2024/11/19 4:38:21

AscendCL运行资源管理

image.png

申请运行管理资源时,需按顺序依次申请: Device、Context、Stream,然后根据实际需求调用aclrtGetRunMode接口获取软件栈的运行模型(当同一个应用既支持在Host运行,也支持在Device运行时,在编程时需要就需要根据运行模式来判断后续的接口调用逻辑,这时需要提前获取运行模式。)。
调用aclrtSetDevice接口显式指定用于运算的Device。调用aclrtCreateContext接口显式创建Context,调用aclrtCreateStream接口显式创建Stream。
不显式创建Context和Stream,系统会使用默认Context、默认Stream该默认Context、默认Stream是在调用aclrtSetDevice接口时隐式创建的默认Context、默认Stream作为接口入参时,直接传NULL。不显式指定用于运算的Device。
调用aclrtCreateContext接口显式创建Context,调用aclrtCreateStream接口显式创建Stream。 系统在显式创建Context时,系统内部会调用acirtSetDevice接口指定运行的Device,Device ID通过aclrtCreateContext接口传入。

接口命名规则

image.png

Device管理

image.png
image.png
image.png
image.png

Context管理

image.png
image.png
image.png

Stream管理

原理介绍

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

image.png

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侧分别申请内存,并将数据在两端进行传输(复制)

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

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

相关文章

k8s进阶5——AppArmor、Seccomp、ImagePolicyWebhook

文章目录 一、AppArmor限制容器对资源访问1.1 实现步骤1.1.1 定义策略1.1.2 加载策略1.1.3 引用策略 2.2 案例 二、Seccomp 限制容器进程系统调用案例一:使用自定义策略案例二:使用容器运行时默认策略 三、动态准入控制Webhook3.1 ImagePolicyWebhook控制…

PowerPoint输出图片分辨率设置

最近想用ppt画几张图,但是输出的分辨率有点不够意思,然后就想着改一下输出分辨率,这里记录一下方便以后查阅。 PowerPoint输出图片分辨率设置

PS-调色

图片的储存格式 JPEG格式:日常作图存储格式、只有一个图层、通用图片格式、内存小画质高 RAW格式:CR2、CR3佳能、NEF尼康、ARW索尼、IIQ哈苏、RAF富士、RW2松下 PNG格式:图片透明格式、用于抠出来的素材用这个格式保存可以是透明底没有背景 …

Linux——操作系统详解

目录 一.操作系统的含义 1.操作系统是什么? 2.那么操作系统为什么要对软硬件资源进行管理呢?这样做的好处在哪里? 3.操作系统又是怎么进行管理的? 如何理解“先描述,再组织”? 二.总结: …

conda环境安装使用教程

conda,anaconda,miniconda傻傻分得清楚 Conda是一个开源的包管理系统和环境管理系统,可以用于安装、管理和卸载软件包以及创建和管理虚拟环境。Anaconda是一个基于Python的数据科学平台,包括Python解释器、Conda包管理器、Jupyte…

Linux:为xfs文件系统卷 设置磁盘配额

首先准备一个xfs文件系统的 卷 || 分区 可以是逻辑卷 ,也可以是普通卷,等等……但是他们的文件格式都要是xfs格式 我这里选择的是逻辑卷,普通卷也是一样的道理 开始前要有两个软件包需要安装 如果已安装直接看下一步 Linux:rpm…

一个人的旅行

说一下,两次的旅行。一次是三月底四月初,一次是四月底五月初。 我的第一站,帝都!!! 31号晚上八点半的高铁去北京,到达北京已经快十二点了。武局的G528次列车。 来到北京后,这是我第…

Android开发环境搭建[Java1.7+eclipse+sdk4.0](某高校物联网工程专业必看!)

Android开发环境搭建[Java1.7eclipsesdk4.0](某高校物联网工程专业必看!) 0. 前言1. 资料拷贝2. 配置环境变量2.1新建 Java_Home2.2 编辑Path情况1情况2 2.3 新建sdk环境变量 3. 验证安装3.1 验证java安装情况3.2 验证eclipse安装 4. 导入已有…

《OrangeS一个操作系统的实现》中printf无法打印数字问题

【问题现象】 《OrangeS一个操作系统的实现》 第9章 a目录下的代码编译运行后,所有printf打印数字的地方都有问题,如下图: HD size 始终为 0MB。 【问题分析】 通过断点,发现printf第61行: int printf(const char *…

【历史上的今天】4 月 28 日:人工智能理论之父出生;大众点评上线;苹果开设 iTunes 音乐商店

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 28 日,在 1994 年的今天,美国克林顿政府公布了一项价值数百万美元的计划,以帮助那些制造平板显示屏的美国公司维持生计…

Filter详解

Filter是什么: Filter表示过滤器,是Java Web三大组件之一(Servlet、Filter、Listener)。 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。 过滤器一般完成一些通用的操作,比如:权…

chatgpt赋能python:PythonSearchDialog:利用Python编写高效的搜索对话框

Python Search Dialog:利用Python编写高效的搜索对话框 在当今数字时代,大多数产品都提供搜索功能。而Python Search Dialog 则为产品提供了一个强大、高效的搜索对话框,使得用户能够更快速地、更准确地定位所需信息。 什么是Python Search…

实验三:熟悉常用的HBase操作

实验环境: (1)操作系统:Linux(建议 Ubuntu 16.04 或 Ubuntu 18.04)。 (2)Hadoop 版本:3.1.3。 (3)HBase 版本:2.2.2。 (4)JDK 版本:1.8。 (5)Java IDE: Eclipse。 实验内容与完成情况: (1)现有以下关系数据…

【数据挖掘与商务智能决策】第十七章 神经网络

前言 本人CSDN博客为“仿生程序员会梦见电子羊吗”,本文基于markdown本文书写,平台及软件为CSDN与Typora,文中图片存储地址为CSDN,故部分图片可能带有“CSDN仿生程序员会梦见电子羊吗”的水印,属于本人原创&#xff0c…

视频理解学习笔记(二):I3D and Kinetics Dataset

视频理解学习笔记(二):I3D and Kinetics Dataset 视频理解的三个流派(怎么处理时序)论文概览Kinetics Dataset模型详解将2D卷积网络扩张到3D(Inflating 2D ConvNets into 3D)如何用预训练好的2D…

2023年最新企业网盘排行榜出炉

随着云计算技术的不断发展,企业日常工作中大量的资料、文档等信息需要实现集中管理,此时企业网盘工具就应运而生。企业网盘是一种可用于企业内部管理、团队协作及文件共享的云存储平台,能够极大提高企业办公效率和安全性。 一、企业网盘的帮助…

[链表OJ题 8] 用栈实现队列,没想到你小子的基础这么好,这么快就做对了

目录 题目来源: 代码实现: 思路分析: 实现过程: 题目来源: 力扣 - 232.用栈实现队列 题目描述: 代码实现: 我们这里的栈已经写好了,如果对栈还不是很懂的可以看看这篇文章&am…

Postman接口工具之请求运行顺序及Workflow

作为一款接口调试利器, Postman的更新迭代速度很快, 不断加入了很多新的功能.使的api设计,测试,监控, Mock,以及团队协作更加方便. 修改执行顺序 在遇到有接口依赖的情况, 我们往往需要接口按顺序执行, 之前可以通过在一个请求的Pre-request Scripts中使用pm.sendRequest发送…

java基于springboot应急科研科技资源管理系统

应急资源管理系统的开发,主要有管理员和用户两个角色。 管理员角色计划设计的功能有密码信息管理、个人信息管理、用户信息管理、应急资源管理、留言信息管理等模块,管理员可以对用户、应急资源、留言等信息进行管理,可以选择添加、修改、删除…

ADC常用的十大滤波算法(C语言)

目录 ​编辑 ​一、限幅滤波法 二、中位值滤波法 三、算术平均滤波法 四、递推平均滤波法 五、中位值平均滤波法 六、限幅平均滤波法 七、一阶滞后滤波法 八、加权递推平均滤波法 九、消抖滤波法 十、限幅消抖滤波法 ​一、限幅滤波法 1、方法: 根据经验…