跳到主要内容

通用约束

AscendC管理不同层级的物理内存时,用一种抽象的逻辑位置(TPosition)来表达各级别的存储,代替了片上物理存储的概念,达到隐藏硬件架构的目的。TPosition类型包括:VECIN、VECOUT、VECCALC、A1、A2、B1、B2、CO1、CO2,具体介绍请参考TPosition。TPosition与物理内存的映射关系如表1所示。

表1 TPosition与物理内存映射关系

TPosition物理内存
GMGlobal Memory
VECINUnified Buffer
VECCALCUnified Buffer
VECOUTUnified Buffer
A1L1 Buffer
A2L0A Buffer
B1L1 Buffer
B2L0B Buffer
C1Kirin9020系列处理器,L1 Buffer
C1KirinX90系列处理器,L1Buffer
C2Kirin9020系列处理器,BT Buffer
C2KirinX90系列处理器,BT Buffer
CO1L0C Buffer
CO2Kirin9020系列处理器,Global Memory
CO2KirinX90系列处理器,Global Memory
TSCML1 Buffer
SPMKirin9020系列处理器,Global Memory
SPMKirinX90系列处理器,Global Memory

AscendC内存管理模块在进行内存分配时会对起始地址进行对齐。各类存储单元的对齐要求如表2所示。

使用AscendC数据计算和数据搬运接口时,目的操作数和源操作数地址偏移对齐要求和表2保持一致,如果AscendC指令接口中已说明操作数起始地址对齐要求,则以具体指令中的说明为准。

表2 不同存储单元的对齐要求

存储单元对齐要求
Global Memory暂无对齐要求。
Unified Buffer32Byte对齐。
L1 Buffer32Byte对齐。
L0A Buffer/L0B Buffer512Byte对齐。
L0C Buffer64Byte对齐。
BT Buffer64Byte对齐。