TPosition
Ascend C管理不同层级的物理内存时,用一种抽象的逻辑位置(TPosition)来表达各级别的存储,代替了片上物理存储的概念,达到隐藏硬件架构的目的。TPosition类型包括:VECIN、VECOUT、VECCALC、A1、A2、B1、B2、CO1、CO2,其中VECIN、VECCALC、VECOUT主要用于矢量编程,A1、A2、B1、B2、CO1、CO2用于矩阵编程。您可以参考任务间通信和同步了解TPosition的基础概念。
TPosition枚举值的具体定义如下:
枚举值 |
具体含义 |
---|---|
GM |
Global Memory,对应AI Core的外部存储。 |
VECIN |
用于矢量计算,搬入数据的存放位置,在数据搬入Vector计算单元时使用此位置 |
VECOUT |
用于矢量计算,搬出数据的存放位置,在将Vector计算单元结果搬出时使用此位置 |
VECCALC |
用于矢量计算/矩阵计算,在计算需要临时变量时使用此位置 |
A1 |
用于矩阵计算,存放整块A矩阵,可类比CPU多级缓存中的二级缓存 |
B1 |
用于矩阵计算,存放整块B矩阵,可类比CPU多级缓存中的二级缓存 |
A2 |
用于矩阵计算,存放切分后的小块A矩阵,可类比CPU多级缓存中的一级缓存 |
B2 |
用于矩阵计算,存放切分后的小块B矩阵,可类比CPU多级缓存中的一级缓存 |
CO1 |
用于矩阵计算,存放小块结果C矩阵,可理解为Cube Out |
CO2 |
用于矩阵计算,存放整块结果C矩阵,可理解为Cube Out |
父主题: 内存管理与同步