任务2.2 AI开发框架功能-课件_第1页
任务2.2 AI开发框架功能-课件_第2页
任务2.2 AI开发框架功能-课件_第3页
任务2.2 AI开发框架功能-课件_第4页
任务2.2 AI开发框架功能-课件_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲老师:李锋AI开发框架功能项目2:AI应用开发及测试任务2.2《车载计算平台技术与应用》目录任务导入AssignmentINTRO学习目标LearningobjectivesCONTENTS0102知识准备Backgroundknowledge03课堂小测Classroomquizz课堂总结Classroomsummary0405PART01任务导入AssignmentINTRO话题导入MDC(MobileDataCenter)平台配备的昇腾芯片,具有高算力、高能效、高安全、高可靠、低时延以及生态开放等优点,基于该芯片将如何进行AI应用和相关业务的开发?又将如何使用成熟的AI开发框架帮助开发者提升开发效率呢?MDC相关业务的开发PART02学习目标Learningobjectives学习目标素质目标鼓励学生基于AI技术实现技术创新;培养学生在AI高速发展时代的社会责任感;培养精益求精、爱岗敬业的职业素养;能力目标掌握AI算法移植的能力[A16];能表述神经网络推理的流程[A17]。知识目标了解AI算法移植[K20];了解神经网络推理[K21];熟悉MDCAI开发框架功能及应用[K22]。PART03知识准备Backgroundknowledge一、MDCAI开发框架功能及应用昇腾芯片的算力组成主要包括AI算力和CPU算力。其子模块与接口如图:1.MDC上昇腾芯片的基本功能昇腾芯片一、MDCAI开发框架功能及应用AI算力均是指昇腾芯片的矩阵计算单元的峰值算力,未包含向量和标量计算单元。1.MDC上昇腾芯片的基本功能(1)AI算力INT8200TOPSFP16100TFLOPSAI算力一、MDCAI开发框架功能及应用TOPS:每秒执行的万亿次运算。TFLOPS:每秒执行的万亿次浮点运算。1.MDC上昇腾芯片的基本功能(1)AI算力TOPS和TFLOPS一、MDCAI开发框架功能及应用FP16和INT8同为端侧AI计算深度学习模型中的常用数据格式,在不同的AI应用中具有独特优势。1.MDC上昇腾芯片的基本功能(1)AI算力FP16INT8一、MDCAI开发框架功能及应用CPU算力200kDMIPS,计算平台系统共有16个CPU(Taishan核),其中0~14为CTRLCPU,15为AICPU。1.MDC上昇腾芯片的基本功能(2)CPU算力一、MDCAI开发框架功能及应用芯片当中还包含L2缓冲区,任务调度器等,以及专门的数字视觉预处理模块,用于加速某些数据的预处理操作。1.MDC上昇腾芯片的基本功能(2)CPU算力子模块功能AICoreAI加速单元,用于AI推理加速VectorCore向量加速单元,可卸载部分cpu的负载L2缓冲区芯片内部L2缓冲,用于提升数据读取效率AICPU跟AICore配合,完成AI推理过程,部分算子将运行在AICPU上CtrlCPU控制CPU,此部分CPU开放给客户,运行应用软件任务调度器任务调度器,用于芯片的内部的任务调度数学视觉预处理模块视觉类预处理加速模块,硬IP可以明显提高处理效率一、MDCAI开发框架功能及应用KDMIPS(KiloDhrystoneMillionInstructionsPerSecond)是一种衡量处理器性能的指标,表示处理器每秒钟可以执行多少百万条基准测试程序(KiloDhrystone)。1.MDC上昇腾芯片的基本功能(2)CPU算力KDMIPS=(Dhrystone指令数/执行时间)×106一、MDCAI开发框架功能及应用CANN是MDC610针对AI场景推出的异构并行计算架构,通过提供多层次的编程接口,支持用户快速构建基于Ascend平台的AI应用和业务。2.昇腾CANN软件栈CANN架构一、MDCAI开发框架功能及应用MDC的AI应用开发都基于昇腾CANN软件栈,是作为整个AI应用架构中的基础软件,承担了MDC上平台应用软件与底层硬件间桥梁的作用,它包括应用运行栈、模型和算子开发栈以及一个预置算子库。2.昇腾CANN软件栈(1)CANN的作用MDC的AI应用开发一、MDCAI开发框架功能及应用CANN的分层主要分为模型和算法开发栈、应用运行栈。(2)CANN的分层结构2.昇腾CANN软件栈CANN分层结构模型和算法开发栈:采用ACL和TBE编程接口开发,并通过ATC转换成运行代码;编译MDC应用模型,生成可部署模型。应用运行栈:任务调度器管理应用的运行、模块的调度等。一、MDCAI开发框架功能及应用(3)CANN的价值2.昇腾CANN软件栈高效开发多层次编程接口和完善的调试,调优工具极致性能数据驱动,硬件调度的业界最佳执行性能全面开放九大开放性设计,E2E覆盖全场景应用一、MDCAI开发框架功能及应用MDC的AI框架沿用了CANN的九大开放特性。此外,CANN还提供了针对智能驾驶应用场景的MDC增量算子库,以及TBE自定义算子开发的体系,开发者可以更方便快捷的完成AI模型的转换和部署。3.CANN的九大开放特性CANN的九大开放特征二、AI算法移植AI算法移植到MDC上主要可分为三个流程,分别是模型转换、推理、性能调优。1.算法移植流程简介AI算法移植三大流程二、AI算法移植将caffe/Tensorflow/MindSpore框架下的模型转换为MDC的昇腾平台支持的*.om模型。1.算法移植流程简介(1)模型转换支持的算子MDC6101.1.027-T000产品文档/AI开发/命令行方式AI开发/ATC模型转换/参考/算子规格参考不支持/自定义算子MDC提供自定义算子的开发工具二、AI算法移植基于MDC提供的“MDC_Sample-2.1.003”样例,开发者可以实现数据接入,模型和设备的加载,推理以及后处理过程对接。1.算法移植流程简介(2)推理推理ACL初始化设置Device创建Context/Stream加载模型创建Tensor模型执行重置DeviceACL去初始化推理过程预处理后处理图像/点云数据二、AI算法移植利用Profiling工具进行整个应用的性能分析1.算法移植流程简介(3)性能调优Profiling从而进一步对模型和算子进行优化开始采集profiling数据解析迭代数据找到耗时算子单算子调优图优化结束性能调优流程二、AI算法移植模型转换所依赖的前期工作是进行AI模型的导出,也就是从深度学习框架中导出MDC所支持的模型文件。2.模型转换(1)AI模型导出AI模型的导出二、AI算法移植此外,还有其他AI框架,如PyTorch、MXNet、Keras等框架可以导出为ONNX模型后获得MDC上部署的支持,导出的样例。2.模型转换(1)AI模型导出Pytorch模型导出为ONNX模型二、AI算法移植AI模型的转换在MDC上提供了两种方式:命令行方式、GUI方式。2.模型转换(2)模型转换方法模型转换方式GUI方式命令行方式二、AI算法移植命令行方式:通过ATC命令将AI模型转换成昇腾AI处理器支持的离线模型。2.模型转换(2)模型转换方法Caffe/Tensor/MindSpore/ONNXATC工具图准备图优化图拆分图编译Model.omfileATC工具.jsonfile模型转换过程中可以实现算子调度的优化、权值数据重排、内存使用优化等,可以脱离设备完成模型的预处理。使用ATC命令行转换二、AI算法移植命令行举例-离线模型转换:2.模型转换(2)模型转换方法atc--model=totxt--weight=resnet50.caffemodel--framework=0--output=/home/eisa/resnet50--soc_version=Ascend610--input_format=NCHW--input_fp16_nodes=data--output_type=FP32--out_nodes=prob:0原始模型文件路径与文件名权重文件路径与文件名原始框架类型转换后的离线模型的路径以及文件名模型转换时指定芯片版本。输入数据格式指定输入数据类型为FP16的输入节点名称网络输出数据类型指定输出节点二、AI算法移植命令行举例-

resnet50模型描述文件生成。2.模型转换(2)模型转换方法atc--mode=1--omresnet50.om--jsonresnet50.json运行模式需要描述的模型文件离线模型转换为json格式文件的路径和文件名。二、AI算法移植GUI方式:开发者还可以使用MindStudio进行图形化的操作方式进行模型转换。2.模型转换(2)模型转换方法通过MindStudio进行模型转换二、AI算法移植通过相应的配置可以得到最终图形界面所执行的命令,实际上底层逻辑也是调用了ATC工具,最终也可以通过图形化界面的方式完成AI模型的转换。2.模型转换(2)模型转换方法AI模型转换二、AI算法移植从模型转换出的OM模型后,在推理过程中,接受通过预处理的图像或者点云的数据作为推理输入,完成推理以后进行后处理模块,获得推理结果。3.推理(1)推理应用概览开源/自研模型ATC/MindStudio模型转换后处理推理预处理图像/点云数据OM模型离线模型转换在线推理过程推理应用概览二、AI算法移植3.推理(1)推理应用概览推理ACL初始化设置Device创建Context/Stream加载模型创建Tensor模型执行重置DeviceACL去初始化预处理后处理在推理过程中,包含ACL初始化,设置Device等步骤。推理过程具体步骤二、AI算法移植3.推理(1)推理应用概览推理预处理后处理此外,预处理和后处理阶段,均跟训练模型时的参数和流程保持一致,同样可以通过调用一些内置的算子或者加速单元实现更高效的运行,如AICore加速。参数和流程一致二、AI算法移植以MindStudio的ResNet50推理应用的sample样例为例,推理过程可以划分为6个步骤。3.推理(2)推理过程代码示例ACL初始化,设置Device创建Context/Stream加载模型模型卸载重置Device并去初始化模型执行创建输入/输出Tensor推理过程二、AI算法移植1)ACL初始化,设置Device:第一步首先需要通过调用ACL的接口实现ACL以及设备的初始化。3.推理(2)推理过程代码示例ACL接口初始化,设置device二、AI算法移植2)创建Context/Stream:第二步需要进行Context容器或者Stream的创建。3.推理(2)推理过程代码示例创建Context和Stream二、AI算法移植3)加载模型:第三步可以加载需要推理的OM模型。3.推理(2)推理过程代码示例加载模型二、AI算法移植4)创建输入/输出Tensor:第四步创建推理环节中所需要涉及到的输入输出Tensor。3.推理(2)推理过程代码示例创建输入/输出Tensor二、AI算法移植5)模型执行:第五步执行模型的推理。3.推理(2)推理过程代码示例模型执行二、AI算法移植6)模型卸载重置Device并去初始化:第六步在推理结束后,调用ACL的接口实现设备和ACL的重置以及去初始化,从而完成整个推理过程。3.推理(2)推理过程代码示例模型卸载及重置Device并去初始化二、AI算法移植MDC提供的Profiling工具可以采集样板端应用的运行数据,采集并解析后可以用于对模型以及算子的分析,确定下一步的性能优化方向。调优的流程如下:4.性能调优Profiling配置Profiling采集设置采集板端Profiling数据解析Profiling数据MindStudio可视化性能数据Profiling结果分析与调优方案制定二、AI算法移植通过采集Profiling数据我们可以找到模型当中主要耗时的算子,从而进行单算子调优或者在模型当中进行图的优化。4.性能调优Profiling开始采集profiling数据解析迭代数据找到耗时算子单算子调优图优化结束调优流程二、AI算法移植通过Profiling获取数据,通过MindStudio当中对Profiling结果可视化,可以得到ACL的各个接口的耗时。4.性能调优Profiling(1)分析主要的耗时算子各接口耗时二、AI算法移植以及模型当中的算子耗时:4.性能调优Profiling(1)分析主要的耗时算子算子耗时二、AI算法移植逐行解读case的cce代码,确认搬运方式,计算逻辑等,确保cce代码没有漏洞。4.性能调优Profiling(2)解读cce代码解读cce代码逐行解读确认搬运方式计算逻辑……二、AI算法移植通过分析算子的打点图以及并行度,结合芯片制定出专属的模型优化方案。4.性能调优Profiling(3)分析算子的打点图及并行度算子的打点图及并行度芯片专属模型的优化方案制定思政专栏故宫博物院为应对暑期旅游高峰期间的“黄牛”抢票问题,积极优化票务系统,引入AI算法模型进行实时甄别。依托可信设备标识技术、智能风控引擎等能力,故宫博物院建立了集流量、账号、设备于一体的风控体系。这一体系的建立不仅增强了票务系统的稳定性和安全性,还为后续的技

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论