CANN/asc-devkit TPosition内存位置

📅 2026/7/16 12:15:52
CANN/asc-devkit TPosition内存位置
TPosition【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkitAscend C管理不同层级的物理内存时用一种抽象的逻辑位置TPosition来表达各级别的存储代替了片上物理存储的概念达到隐藏硬件架构的目的。主要的TPosition类型包括VECIN、VECOUT、VECCALC、A1、A2、B1、B2、C1、C2、CO1、CO2其中VECIN、VECCALC、VECOUT主要用于矢量编程A1、A2、B1、B2、C1、C2、CO1、CO2用于矩阵编程。您可以通过表1了解TPosition和物理存储的映射关系。TPosition定义如下enum class TPosition : uint8_t { GM, A1, A2, B1, B2, C1, C2, CO1, CO2, VECIN, VECOUT, VECCALC, LCM VECCALC, SPM, SHM SPM, TSCM, C2PIPE2GM, C2PIPE2LOCAL, MAX, };TPosition枚举值的具体定义如下表1TPosition枚举值含义说明枚举值具体含义GMGlobal Memory对应AI Core的外部存储。VECIN用于矢量计算搬入数据的存放位置在数据搬入Vector计算单元时使用此位置。VECOUT用于矢量计算搬出数据的存放位置在将Vector计算单元结果搬出时使用此位置。VECCALC用于矢量计算/矩阵计算在计算需要临时变量时使用此位置。A1用于矩阵计算存放整块A矩阵可类比CPU多级缓存中的二级缓存。B1用于矩阵计算存放整块B矩阵可类比CPU多级缓存中的二级缓存。C1用于矩阵计算存放整块Bias矩阵可类比CPU多级缓存中的二级缓存。A2用于矩阵计算存放切分后的小块A矩阵可类比CPU多级缓存中的一级缓存。B2用于矩阵计算存放切分后的小块B矩阵可类比CPU多级缓存中的一级缓存。C2用于矩阵计算存放切分后的小块Bias矩阵可类比CPU多级缓存中的一级缓存。CO1用于矩阵计算存放小块结果C矩阵可理解为Cube Out。CO2用于矩阵计算存放整块结果C矩阵可理解为Cube Out。LCMLocal Cache Memory代表临时共享的Unified Buffer空间VECCALC的别名与VECCALC实现同样的功能。SPM当Unified Buffer内存有溢出风险时用于Unified Buffer的数据暂存。SHMSPM的别名。TSCMTemp Swap Cache Memory用于临时把数据交换到额外空间进行Matmul运算。C2PIPE2GM用于存放FIXPIPE量化参数。C2PIPE2LOCAL预留参数。为后续的功能做保留开发者暂时无需关注。【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考