【2023 · CANN训练营第一季】高阶班笔记

举报
tang121212 发表于 2023/05/14 20:28:19 2023/05/14
【摘要】 1、调用cmath的add函数、仅调用TIK C++的Sub接口实现开发Add算子2、核函数返回类型为void3、TIK C++算子设备侧实现的入口函数是核函数4、TIK C++矢量编程范式不包含Split5、TIK C++矢量编程范式包含CopyInComputeCopyOut6、任务间数据传递使用到的内存统一由内存管理模块Pipe进行管理7、核函数中编写算子逻辑实现代码时,我们可以使用D...

1、调用cmath的add函数、仅调用TIK C++的Sub接口实现开发Add算子

2、核函数返回类型为void

3、TIK C++算子设备侧实现的入口函数是核函数

4、TIK C++矢量编程范式不包含Split

5、TIK C++矢量编程范式包含

CopyIn

Compute

CopyOut

6、任务间数据传递使用到的内存统一由内存管理模块Pipe进行管理

7、核函数中编写算子逻辑实现代码时,我们可以使用DataCopy

8、EnQue接口会将LocalTensor放入VECIN的Queue中

9、Queue内存初始化功能由InitBufferAPI提供

10、CPU侧调试时发现精度与预期不符,应该重点检查Compute部分代码实现

11、矢量编程范式中,负责矢量计算操作的任务是Compute

12、使用DataCopy接口可以将GloableTensor数据拷贝到LocalTensor

13、TIK C++算子开发,host侧算子实现包括:

算子原型注册

算子信息库配置

算子核函数形状推导函数实现与注册

Tiling实现与注册

14、TIK C++矢量算子开发时,需要在核函数内完成算法逻辑实现

15、CPU侧调试时,可以通过添加打印定位问题

16、TIK C++编程框架具有四层接口抽象、并行编程范式、孪生调试等优势

17、TIK C++算子开发是在核函数中进行算子类对象的创建和其成员函数的调用,实现算子的所有功能

18、TIK C++算子开发核函数必须具有void返回类型

19、TIK C++算子核函数中不可以使用std::vector保存数据

20、NPU侧调试时,不可以通过添加打印定位问题

21、核函数的调用不是同步调用

22、TIK C++矢量算子开发时,需要定义核函数

23、TIK C++矢量算子样例中,不是在CopyIn函数内完成Queue内存初始化

24、CPU测试通过,NPU不一定也能测试通过

25、使用NPU模式调用核函数时,blockDim参数规定了核函数在几个核上执行

26、Vector编程范式不包含的任务流程Split

27、__aicore__函数类型限定符来表示核函数是在设备端AI Core上执行的

28、矢量编程中VECIN是搬入数据的存放位置

29、CopyIn任务中将输入数据从Global内存搬运至Local内存后,需要使用EnQue操作将LocalTensor放入VECIN的Queue中

30、TIK C++算子核函数指针入参变量可以定义的类型为__gm__ uint8_t*

31、开发算子时有代码DataCopy(src0Local, src0Global, calCount), 根据API限制条件,calCount的正确的值可能为32

32、假设InitBuffer时设置的内存长度为512B,那么调用AllocTensor的Tensor占用大小为512

33、TIK C++最易用的接口级别为3

34、开发算子,在设备侧实现算子功能时可以:

调用TIK C++提供的接口实现算子功能

使用+, -, *, /实现算子功能

35、实现一个add算子,那么他可能会使用的代码为

Add(zLocal, xLocal, yLocal, TILE_LENGTH);

zLocal = xLocal + yLocal

36、算子类实现中算子功能实现是在Compute函数中完成的

37、开发算子后发现算子实际执行结果与预期不符,通过下列方法进行定位:

通过gdb调试定位问题

通过添加打印调试定位问题

38、TIK C++矢量编程范式中CopyIn阶段会将GlobalTensor数据拷贝到LocalTensor

39、使用GlobalTensor和LocalTensor作为数据的基本操作单元,它是各种指令API直接调用的对象,也是数据的载体

40、开发host侧算子实现时,一定需要完成的功能有

算子原型注册

算子信息库配置

41、完成一个完整的算子开发流程:

创建TIK C++算子工程

host侧算子实现

kernel侧算子实现

算子部署

算子ST测试

42、TIK C++的矢量编程范式把算子实现流程分为

CopyIn

Compute

CopyOut

43、核函数的执行配置:blockDim、l2ctrl、stream

44、将LocalTensor拷贝到GlobalTensor上是在CopyOut任务中执行的


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。