1.【单选题】使用MindX SDK开发AI应用时,以下哪个步骤是非必需的?
A.模型转换
B.插件开发
C.业务流编排
D.应用代码开发
【解析】
使用MindX SDK 4步快速开发AI应用的流程如图2-1所示。
图2-1 使用MindX SDK 4步快速开发AI应用的流程
选项A:模型转换是指通过ATC(Ascend Tensor Compiler,昇腾张量编译器)工具将第三方模型转换为适配昇腾AI处理器的离线模型(*.om文件),模型转换过程中可以实现算子调度优化、权重数据重排、内存使用优化等,可以脱离设备完成模型的预处理。该步骤是必需的。
选项B:插件开发是指根据已有SDK(Software Development Kit,软件开发工具包)插件的功能描述和规格限制来匹配业务功能。当SDK提供的插件无法满足功能需求时,用户可以开发自定义插件。该步骤可选,即它是非必需的。
选项C:业务流编排(流程编排)是指在使用MindX SDK开发AI应用时,可以创建业务流配置文件,将业务流管理模块、功能插件、功能元件、插件缓存和插件元数据连接起来,连通业务中从输入到输出的数据流。该步骤是必需的。
选项D:应用代码开发是指基于业务开发应用代码。其具体过程是编写C++程序或Python程序,调用业务流管理的API(MxStreamManager),先进行初始化,再加载业务流配置文件(*.pipeline文件),然后根据Stream配置文件中的StreamName从指定Stream获取输出数据,最后销毁Stream。该步骤是必需的。
【答案】 B
2.【单选题】下列哪些产品适用于云端计算场景?
A.Atlas 200
B.Atlas 300推理卡
C.Atlas 500
D.Atlas 800
【解析】
选项A:Atlas 200在端侧实现目标识别、图像分类等,广泛应用于智能摄像机、机器人、无人机等端侧AI场景,属于端侧产品。
选项B:Atlas 300推理卡提供AI推理、视频分析等功能,支持检索聚类OCR(Optical Character Recognition,光学字符识别)、语音分析、视频分析等场景,属于边侧产品。
选项C:Atlas 500具有超强计算性能,以及体积小、环境适应性强、易于维护等特点,可以在边缘场景中广泛部署,属于边侧产品。
选项D:Atlas 800具有超强计算性能,可广泛应用于中心侧AI推理、深度学习模型开发和训练场景,属于云端产品。该选项正确。
【答案】 D
3.【单选题】昇腾AI处理器能识别哪种格式的模型文件?
A.*.prototxt
B.*.om
C.*.caffemodel
D.*.pb
【解析】
昇腾(Ascend)硬件平台支持的模型文件格式如表2-1所示。
● 直接使用checkpiont文件进行推理,即在MindSpore训练环境下,使用推理接口加载数据及checkpoint文件进行推理。
● 将checkpiont文件转化为通用的模型格式[如ONNX、GEIR格式]文件进行推理,推理环境不需要依赖MindSpore。这样做的好处是可以跨硬件平台,只要在支持ONNX/GEIR推理的硬件平台上即可进行推理。譬如在Ascend 910 AI处理器上训练的模型可以在GPU/CPU上进行推理。
表2-1 昇腾硬件平台支持的模型文件格式
选项A:*.prototxt,这是Caffe模型文件的格式。
选项B:*.om,如表2-1第二行所示,这是华为Ascend AI处理器支持的离线模型格式。该选项正确。
选项C:*.caffemodel,这是Caffe模型文件的格式。
选项D:*.pb,这是TensorFlow模型文件的格式。
【答案】 B
4.【单选题】基于AscendCL接口开发昇腾AI推理应用时,运行管理资源包括Device、Context、Stream等,其中哪个用于维护一些异步操作的执行顺序?
A.Device
B.Context
C.Stream
D.Host
【解析】
在AscendCL应用开发中存在几个基本概念,如表2-2所示。
表2-2 AscendCL应用开发的基本概念
选项A:Device指安装了昇腾AI处理器的硬件设备。
选项B:Context作为一个容器,管理了所有对象(包括Stream、Event、设备内存等)的生命周期。
选项C:Stream用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行异步操作。
选项D:Host指与Device相连接的x86服务器、ARM服务器。
【答案】 C
5.【单选题】某客户在昇腾设备上训练自己的网络,使用CANN提供的高性能算子库,实现网络加速,以下哪类算子库不是CANN提供的?
A.NN(Neural Network)算子库
B.OpenCV数据预处理算子库
C.BLAS(Basic Linear Algebra Subprograms)算子库
D.HCCL(Huawei Collective Communication Library)
【解析】
CANN是华为针对AI场景推出的异构计算架构,它具有功能强大、适配性好、可自定义开发的特点。其向上支持多种AI框架,包括MindSpore、PyTorch、TensorFlow等,向下服务于AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。CANN同时针对多样化应用场景,提供多层次编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。
CANN的总体架构如图2-2所示,CANN AI异构计算架构自顶向下分为5部分。
● 昇腾计算语言(Ascend Computing Language,AscendCL):AscendCL接口是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装。它提供设备(Device)管理、上下文(Context)管理、流(Stream)管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、图(Graph)管理等API库,供用户开发AI应用。
● 昇腾计算服务层(Ascend Computing Service Layer):主要提供昇腾算子库(Ascend Operator Library,AOL),NN库、线性代数计算库(Basic Linear Algebra Subprograms,BLAS)等高性能算子加速计算;昇腾调优引擎(Ascend Optimization Engine,AOE),通过算子调优(OPAT)、子图调优(SGAT)、梯度调优(GDAT)、模型压缩(AMCT)提升模型端到端运行速度;同时提供AI框架适配器(Framework Adapter)用于兼容TensorFlow、PyTorch等主流AI框架。
● 昇腾计算编译层(Ascend Computing Compilation Layer):通过图编译器(Graph Compiler)将用户输入中间表达(Intermediate Representation,IR)的计算图编译成昇腾硬件可执行模型;同时借助张量加速引擎(Tensor Boost Engine,TBE)的自动调度机制,高效编译算子。
● 昇腾计算执行层(Ascend Computing Execution Layer):负责模型和算子的执行,提供运行管理器(也可称作运行时库(Runtime))、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing,DVPP)、AI预处理(Artificial Intelligence Pre-Processing,AIPP)、华为集合通信库(Huawei Collective Communication Library,HCCL)等功能单元。
● 昇腾计算基础层(Ascend Computing Base Layer):主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory,SVM)、设备虚拟化(Virtual Machine,VM)、主机-设备通信(Host Device Communication,HDC)等。
图2-2 CANN的总体架构
选项 A:NN算子库在图2-2所示的架构中位于昇腾计算服务层,覆盖了包括TensorFlow、PyTorch、MindSpore、ONNX框架在内的常用深度学习算法的计算类型,在算子库中占有最大比重。
选项 B:OpenCV数据预处理算子库是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,已成为计算机视觉领域最有力的研究工具之一。从图2-2可以看出,CANN并不包含OpenCV数据预处理算子库。
选项 C:BLAS算子库位于昇腾计算服务层,提供了基础线性代数程序集,是进行向量和矩阵等基本线性代数计算的库。
选项 D:HCCL 在图2-2所示的架构中位于昇腾计算执行层,提供单机多卡以及多机多卡间的Broadcast、AllReduce、ReduceScatter、AllGather等集合通信功能,在分布式训练中提供高效的数据传输能力。
【答案】 B
6.【单选题】小王在分析推理应用的性能问题,他使用性能分析工具排查出模型推理耗时较长,他可以使用以下哪个工具来调优模型?
A.ATC
B.Profiling
C.AOE
D.AMCT
【解析】
CANN的总体架构如图2-2所示。
选项A:ATC是CANN体系下的模型转换工具。在模型转换过程中,ATC会进行算子调度优化、权重数据重排、内存使用优化等具体操作,以对原始的深度学习模型进行调优,从而满足部署场景下的高性能需求,使模型能够高效执行在昇腾AI处理器上。
选项B:Profiling是昇腾性能分析工具,用于采集和分析运行在昇腾硬件上的AI任务各个运行阶段的关键性能指标,用户可根据输出的性能数据,快速定位软、硬件性能瓶颈,提升AI任务性能分析的效率。
选项C:CANN中的昇腾计算服务层提供AOE,通过算子调优(OPAT)、子图调优(SGAT)、梯度调优(GDAT)、模型压缩(AMCT)提升模型端到端运行速度。
选项D:AMCT(Ascend Model Compression Toolkit,昇腾模型压缩工具)是一个针对昇腾芯片亲和的深度学习模型压缩工具包,提供量化等多种模型压缩特性,模型经压缩后体积变小,部署到NPU(昇腾AI处理器)上后可使能低比特运算,提高计算效率,达到性能提升的目标。AMCT是AOE的一部分。
【答案】 C
7.【单选题】TensorFlow、PyTorch模型迁移主要依赖CANN软件栈的哪个功能模块?
A.昇腾调优引擎(AOE)
B.昇腾计算执行引擎(ACE)
C.框架适配器(Framework Adapter)
D.昇腾计算语言(AscendCL)接口
【解析】
CANN的总体架构如图2-2所示。
选项A:昇腾计算服务层提供AOE,通过算子调优(OPAT)、子图调优(SGAT)、梯度调优(GDAT)、模型压缩(AMCT)提升模型端到端运行速度。
选项B:昇腾计算执行层提供ACE负责模型和算子的执行,提供运行时库、图执行器、DVPP、AIPP、HCCL等功能单元。
选项C:框架适配器用于兼容TensorFlow、PyTorch等主流AI框架。TensorFlow、PyTorch模型迁移主要依赖该功能模块。
选项 D:AscendCL接口是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装。它提供设备管理、上下文管理、流管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、图管理等API库,供用户开发AI应用。
【答案】 C
8.【单选题】若使用昇腾计算语言接口AscendCL开发各类行业应用,例如搜索推荐、自然语言处理等,以下哪个不是AscendCL的优势?
A.高度抽象:算子编译、加载、执行的API归一,相比每个算子一个API,AscendCL大幅减少API数量,降低复杂度
B.向后兼容:AscendCL具备向后兼容的能力,确保软件升级后,基于旧版本编译的程序依然可以在新版本上运行
C.零感知芯片:一套AscendCL接口可以实现应用代码统一,多款昇腾AI处理器无差异
D.降低复杂度:用户仅可以直接调用AscendCL接口,不可以通过第三方框架调用AscendCL接口
【解析】
AscendCL是一套用于在昇腾平台上开发深度神经网络应用的C语言API库,提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现利用昇腾硬件计算资源在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说,AscendCL就是统一的API框架,可用于实现对所有资源的调用。计算资源层是昇腾AI处理器的硬件算力基础,主要完成神经网络的矩阵相关计算、完成控制算子/标量/向量等通用计算和执行控制功能、完成图像和视频数据的预处理,为深度神经网络计算提供了执行上的保障。AscendCL的优势如下。
● 高度抽象:算子编译、加载、执行的API归一,相比每个算子一个API,AscendCL大幅减少API数量,降低复杂度。
● 向后兼容:AscendCL具备向后兼容的能力,确保软件升级后,基于旧版本编译的程序依然可以在新版本上运行。
● 零感知芯片:一套AscendCL接口可以实现应用代码统一,多款昇腾AI处理器无差异。
由上述可知,除选项D之外,其他几个选项都是AscendCL的优势。
【答案】 D
9.【单选题】以下关于昇腾AI软件栈的环境的说法中,错误的是哪个选项?
A.Host指与Device相连接的x86服务器、ARM服务器,它会利用Device提供的NN(Neural Network)计算能力完成业务
B.Device指安装了昇腾AI处理器的硬件设备,利用PCI-e接口与Host侧连接,为Host提供NN计算能力
C.开发环境与运行环境必须合设,不能分设,否则可能导致业务异常
D.运行用户是指运行驱动进程、推理业务或执行训练的用户
【解析】
以Atlas 200 DK为例,其CANN软件部署场景如图2-3所示。
图2-3 Atlas 200 DK CANN软件部署场景
● 场景一:开发环境与运行环境合设(推荐使用此方式)。
此种场景下,Atlas 200 DK既作为开发环境,又作为运行环境,可进行算子开发、应用开发、模型开发及模型转换等功能的开发、编译,以及离线推理执行。此种场景下,Atlas 200 DK需要接入互联网。
● 场景二:开发环境与运行环境分设。
开发环境:安装了Ubuntu x86操作系统的用户PC。在该环境下开发者可进行算子开发、应用开发、模型开发及模型转换等功能的开发及编译。开发者可以直接使用制作SD卡的用户PC作为开发环境,若使用的开发环境不是制作SD卡的用户PC,在进行CANN软件的安装前,需要参见配置网络连接将Atlas 200 DK与开发环境所在PC进行连接。
运行环境:Atlas 200 DK。将开发环境编译得到的应用程序可执行文件及依赖文件上传到Atlas 200 DK侧,进行离线推理执行。
选项A:Host指与Device相连接的x86服务器、ARM服务器,它会利用Device提供的NN计算能力完成业务。该选项描述和表2-2关于Host的描述一致。
选项B:Device指安装了昇腾AI处理器的硬件设备,利用PCI-e接口与Host侧连接,为Host提供NN计算能力。该选项描述和表2-2关于Device的描述一致。
选项C:开发环境与运行环境必须合设,不能分设,否则可能导致业务异常。图2-3表明开发环境与运行环境可以合设,也可以分设。该选项描述错误。
选项D:运行用户是指运行驱动进程、推理业务或执行训练的用户。该选项描述正确。
【答案】 C
10.【单选题】下列哪些产品不适用于边缘计算场景?
A.Atlas 200
B.Atlas 300推理卡
C.Atlas 500
D.Atlas 800
【解析】
选项A:Atlas 200在端侧实现目标识别、图像分类等,广泛应用于智能摄像机、机器人、无人机等端侧AI场景,属于端侧产品。
选项B:Atlas 300推理卡提供AI推理、视频分析等功能,支持检索聚类OCR、语音分析、视频分析等场景,属于边侧产品。
选项C:Atlas 500具有超强计算性能,以及体积小、环境适应性强、易于维护等特点,可以在边缘场景中广泛部署,属于边侧产品。
选项D:Atlas 800具有超强计算性能,可广泛应用于中心侧AI推理、深度学习模型开发和训练场景,属于云端产品,不适用于边缘计算场景。该选项正确。
【答案】 D
11.【多选题】以下哪些选项属于图像预处理技术?
A.直方图均衡化
B.对比度压缩
C.灰度变换
D.均值滤波
【解析】
图像预处理是指在进行更高级的图像分析或者机器学习之前,对图像进行的一系列基础处理操作,目的是改善图像质量、突出特征、减少噪声等,以便后续步骤能更准确、高效地进行。
选项A:如图2-4所示,直方图均衡化是指调整原始图像的直方图,即灰度概率分布图,使之呈均衡分布的样式,以达到灰度级均衡的效果,可以有效增强图像的整体对比度。直方图均衡化能够自动地计算变换函数,并产生有均衡直方图的输出图像,因此能够有效解决图像过暗、过亮和细节不清晰的问题。该选项正确。
图2-4 直方图均衡化示例
选项B:对比度压缩通过减小相邻灰度级的灰度差别实现。对比度压缩的映射函数和示例如图2-5所示,当d2与d1的差值小于s2与s1的差值时,原始图像中灰度级处于[s1, s2]的像素点会被压缩到[d1, d2],实现对比度压缩的效果。该选项正确。
图2-5 对比度压缩的映射函数和示例
选项 C:灰度变换是一种基础的图像处理方法,通过对图像的每个像素点的灰度值进行数学变换(如线性变换、对数变换、指数变换等),调整图像的整体亮度和对比度,常用于灰度图像的校正,属于图像预处理技术范畴。该选项正确。
选项D:均值滤波采用模板权重都为1的滤波器,它将像素的邻域平均值作为输出结果。利用均值滤波可以实现图像平滑的效果,也可以去除图像噪声,但随着模板尺寸的增加,图像会变得模糊,如图2-6所示,因此均值滤波经常用于图像模糊化操作。该选项正确。
图2-6 均值滤波
【答案】 ABCD
12.【多选题】训练网络精度问题一般源于以下哪些方面?
A.提供的参考基准存在问题
B.进行模型迁移时存在问题
C.网络中算子精度存在问题
D.网络使用框架的精度存在问题
【解析】
训练网络精度是指模型在训练和测试过程中准确预测目标结果的能力,影响训练网络精度的问题主要包括以下几个方面。
● 提供的参考基准存在问题:参考基准用于评估模型的性能。如果参考基准存在问题,比如数据集不完整、标签不准确或不适合当前任务,都会导致训练网络精度下降。因此,确保参考基准的准确性和适用性至关重要。
● 进行模型迁移时存在问题:模型迁移是指将在一个领域中训练好的模型应用到其他相关领域。在模型迁移过程中,如果源领域和目标领域的特征分布差异较大,或模型未能充分适应目标领域的数据,都会影响训练网络精度。因此,在进行模型迁移时,需要特别关注数据特征的相似性和模型适应性。
● 深度学习网络中使用的算子精度存在问题:深度学习网络中使用的算子如卷积、池化等,其精度直接影响模型的性能。如果算子精度不足,会引入计算误差,导致训练网络精度下降。因此,使用高精度算子和优化计算过程对于提高训练网络精度至关重要。
因此,选项A、B、C正确。对选项D来说,虽然深度学习框架在进行数值计算时的精度会影响模型的性能,但在现代深度学习框架中,框架精度问题通常已经被优化和解决,不会影响训练网络精度,故选项D错误。
【答案】 ABC
13.【多选题】构建模型输入输出数据结构时,在(1)、(2)空缺处,需补充什么代码?
void CreateModelOutput(){
modelDesc = aclmdlCreateDesc( );
aclError ret = aclmdlGetDesc(modelDesc, modelId);
outputDataSize = aclmdlGetOutputSizeByIndex(modelDesc, 0);
ret = aclrtMalloc(&outputDeviceData, outputDataSize, ACL_MEM_MALLOC_HUGE_FIRST);
outputDataBuffer= aclCreateDataBuffer(outputDeviceData, (1));
ret= aclmdlAddDatasetBuffer(outputDataSet, (2));
}
A.outputDataSize
B.modelDesc
C.outputDataBuffer
D.modelId
【解析】
在构建模型输入输出数据结构时,需要确保数据缓冲区和数据集的正确性。
● outputDataSize是输出数据的大小,通过aclmdlGetOutputSizeByIndex(modelDesc, 0) 获取。
● outputDeviceData是分配的设备内存地址,内存大小为outputDataSize。
● outputDataBuffer是通过aclCreateDataBuffer创建的,参数需要包括设备数据和数据大小。
● outputDataSet是数据集,通过aclmdlAddDatasetBuffer添加数据缓冲区。
根据函数原型和参数要求进行补充。
● aclCreateDataBuffer的第一个参数是设备内存地址,第二个参数是内存大小。因此,(1)空缺处应为outputDataSize。
● aclmdlAddDatasetBuffer的第一个参数是数据集,第二个参数是数据缓冲区。因此,(2)空缺处应为outputDataBuffer。
modelDesc是模型描述信息,由aclmdlCreateDesc创建,与本题无关。
modelId是主函数加载的模型,与本题无关。
【答案】 AC
14.【多选题】某厂商购买了一批昇腾设备用于大模型训练,希望能基于昇腾AI算力,发挥极致性能,关于昇腾计算能力的优势,说法正确的是哪些选项?
A.昇腾可以直接对接各主流AI框架,无须进行模型的迁移、适配
B.华为自研达芬奇架构,针对AI计算特点,包含大Cube计算单元,矩阵乘法计算效率高,达到极致面效比
C.匹配AI应用场景,最优配比算力、内存、带宽
D.任务下沉到NPU内,减少CPU+NPU外部互操作,提升效率,提高系统密度,降低功耗
【解析】
昇腾设备的算力是由昇腾AI处理器提供的。
选项A:昇腾AI处理器对多种主流AI框架提供了支持,但在实际应用中,用户可能仍需要进行一些模型的迁移、适配工作,以确保模型在昇腾平台上能够高效运行。该选项错误。
选项B:华为的昇腾AI处理器采用了自研的达芬奇架构,该架构专门针对AI计算进行了优化,特别是其大Cube计算单元显著提高了矩阵乘法的计算效率,从而实现了高效的计算能力和极致的面效比。这一特点是昇腾计算能力的核心优势之一。该选项正确。
选项C:昇腾AI处理器在设计时考虑了AI应用场景的多样性,通过优化算力、内存和带宽的配比来满足不同的需求。这种设计保证了昇腾AI处理器在各种应用场景下都能提供最佳性能,从而提升了整体的计算效率。该选项正确。
选项D:昇腾AI处理器通过将任务下沉到NPU(Neural Processing Unit,神经网络处理单元)内,减少了CPU和NPU之间的外部互操作。这种设计不仅提高了计算效率,还通过优化系统架构提高了系统密度,进一步降低了功耗,从而提升了整体性能和能效比。该选项正确。
【答案】 BCD
15.【多选题】小李准备将PyTorch网络从GPU迁移到昇腾设备上,他可以采取以下哪些迁移方式?
A.手动迁移
B.使用transfer_to_npu自动迁移
C.使用脚本转换工具迁移
D.使用PyTorch 1.x框架开发的模型时无须适配即可在昇腾AI处理器上执行训练
【解析】
选项A:手动迁移是一种常见的迁移方式,开发者可以根据昇腾设备的特性,手动修改PyTorch代码,以确保其在昇腾AI处理器上高效运行。这通常需要深入理解硬件架构和相应的编程模型。该选项正确。
选项B:自动迁移工具transfer_to_npu可以帮助开发者将PyTorch网络自动迁移到昇腾设备上,大大减少迁移的工作量并降低了迁移的复杂性,使得迁移过程更加快捷和方便。该选项正确。
选项C:脚本转换工具是一种有效的迁移方式,可以自动或半自动地将现有的PyTorch代码转换为适用于昇腾设备的代码。这种工具可以帮助开发者更快地完成迁移工作,减少手动调整的需求。该选项正确。
选项D:尽管昇腾设备支持多种主流AI框架,包括PyTorch,但在实际应用中,直接使用PyTorch 1.x框架开发的模型通常还是需要进行一些适配工作才能在昇腾AI处理器上执行训练。该选项错误。
【答案】 ABC
16.【多选题】以下哪些是目标检测技术的应用场景?
A.口罩佩戴识别
B.车辆检测
C.图像风格化
D.行人检测
【解析】
目标检测的任务是找出图像中所感兴趣的目标或物体,确定它们的类别和位置。
选项A:口罩佩戴识别是目标检测技术的一个典型应用场景,是指通过识别图像中人脸的特定区域是否有口罩来判断口罩的佩戴情况。该选项正确。
选项B:车辆检测是目标检测技术的一个重要应用场景,是指利用目标检测技术识别和定位图像或视频中的车辆,广泛应用于智能交通、监控等领域。该选项正确。
选项C:图像风格化不属于目标检测技术的应用范畴,图像风格化主要涉及图像生成和转换,而非对特定目标的识别与定位。该选项错误。
选项D:行人检测是目标检测技术的重要应用场景之一,是指利用目标检测技术检测图像或视频中的行人位置,应用于视频监控、自动驾驶等多个领域。该选项正确。
【答案】 ABD
17.【多选题】昇腾CANN通过图编译技术使能并行计算加速,充分发挥昇腾处理器的计算能力,图编译加速技术包括以下哪些选项?
A.自动流水线
B.算子深度融合
C.整图下沉
D.自适应梯度切分
【解析】
选项A:如图2-7所示,CANN 5.0将计算指令和数据载入实现多流水并行,该优化允许用户对载入数据进行分段,当载入数据满足分段数据量时即刻启动后续计算逻辑,同时后续数据持续载入,当后续分段数据载入完成且流水空闲时,依次再启动后续计算逻辑,充分发挥昇腾AI处理器的多流水并行能力,实现无缝多流水衔接。该选项正确。
图2-7 自动流水线示意
选项B:随着网络结构日益复杂,数据在内外存的搬运以及多算子对应多指令带来的性能开销已经越发不可忽视。CANN 5.0在CANN 3.0基础上识别了更多的融合场景,通过多算子自动融合减少计算节点数,有效减少内存复制;并且通过灵活可定制的融合规则让计算图中的算子得以最大程度地融合,为开发者赢得了更多的计算性能收益。该选项正确。
选项C:昇腾AI处理器集成了丰富的计算设备资源,比如AI Core/AI CPU/DVPP/AIPP等。得益于昇腾AI处理器上丰富的“土壤”,CANN不仅可以将计算部分下沉到昇腾AI处理器加速,还可以将控制流、DVPP、通信部分一并下沉执行。尤其是在训练场景中,这种把逻辑复杂计算图的全部闭环在AI处理器内执行的能力,能有效减少和Host CPU的交互时间,提升计算性能。该选项正确。
选项D:在大规模集群训练场景下,通常需要进行成千上万轮迭代计算,每轮迭代包括正、反两个方向的逐层前馈计算。大部分同步更新算法要求在下一轮迭代正向计算开始前,各计算节点间需要同步好梯度数据,完成梯度更新。这就会导致在两轮迭代之间产生等待间隙,即通信拖尾。如图2-8所示,CANN 5.0通过自适应梯度切分算法,自动搜索出最优梯度参数切分方式,为梯度传输选择合适的通信时机和通信量,最大限度让计算和通信并行执行,将通信拖尾时间降至最小,可促使集群训练达到最优性能。该选项正确。
图2-8 自适应梯度切分示意
【答案】 ABCD
18.【多选题】基于CANN的训练网络精度调优一般包括以下哪些手段?
A.浮点异常检测
B.融合异常检测
C.整网数据比对
D.随机错误检测
【解析】
选项A:在训练网络执行过程中,可能发生频繁的浮点异常问题,例如损失缩放(Loss Scale)值下降次数较多或直接下降为1,此时需要通过分析溢出数据,对频繁发生的浮点异常问题进行定界、定位,提升训练过程的稳定性和准确性。该选项正确。
选项B:在训练网络执行过程中,系统会根据内置的融合规则对网络中的算子进行融合,以达到提高网络性能的效果。该选项正确。
选项C:在训练网络精度仍未达预期时,通过采集训练过程中各算子的运算结果(即Dump数据),并将它与业界标准算子(如TensorFlow)的运算结果进行数据偏差对比,快速定位到具体算子的精度问题。该选项正确。
选项D:在训练网络执行过程中,可能存在部分计算过程在相同输入的情况下给出了不同的输出的问题。当出现以上随机问题时,可以执行两次训练,并分别采集训练过程中各算子的运算结果(即Dump数据),通过比对分析,快速定位到导致随机问题的算子层。该选项正确。
【答案】 ABCD
19.【判断题】数字图像处理的量化过程是将采样点的传感器信号转换成离散的整数值,量化等级越多,所得图像层次越丰富,灰度分辨率越高,图像质量越好,数据量越小。
【解析】
数字图像处理中的量化过程是指将连续的模拟信号转换成离散的整数值。这一过程将对传感器采集的模拟信号进行离散化处理,使其能够在数字系统中表示和处理。量化等级的多少直接影响图像的层次表现和灰度分辨率。量化等级越多,图像能够表现出的灰度等级就越多灰度分辨率就越高,图像的细节和层次也会更丰富,因而图像质量会更好。然而,量化等级越多,所需的存储空间和数据量会相应增加,而不是减少。题目中提到的“数据量越小”说法是错误的。
【答案】 错误
20.【判断题】在基于AscendCL接口开发应用时,模型执行结束后,须及时释放内存、销毁对应的数据类型,防止内存异常。模型可能存在多个输入、多个输出,只需调用一次aclDestroyDataBuffer接口可销毁所有输入/输出的aclDataBuffer类型。
【解析】
在基于AscendCL接口开发应用时,确实需要在模型执行结束后及时释放内存、销毁对应的数据类型,以防止内存泄露或异常。这包括释放模型的输入和输出所使用的aclDataBuffer类型。但是,题目中提到的“只需调用一次aclDestroyDataBuffer接口可销毁所有输入/输出的aclDataBuffer类型”说法是错误的。实际上,aclDestroyDataBuffer接口需要针对每一个aclDataBuffer实例单独调用。因此,对于每个输入和输出的aclDataBuffer类型,都需要分别调用aclDestroyDataBuffer接口来销毁它们。
【答案】 错误
21.【判断题】昇腾智造解决方案的推理引擎是 mxManufacture。
【解析】
mxManufacture包含训练服务和推理服务,适用于物体检测、物体分类、文字检测、文字识别和语义分割场景,在各场景的处理流程中均涉及模型训练、模型评估、模型转换、推理服务及可视化过程。其中,训练服务基于MindSpore的训练代码进行场景封装,推理服务通过开放RESTful接口提供推理服务。
【答案】 正确
22.【判断题】某公司的AI应用工程师在昇腾设备上开发推理应用,在模型推理结束后,他忘记调用卸载模型的接口,这时,应用进程退出时会自动卸载模型,不会出错。
【解析】
在昇腾设备上开发推理应用时,模型推理结束后应及时调用卸载模型的接口,以确保资源被正确释放。如果忘记调用卸载模型的接口,虽然操作系统通常会在应用进程退出时自动回收进程相关的资源,包括未卸载的模型,但这并不能保证在所有情况下都不会出错。特别是在长时间运行或高并发环境下,未及时释放资源可能会导致内存泄露等问题。因此,依赖操作系统自动回收进程相关的资源不是一种推荐的做法,也不能保证完全不会出错。
【答案】 错误
23.【判断题】mxVision致力于简化昇腾芯片推理业务开发过程,降低使用昇腾芯片进行开发的门槛。该SDK采用模块化的设计理念,将业务流程中的各个功能单元封装成独立的插件,通过插件的串接快速构建业务。
【解析】
mxVision是一个致力于简化昇腾芯片推理业务开发过程的解决方案,目的是降低使用昇腾芯片进行开发的门槛。该SDK采用模块化的设计理念,将业务流程中的各个功能单元封装成独立的插件,使开发者可以通过插件的串接快速构建业务。模块化设计的优势在于提高了开发效率和代码复用性,同时也简化了复杂业务逻辑的实现和维护。因此,题目中的描述是准确的,mxVision通过这种方式帮助开发者更方便地进行业务开发。
【答案】 正确