1.在AscendCL中,关于媒体数据处理V1版本中的内存申请/释放接口acldvppMalloc/acldvppFree:
该接口主要用于分配内存给Device侧媒体数据处理时使用,申请的大页内存满足数据处理的要求(例如,内存首地址128字节对齐)。
调用该接口申请内存后,如果内存不使用,需及时调用acldvppFree接口释放内存
频繁调用acldvppMalloc接口申请内存、调用acldvppFree接口释放内存,对性能有影响。
调用该接口申请大页内存失败,仅表示系统内的大页内存不够。
2.在AscendCL中,关于媒体数据处理中的JPEG图片解码,其支持的场景包括:
只对图片解码,不会改变图片分辨率,因此输出与输入的图片分辨率保持一致
在解码图片时,支持对图片进行旋转
在解码图片时,支持按源图片格式解码
3.关于DVPP:DVPP是N腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力
JPEGD的硬件约束只支持对顺序式编码的图片进行解码
由于DVPP硬件上的约束,DVPP处理后的图片格式有可能还需要AIPP处理之后,再送入模型推理
4.数字视觉预处理包含的功能:PNGD VENC JPEGD
5.Device侧内存申请时,ACL_MEM_MALLOC_HUGE_ONLY策略为仅申请大页内存
6.关于资源复用,从性能角度,内存复用是为了减少拷贝
7.将Host数据拷贝到DVPP侧时,aclrtMemcpy函数的拷贝类型中应该选择ACL_MEMCPY_HOST_TO_DEVICE
8.acl定义的接口:
aclrtResetDevice aclFinalize aclrtSetDevice
9.在编写模型离线推理执行的代码时需要:
给模型准备输入输出
执行推理过程
把模型加载进内存
10.VPC(媒体数据处理V1版本)的功能:
抠图叠加拼接
11.在AscendCL中,关于媒体数据处理V1版本接口:
媒体数据处理V1版本与媒体数据处理V2版本的接口功能范围相同,都是描述处理媒体数据的接口,用于实现抠图、图片缩放、格式转换等功能,但两套接口不能混用。
视频数据处理的接口,例如acldvppVpcResizeAsync,从接口名称上可以看出,该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。
调用异步接口后,不能马上释放资源,需调用同步等待接口(例如,aclrtSynchronizeStream)确保Device侧任务执行完成后才能释放。
12.在媒体数据处理V1版本中使用JPEGD功能时会有一些约束条件:
JPEGD仅对图片解码,不改变分辨率
JPEGD在解码图片时,支持按源图片格式解码
JPEGD在对图片解码时,支持对图片进行旋转
13.关于运行管理资源:
您需要按顺序依次申请如下资源:Device、Context、Stream,确保可以使用这些资源执行运算、管理任务。
显式创建Context和Stream时,需调用aclrtDestroyStream接口释放Stream,再调用aclrtDestroyContext接口释放Context。
有运行管理资源的申请,自然也有对应的释放接口,需关注资源的释放顺序。
创建Context、Stream的方式分为隐式创建和显式创建,推荐显式,适合大型、复杂交互逻辑的应用,且便于提高程序的可读性、可维护性
14.Device:Device指安装了N腾AI处理器的硬件设备,利用PCIe接口与Host侧连接,为Host提供NN计算能力。若存在多个Device,多个Device之间的内存资源不能共享。
Context:Context作为一个容器,管理了所有对象(包括Stream、Event、设备内存等)的生命周期。不同Context的Stream、不同Context的Event是完全隔离的,无法建立同步等待关系。
Stream:基于Stream的kernel执行和数据传输能够实现Host运算操作、Host与Device间的数据传输、Device内的运算并行。
Stream:Stream用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行。
14.在使用AscenCL构建模型输入时,对于多输入的模型:
创建DataBuffer对象创建DataSet对象 创建模型描述
15.使用DVPP开发AcendCL图片应用必须要做的:
数据预处理时,使用VPC进行图片缩放
数据预处理时,使用JPEGD进行图片解码
模型转换时,使用AIPP进行色域转换
16.AIPP的功能:
图像归一化
色域转换
抠图
AIPP支持色域转换(转换图像格式)、图像归一化(减均值/乘系数)和抠图
AIPP主要用于在AI Core上完成数据预处理
模型有多个输入时,可以指定对模型第几个输入进行AIPP处理
AIPP区分为静态AIPP和动态AIPP,只能二选一,不能同时支持
17.DVPP包含了以下功能:视频编解码、抠图、格式转换
18.AscendCL提供的多种图像/视频数据处理方式:
AIPP(Artificial Intelligence Pre-Processing)人工智能预处理,在AI Core上完成数据预处理,主要功能包括改变图像尺寸(抠图、填充等)、色域转换(转换图像格式)、减均值/乘系数(改变图像像素)等
DVPP(Digital Video Pre-Processor)是N腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要功能包括缩放、抠图、格式转换、图片编解码、视频编解码等
AIPP、DVPP可以分开独立使用,也可以组合使用。组合使用场景下,一般先使用DVPP对图片/视频进行解码、抠图、缩放等基本处理,但由于DVPP硬件上的约束,DVPP处理后的图片格式、分辨率有可能不满足模型的要求,因此还需要再经过AIPP进一步做色域转换、抠图、填充等处理
AscendCL提供了AIPP(Artificial Intelligence Pre-Processing)和DVPP(Digital Video Pre-Processor)两种处理图像/视频数据的方式
19.AscendCL提供的媒体数据处理V1版本接口,关于其接口调用流程:
首先,需创建处理图像/视频的通道,针对不同的功能,需创建对应的通道
其次,在实现各功能前,需调用acldvppMalloc接口申请Device上的内存存放输入或输出数据
然后,调用各功能对应的接口,例如JPEG解码需调用acldvppJpegDecodeAsync接口,由于是异步接口,还需调用aclrtSynchronizeStream接口等待功能执行完成,才能获取到输出数据
19.DVPP(数字视觉预处理)包含以下功能模块:
VPC,含抠图、缩放等功能
JPEGD,JPEG图片解码功能
PNGD,PNG图片解码功能
20.目前PyTorch框架的原始网络模型不可以使用ATC工具转换为N腾AI处理器离线模型
21.在媒体数据处理V1版本中,使用JPEGD图片解码功能需要使用的接口有:
acldvppCreateChannel
acldvppJpegDecodeAsync
acldvppMalloc
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
hi,我是熵减,见字如面。 微服务是一种软件架构风格,其旨在通过将应用程序拆分为小型、独立的服务,来增强应用程序的可伸缩性、可维护性和可测试性。 虽然微服务可以为软件开发提供许多好处,但它们并不总是适用于所有情况的最佳选择。 换句话说,微服务架构,也不是软件工…