【2023 · CANN训练营第一季】高阶班笔记 | 您所在的位置:网站首页 › cann训练营有什么用 › 【2023 · CANN训练营第一季】高阶班笔记 |
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任务中执行的 |
CopyRight 2018-2019 实验室设备网 版权所有 |