昇腾AI创新大赛训练营
14:00-14:30 基础知识-理论课
一、CANN 、达芬奇架构和算子
1.AI Core逻辑架构
达芬奇架构包含三部分:
1)计算类:矩阵计算单元(两个矩阵扔进去相乘)、向量计算单元、标量计算单元
2)控制类:整个计算过程提供了指令控制
3)存储类: 存储单元和数据通路构成了存储系统
AI core是昇腾AI处理器的核心

计算单元包括Vector计算单元、Cube计算单元等
2.计算单元
包含:
1)Scalar计算单元
2)Cube计算单元
异步指令流、同步信号流、计算数据流
数据从AI core并行计算有六条流水线
3.什么是算子-算子在神经网络中的定义
算子对应数学含义:
1)一个函数空间到另一个函数空间的映射,比如微分算子,不定积分算子
常见算子,Relu算子,Sigmoid算子
(计算机不能精确表达根号二,因为精度不够)
算子基本概念-总览
● 算子名称 用于标志网络中的某个算子- Conv1,Conv2
● 算子类型
● 数据容器
4.张量
Tensor用于存储算子输入数据和输出数据的容器,TensorDesc是对输入数据与输出数据的描述。

tensor的shape:(4,20,20,3)
长宽都是20,4张图片,像素点由红、绿、蓝三颜色组成,即数据排布格式
深度学习中,多维数据通过多维数组存储,比如卷积网络中特征图(Feature Map)通常用四维张量来表示

遍历一般是高维到低维进行的
基本概念-轴
轴(Axis):代表张量中维度的下标
shape是(5,6),axis=0表示张量中的第一维
二、实践(昇腾Ascend C快速入门)
指导:

更改ip地址:

远程登陆

实验截图:
1.连接板子

2.查看网络连接:

3.检查ip地址是否修改成功:

4.连接Mobaterm

14:30-16:00 矢量计算-理论课
1.什么是Ascend C算子
什么场景需要开发自定义算子?
一般场景下无需自己开发算子,但若是以下场景,开发者需要考虑自定义算子开发
推理场景,将第三方框架模型使用ATC工具转换为适用昇腾适配器
Device模块
Device负责指定计算运行的真实设备,包含aclrtSetDevice、arlrtResetDevice、aclrtGetDevice、aclrtGetRunMode等众多运行时接口用于进行device管理。

2.如何编写核函数
核函数是Ascend C算子设备侧的一种扩展
编写:使用变量类型限定符
规则或建议:核函数必须有void返回类型
核函数的调用:是C/C++函数调用语句的一种扩展:<<<...>>>
kernel_name<<<blockDim<<blockDim,12ctrl, srteam>>>(argument list);
blockDim:规定核函数将会在几个核上执行
12ctrl:保留参数,暂时设置为固定值nullptr
stream:
编程模型—SPMD模型
Ascend C算子编程是SPMD的编程,将需要处理的数据拆分并在多个计算核心上运行;多个AI core 共享相同的指令代码



被折叠的 条评论
为什么被折叠?



