cann/asc-devkit:L0C Buffer内存结构介绍

📅 2026/7/16 11:03:00
cann/asc-devkit:L0C Buffer内存结构介绍
L0C Buffer内存结构介绍【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit为提升数据访问效率和吞吐量L0C Buffer采用了等容量的内存模块Bank结构设计。内存空间被划分为多个Bank并以Bank为单位进一步分组形成多个Bank GroupBG每个Bank Group包含若干Bank每个Bank都是一个可独立操作的存储单元子模块。以如下产品型号为例Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品L0C Buffer的总容量为128K字节由16个Bank组成。每个Bank的容量为8K字节由128行组成每行的宽度为64字节。这16个Bank被进一步组织为16个Bank Group。每个Bank Group包含1个Bank。L0C Buffer的内存结构如图1所示L0C Buffer的地址编码格式及其bit位对应的含义说明如下L0C_ADDR[16:0] { BANK_DEPTH[6:0], BANK[3:0], BANK_WIDTH[5:0] } // bit位顺序为从高位到低位共17位 // BANK_DEPTH表示地址在Bank中的行数占用7位bit位取值范围为[0, 127] // BANK表示地址所在Bank的编号占用4位bit位取值范围为[0, 15] // BANK_WIDTH表示地址在Bank一行上的偏移量占用6位bit位取值范围为[0, 63]图1L0C Buffer内存结构图NPU架构版本2201以Ascend 950PR/Ascend 950DT为例L0C Buffer总容量为256K字节由16个Bank组成。每个Bank的容量为16K字节由256行组成每行的宽度为64字节。这16个Bank被进一步组织为16个Bank Group。每个 Bank Group包含1个Bank。L0C Buffer的内存结构如图2所示L0C Buffer的地址编码格式及其bit位对应的含义说明如下L0C_ADDR[17:0] { BANK_DEPTH[7:0], BANK[3:0], BANK_WIDTH[5:0] } // bit位顺序为从高位到低位共18位 // BANK_DEPTH表示地址在Bank中的行数占用8位bit位取值范围为[0, 255] // BANK表示地址所在Bank的编号占用4位bit位取值范围为[0, 15] // BANK_WIDTH表示地址在Bank一行上的偏移量占用6位bit位取值范围为[0, 63]图2L0C Buffer内存结构图NPU架构版本3510【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考