当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

电子科技大学:《嵌入式人工智能 Embedded Artificial Intelligence》课程教学资源(课件讲稿)第6章 嵌入式AI应用开发

资源类别:文库,文档格式:PDF,文档页数:39,文件大小:2.48MB,团购合买
 AscendCL开发概述  人脸识别应用开发
点击下载完整版文档(PDF)

第6章嵌入式AI应用开发 ◆AscendCL开发概述 ◆人脸识别应用开发

第6章 嵌入式AI应用开发  AscendCL开发概述  人脸识别应用开发

ACL开发概述

ACL开发概述

ACL开发概述 ACL概述 AscendCL (Ascend Computing Language) 基本概念 ● ACL是一套用于在异腾平台上开发深度神经网络推理应用的C语言 开发流程 API库; ●提供Device管理、Context管理、Stream管理、[ 内存管理、模型加载 代码逻辑 与执行、算子加载与执行、媒体数据处理等AP; ●能够实现在异腾CANN平台上进行深度学习推理计算、 图形图像预处 理、单算子加速计算等能力。 可以通过第三方框架调用AscendCL接口,以便使用昇腾AI处理器的 计算能力;可以使用AscendCL封装实现第三方lib库,以便提供昇腾AI 处理器的运行管理、资源管理能力

ACL开发概述 AscendCL(Ascend Computing Language)  ACL是一套用于在昇腾平台上开发深度神经网络推理应用的C语言 API库;  提供Device管理、Context管理、Stream管理、内存管理、模型加载 与执行、算子加载与执行、媒体数据处理等API;  能够实现在昇腾CANN平台上进行深度学习推理计算、图形图像预处 理、单算子加速计算等能力。 可以通过第三方框架调用AscendCL接口,以便使用昇腾AI处理器的 计算能力;可以使用AscendCL封装实现第三方lib库,以便提供昇腾AI 处理器的运行管理、资源管理能力。 ACL概述 基本概念 开发流程 代码逻辑

ACL开发概述 ACL概述 应用程序(APPs) 基本概念 在运行应用时, 第三方框架 开发第三方b库 开发流程 AscendCL调用GE执 行器提供的接口实现 I CANN AscendCL Ascend Computing Language 代码逻辑 模型和算子的加载与 楼型加鞋 镜子能力开放 Runtime开被 执行、调用运行管理 器的接口实现Device 运行管理器(Runtime)】 煤体预处理(围片解码/裁鲸/缩放 等) 管理/Context管理 /Stream管理/内存管 任务调度管理器 理等。 驱动 计算资源(Al Core/AI CPU)

ACL开发概述 在运行应用时, AscendCL调用GE执 行器提供的接口实现 模型和算子的加载与 执行、调用运行管理 器的接口实现Device 管 理 /Context 管 理 /Stream管理/内存管 理等。 ACL概述 基本概念 开发流程 代码逻辑

ACL开发概述 ACL概述 基本概念 基本概念 开发流程 (1)Host Host指与Device相连接的X86服务器、ARM服务器,会利用Device 代码逻辑 提供的NN(Neural--Network)计算能力,完成业务。 (2) Device Device指安装了昇腾AI处理器的硬件设备,利用PCle接口与Host 侧连接,为Host提供NN计算能力。若存在多个Device,多个Device之 间的内存资源不能共享

ACL开发概述 基本概念 (1)Host Host指与Device相连接的X86服务器、ARM服务器,会利用Device 提供的NN(Neural-Network )计算能力,完成业务。 (2)Device Device指安装了昇腾AI处理器的硬件设备,利用PCIe接口与Host 侧连接,为Host提供NN计算能力。若存在多个Device,多个Device之 间的内存资源不能共享。 基本概念 ACL概述 开发流程 代码逻辑

ACL开发概述 ACL概述 基本概念 基本概念 开发流程 (3)进程/线程 实践中提及的进程、线程,若无特别注明,则表示Host上的进程 代码逻辑 线程。 (4)同步/异步 实践中提及的同步、异步是站在调用者和执行者的角度,在当前场 景下,若在Host调用接口后不等待Device执行完成再返回,则表示 Host的调度是异步的;若在Host调用接口后需等待Device执行完成再 返回,则表示Host的调度是同步的

ACL开发概述 基本概念 (3)进程/线程 实践中提及的进程、线程,若无特别注明,则表示Host上的进程、 线程。 (4)同步/异步 实践中提及的同步、异步是站在调用者和执行者的角度,在当前场 景下,若在Host调用接口后不等待Device执行完成再返回,则表示 Host的调度是异步的;若在Host调用接口后需等待Device执行完成再 返回,则表示Host的调度是同步的。 基本概念 ACL概述 开发流程 代码逻辑

ACL开发概述 ACL概述 基本概念 基本概念 今 开发流程 (5) Context Context作为一个容器,管理了所有对象(包括Stream、 Event、 代码逻辑 设备内存等)的生命周期。 ●不同Context的Stream、不同Context的Event是完全隔离的,无法建 立同步等待关系。 ● 多线程编程场景下,每切换一个线程,都要为该线程指定当前 Context,,否则无法获取任何其他运行资源

ACL开发概述 基本概念 (5)Context Context作为一个容器,管理了所有对象(包括Stream、Event、 设备内存等)的生命周期。  不同Context的Stream、不同Context的Event是完全隔离的,无法建 立同步等待关系。  多线程编程场景下,每切换一个线程,都要为该线程指定当前 Context,否则无法获取任何其他运行资源。 基本概念 ACL概述 开发流程 代码逻辑

ACL开发概述 ACL概述 基本概念 基本概念 (6)Stream 开发流程 Stream用于维护一些异步操作的执行顺序,确保按照应用程序中 的代码调用顺序在Device上执行。 代码逻辑 基于Stream的kernel执行和数据传输能够实现Host运算操作、Host 与Device间的数据传输、Device内的运算并行。 ● 同步接口在调用的时候,当前线程会阻塞在调用点等待接口执行结 束返回。 ●异步接口在调用之后会立即返回,此类接口在调用的时候要指定一 个Stream作为执行队列,以保证多个异步调用按照调用顺序执行

ACL开发概述 基本概念 (6)Stream Stream用于维护一些异步操作的执行顺序,确保按照应用程序中 的代码调用顺序在Device上执行。  基于Stream的kernel执行和数据传输能够实现Host运算操作、Host 与Device间的数据传输、Device内的运算并行。  同步接口在调用的时候,当前线程会阻塞在调用点等待接口执行结 束返回。  异步接口在调用之后会立即返回,此类接口在调用的时候要指定一 个Stream作为执行队列,以保证多个异步调用按照调用顺序执行。 基本概念 ACL概述 开发流程 代码逻辑

ACL开发概述 ACL概述 ACL及进程、线程、 Device、 Context、Stream之间的关系 基本概念 ·Context在Device下,一个Context--定属于 ·用户指定计算设备,生命周期源于首次调 用aclrtSetDevice接口。 个惟-的Device. Device. ·Contexts分隐式创建和显式创建。 ·每次调用aclrtSetDevice接口,系统会进 开发流程 行引用i计数加1;调用aclrtResetdevice ·隐式创建的Context(即默认Context),生命 接口,系统会进行引用计数减1。 周期始于调用aclrtSetDevice接口,终结于调用 Context aclrtResetDevice接口使引用计数为零时。隐式 ·当引用i计数减为零时,在本进程中Device 代码逻辑 上的资源不可用。 Context只会被创建一次,调用aclrtSetDevice 接口重复指定同一个Device,只增加隐式创建的 Context的引用i计数。 Stream ·显式创健的Context,生命周期始于调用 aclrtCreateContext接口,终结于调用 aclrtDestroyContexti接口。 ·Device.上的执行流,在同一个stream中 ·Context与用户线程绑定,一个用户线程对应一 has成 的任务执行严格保序。 个Context,可调用aclrtSetCurrentContext Kernel ·Stream分隐式创建和显式创健 接口绑定。隐式创建的Context不需要调用 ·每个Context都会包含一个默认Stream, acirtSetCurrentContext接口指定。 这个属于隐式创键,隐式创键的stream生 ·进程内的Context是共享的,可以通过 命周期同归属的Context.。 aclrtSetCurrentContexti进行切换。 ·用户可以显式创建stream,显式创建的 stream生命周期始于调用 aclrtCreateStream,终结于调用 ·Device.上真正的执行体,从属于 aclrtDestroyStream接口。显式创建的 Stream. stream归属的Context被销毁或生命周期 ·用户编程不感知。 结束后,会影响该stream的使用,虽然此 时stream设有被销毁,但不可再用

ACL开发概述 ACL及进程、线程、Device、Context、Stream之间的关系 基本概念 ACL概述 开发流程 代码逻辑

ACL开发概述 ACL概述 线程、Context、.Stream之间的关系 基本概念 今 开发流程 一个用户线程一定会绑定一个Context,所有Device的资源使用或调 度,都必须基于Context。 代码逻辑 一个线程中当前会有一个唯一的Context在用,Context中已经关联 了本线程要使用的Device。. ● 一个线程中可以创建多个Stream,不同的Stream上计算任务是可以 并行执行。 ●多线程的调度依赖于运行应用的操作系统调度,多Stream在Device 侧的调度,由Device.上调度组件进行调度

ACL开发概述 线程、Context、Stream 之间的关系  一个用户线程一定会绑定一个Context,所有Device的资源使用或调 度,都必须基于Context。  一个线程中当前会有一个唯一的Context在用,Context中已经关联 了本线程要使用的Device。  一个线程中可以创建多个Stream,不同的Stream上计算任务是可以 并行执行。  多线程的调度依赖于运行应用的操作系统调度,多Stream在Device 侧的调度,由Device上调度组件进行调度。 基本概念 ACL概述 开发流程 代码逻辑

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共39页,可试读13页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有