Device侧
1. 存储API
1.1 GlobalTensor
1.2 LocalTensor
可获取、设置值、获取大小。页可以通过
[]
获取
1.3 数据类型
2. Add样例
- 数据搬入:DataCopy
- 调用计算接口:Add
- 数据搬出:LocalTensor、EnQue、DeQue
2.1 核函数定义
x、y
输入,z
输出
2.2 算子类
2.3 初始化
- 根据数据长度为每个核分配需要处理的数据长度
- 单个核处理的数据地址:数据首地址+核序号idx
✖️
每个核处理的数据长度- 单核处理
2048
个数,再切成16
块,每块128
个数据,每次处理一个块
- 一条指令的计算尺寸有限,通常256个字节(B),一个
half=16bit=2B
,即一条指令能计算128个元素。- 所以进行切分,16块
2.4
3. 编程范式
3.1 核间SPMD
每一个核都会运行一份相同的核程序,只是处理的数据不一样
也就是程序复制到多个核,并行去处理
每个AiCore
可以通过GetBlockIdx()
获取block_idx