数据搬运
KirinX90/Kirin9030处理器部分数据通路特性存在差异,具体如下。
表1 数据搬运兼容说明
| 基础API | 兼容说明 |
|---|---|
| DataCopy: L1 Buffer->Bias Table Buffer | - KirinX90 AI处理器:浮点下只支持fp16数据类型,在L1 Buffer要求非紧凑排布(占32bit空间,其中高16bit为dummy数据); 做 L1 Buffer->Bias Table Buffer数据搬运后,fp16数据和dummy数据会一起搬运到Bias Table Buffer里。Mmad基础API计算时会自动获取有效的低16bit数据参与计算。 - Kirin9030 AI处理器:L1 Buffer到Bias Table Buffer搬运的每块数据块长度从64B变更为32B,目的操作数上数据两块之间间隔的单位从64B变更为32B;浮点下只支持fp16数据类型,在L1 Buffer要求紧凑排布。 |
| LoadDataWithSparse | 不支持。不支持结构化稀疏功能,因此算子需要采用正常稠密的矩阵计算。 |
| SetLoadDataBoundary | 不支持。该接口用于设置Load3D时L1 Buffer的边界值。如果指令在处理源操作数时,源操作数在L1 Buffer上的地址超出设置的边界,则会从L1 Buffer的起始地址开始读取数据。设置为0表示无边界,可以使用整个L1 Buffer。 如果需要在L1 Buffer上循环读取操作数,需要将对应的Load3D接口手动拆分成多条指令,手动绕回。 |
| LoadDataWithTranspose | Kirin9030 AI处理器:要求dstFracGap = 0。 |
| LoadData | 不支持,B1->B2的Load3Dv2接口。 |