前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CANN训练营新手模型开发学习笔记

CANN训练营新手模型开发学习笔记

作者头像
孙小北
发布2024-01-30 16:02:59
1190
发布2024-01-30 16:02:59
举报

CANN训练营新手模型开发学习笔记

CANN训练营新手模型开发学习笔记

模型相比应用的课程有些吃力,需要额外补充些知识。

Python 编程经验

  • 使用位置和关键字参数定义和调用函数
  • 字典、列表、集合(创建、访问和迭代)
  • for 循环, for 具有多个迭代器变量的循环(例如,for a, b in [(1,2), (3,4)])
  • if/else 条件块和条件表达式
  • 字符串格式(例如,‘%.2f’ % 3.14)
  • 变量、赋值、基本数据类型(int, float, bool, str 等)

深度学习和神经网络

为了让计算机掌握人类理解的知识,需要构筑一个由简单概念组成的多层连接网络来定义复杂对象,计算机通过对这个网络的迭代计算与训练后,可以掌握这个对象的特征,一般称这种方法为深度学习(DeepLearning,DL)

  • TensorFlow AI 框架

昇腾AI全栈架构

昇腾AI 全栈可以分成四个大部分:

  • 应用使能层面,此层面通常包含用于部署模型的软硬件,例如API、SDK、部署平台,模型库等等。
  • AI 框架层面,此层面包含用于构建模型的训练框架,例如昇思MindSpore、TensorFlow、Pytorch 等。

AI框架层:端、边、云独立协同的统一训练和推理框架

  • 异构计算架构CANN,偏底层、偏通用的计算框架,用于针对上层AI 框架的调用进行加速,力求向上支持多种AI 框架,并在硬件上进行加速。

芯片使能层:计算加速库、芯片算子库和高度自动化的算子开发工具。CANN

  • 计算硬件,本层是AI 计算的底座,有了强力的芯片及硬件设备,上层的加速才有实施的基础。 芯片层:基于统一、可扩展架构的系列化AI IP和芯片

异构计算架构CANN

华为公司面向计算机视觉、自然语言处理、推荐系统、类机器人等领域量身打造了基于“达芬奇(DaVinci)架构”的昇腾(Ascend)AI 处理器,开启了智能之旅。为提升用户开发效率和释放昇腾AI 处理器澎湃算力,同步推出针对AI 场景的异构计算架构CANN(Compute Architecture for Neural Networks),CANN 通过提供多层次的编程接口,以全场景、低门槛、高性能的优势,支持用户快速构建基于Ascend 平台的AI 应用和业务。

昇腾AI 异构计算架构(Compute Architecture for Neural Networks,CANN)被抽象成五层架构

  • 昇腾计算语言接口(AscendCL) 昇腾计算语言(Ascend Computing Language,AscendCL)接口是昇腾计算开放编程框架,是对低层昇腾计算服务接口的封装。它提供Device(设备)管理、Context(上下文)管理、Stream(流)管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、Graph(图)管理等API 库,供用户开发人工智能应用调用。
  • 昇腾计算服务层 主要提供昇腾计算库,例如神经网络(Neural Network,NN)库、线性代数计算库(Basic Linear Algebra Subprograms,BLAS)等;昇腾计算调优引擎库,例如算子调优、子图调优、梯度调优、模型压缩以及AI 框架适配器。
  • 昇腾计算编译引擎 主要提供图编译器(Graph Compiler)和TBE(Tensor Boost Engine)算子开发支持。前者将用户输入中间表达(Intermediate Representation,IR)的计算图编译成NPU 运行的模型。后者提供用户开发自定义算子所需的工具。
  • 昇腾计算执行引擎 负责模型和算子的执行,提供如运行时(Runtime)库(执行内存分配、模型管理、数据收发等)、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing,DVPP)、人工智能预处理(Artificial Intelligence Pre-Processing,AIPP)、华为集合通信库(Huawei Collective Communication Library,HCCL)等功能单元。
  • 昇腾计算基础层 主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory,SVM)、设备虚拟化(Virtual Machine,VM)、主机-设备通信(Host Device Communication,HDC)等。

基于CANN 的模型开发流程

模型迁移

除了昇思MindSpore 外,TensorFlow 等其他深度学习框架下的模型并不能直接在昇腾910 AI 处理器上训练,为了使其充分利用昇腾910AI处理器的澎湃算力来提升训练性能,我们需要借助异构计算架构CANN 的Plugin适配层转换,使转换后的模型能够高效运行在昇腾910AI处理器上。

值得庆幸的是,目前,CANN 已经能够支持多种主流AI 框架,包括昇思MindSpore、TensorFlow、PyTorch、飞浆、ONNX 等,并且开发者只需要非常少的改动,即可快速搞定算法移植,大大减少切换平台的代价。

两种模型迁移方式

  • 自动迁移方式。通过迁移工具对原始脚本进行AST 语法树扫描,可自动分析原生的TensorFlow API 在昇腾AI 处理器上的支持度,并将原始的TensorFlow训练脚本自动迁移成昇腾AI 处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改。
  • 手工迁移方式。算法工程师需要人工分析TensorFlow 训练脚本中的API 支持度情况,并且参照文档逐一手工修改不支持的API,以便在昇腾AI 处理器上训练,该种方式较为复杂,我们建议大家优先使用自动迁移方式。
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CANN训练营新手模型开发学习笔记
    • Python 编程经验
      • 深度学习和神经网络
        • 昇腾AI全栈架构
          • 异构计算架构CANN
            • 基于CANN 的模型开发流程
            • 模型迁移
            • 两种模型迁移方式
        相关产品与服务
        GPU 云服务器
        GPU 云服务器(Cloud?GPU?Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com