基本概念
什么是模型训练?
MindStudio支持MindSpore、TensorFlow和PyTorch框架的模型训练,把框架执行的脚本、数据集、参数等相关信息通过网络分析并输出分析结果。
什么是模型转换和调优?
模型转换和调优是将Caffe/TensorFlow等框架训练好的模型,通过ATC或者AOE工具将其转换为昇腾AI处理器支持的离线模型。
- ATC工具:ATC会进行算子调度优化、权重数据重排、内存使用优化等具体操作,对原始的深度学习模型进行进一步的调优,从而满足部署场景下的高性能需求,使其能够高效执行在昇腾AI处理器上。
- AOE工具:AOE通过生成调优策略、编译、在运行环境上验证的闭环反馈机制,不断迭代出更优的调优策略,最终得到最佳的调优策略,从而可以更充分利用硬件资源,不断提升网络的性能,达到最优的效果。两种调优方式如下:
- 子图调优:通过SGAT(SubGraph Auto Tune),对子图切分策略进行调优,通过在运行环境上验证获得真实性能,最终将最优的调优策略固化至模型知识库,并获取优化后的模型。
- 算子调优:通过OPAT(Operator Auto Tune),对算子进行调优,通过在运行环境上验证获取真实性能,最终将优选算子调优策略固化到算子知识库。
什么是算子?
深度学习算法由一个个计算单元组成,可以称这些计算单元为算子(Operator,简称OP)。
在网络模型中,算子对应层中的计算逻辑,例如:卷积层(Convolution Layer)是一个算子;全连接层(Fully-connected Layer, FC layer)中的权值求和过程,是一个算子。在数学领域,一个函数空间到函数空间上的映射O:X→Y,都称为算子。
广义的讲,对任何函数进行某一项操作都可以认为是一个算子,比如微分算子,不定积分算子等。
什么是算子和模型速查?
算子和模型速查工具用于查询当前版本CANN支持的算子信息和ModelZoo支持的模型信息。支持的算子列表是通过解析CANN中的算子包获得;支持的模型列表来源于昇腾社区ModelZoo。使用该功能前用户需确保已安装requests库。
什么是TBE算子?
TBE(Tensor Boost Engine)负责执行昇腾AI处理器中运行在AI Core上的算子,主要负责执行矩阵、向量、标量相关的计算密集型算子。
TBE提供了基于TVM(Tensor Virtual Machine)框架的自定义算子开发能力,通过TBE提供的API可以完成相应神经网络算子的开发。TBE给用户提供了两种算子开发方式 :DSL( Domain-Specific Language ,基于特性域语言)与TIK( Tensor Iterator Kernel, 张量嵌套内核),开发者可以根据需求自由选择。
什么是AI CPU算子?
AI CPU负责执行昇腾AI处理器的CPU类算子(包括控制算子、标量和向量等通用计算),是AI Core算子的补充,主要承担非矩阵类、逻辑比较复杂的分支密集型计算。
可使用AI CPU方式实现自定义算子:
- 不适合跑在AI Core上的算子,例如,Dump、profiling等控制算子,Queue、Stack等资源状态类算子,TopK、Where等检索类算子。
- AI Core不支持的算子,算子需要某些数据类型,但AI Core不支持,例如Complex32、Complex64。
若存在相同算子类型的TBE算子与AI CPU算子,TBE算子的执行优先级高于AI CPU算子。
什么是精度比对?
精度比对是指通过NPU运行生成的dump数据与Ground Truth(基于GPU/CPU运行生成的npy数据)进行比对。实现自主研发算子与业界标准算子运算结果的差异比较。
详细介绍请参见:
什么是单算子比对?
精度比对的一种方式。选择网络模型中一个或多个参与计算的算子进行精度比对。
详细介绍请参见:
什么是专家系统?
专家系统是用于聚焦模型和算子的性能调优Top问题,识别性能瓶颈,重点构建模型和算子瓶颈分析并提供优化推荐,支撑开发效率提升的工具。
详细介绍请参见:
什么是性能分析?
性能分析工具为用户提供了端到端的数据采集、分析及可视化展示的能力,能够准确定位软硬件的性能瓶颈,并给出针对性的性能优化建议。
什么是集群场景性能分析?
已采集昇腾处理器硬件、操作系统、进程及线程、函数等各层级的性能原始数据,性能分析工具导入原始数据后进行可视化的展示,并进行性能指标的分析,定位到具体瓶颈点和热点函数,最后输出优化建议,帮助用户快速定位和处理软件性能问题。
为什么要迁移训练脚本?
昇腾NPU是AI算力的后起之秀,但目前训练和在线推理脚本大多是基于GPU的。由于NPU与GPU的架构差异,基于GPU的训练和在线推理脚本不能直接在NPU上使用。当前MindStudio提供PyTorch和TensorFlow迁移工具,可以将基于GPU的脚本迁移为基于NPU的脚本的自动化方法,节省了人工手动进行脚本迁移的学习成本与工作量,大幅提升了迁移效率。