CANN/asc-devkit数据通路 数据通路【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkitAI Core硬件架构与存储单元AI Core是昇腾处理器的核心计算单元以NPU架构版本2201为例其内部分层存储架构如图1所示主要包含以下组成部分计算单元图中黄色高亮包括Cube矩阵计算单元、Vector矢量计算单元和Scalar标量计算单元分别负责矩阵乘加、向量运算和标量控制流。存储单元按层级由外到内依次为Global MemoryGM位于AI Core外部、L1 Buffer、L0A/L0B/L0C Buffer、Unified BufferUB、BiasTable Buffer、Fixpipe Buffer等。各存储单元的容量与对齐要求各异详情参见内存层级架构。搬运单元图中黄色高亮包括MTE1Memory Transfer Engine 1、MTE2、MTE3和FixPipe负责数据在不同存储单元之间的DMA传输。其中MTE2负责GM - Local Memory方向的搬运MTE3负责Local Memory - GM方向的搬运MTE1负责L1 Buffer - L0 Buffer方向的数据搬运FixPipe负责将计算结果从L0C Buffer中通过随路量化和随路激活的方式搬出。图 1NPU架构版本2201下AI Core硬件架构示意图以NPU架构版本3510为例其内部分层存储架构如图2所示该架构在数据通路上有如下变化新增L0C Buffer到UB的单向数据通路。新增UB到L1 Buffer的数据通路。删除GM到L0A Buffer、L0B Buffer的数据通路。删除L1 Buffer到GM的数据通路。图 2NPU架构版本3510下AI Core硬件架构示意图[!NOTE]说明同一个物理内存可能对应多个不同的TPosition例如Unified BufferUB同时映射到VECIN、VECCALC和VECOUT三个逻辑位置分别代表矢量计算的输入、中间计算和输出阶段。L1 Buffer同时映射到A1、B1、C1和TSCM具体含义取决于当前所服务的计算流程矩阵左/右矩阵暂存或共享通信。这种设计使得同一物理内存可以在不同计算阶段被赋予不同的逻辑语义开发者可根据编程模型的阶段需求选择合适的TPosition。同一个逻辑位置在不同产品型号中可能对应不同的物理内存例如逻辑位置CO2在Atlas A2 训练系列产品/Atlas A2 推理系列产品中映射到Global Memory而在Atlas训练及推理系列产品中映射到Unified Buffer详细情况请参考逻辑位置和物理存储的映射关系。数据通路与搬运流水基于上述存储单元和搬运单元AI Core内的数据通路及其对应的硬件流水如下表所示。每条数据通路指定了源SRC与目的DST存储单元以及执行搬运的硬件流水理解这些通路是选择正确数据搬运接口参数的基础。[!NOTE]说明 下表为所有产品型号的数据通路汇总。具体每条数据通路是否在特定产品上支持请以对应API接口文档中的产品支持情况表格为准。表 1数据搬运功能总览源SRC目的DST流水Pipeline功能支持的APIGlobal MemoryL1 BufferMTE2将Global Memory中的矩阵数据连续搬运至L1 Buffer做中转。DataCopyGlobal MemoryL1 BufferMTE2将Global Memory中的矩阵数据通过高维切分方式搬运至L1 Buffer做中转。DataCopyGlobal MemoryL1 BufferMTE2将Global Memory中的矩阵数据搬运到L1 Buffer的同时实现ND到NZ格式的随路转换。DataCopyGlobal MemoryL1 BufferMTE2将Global Memory中的矩阵数据搬运到L1 Buffer的同时实现DN到NZ格式的随路转换。DataCopyGlobal MemoryL1 BufferMTE2将Global Memory中的非对齐数据搬运至L1 Buffer并对边界无效区域做Padding填充。DataCopyPadGlobal MemoryL1 BufferMTE2将Global Memory中的NZ格式数据搬运至L1 Buffer。LoadData2D矩阵搬运Global MemoryL1 BufferMTE2将Global Memory中的NZ格式数据搬运至L1 Buffer。LoadData2D矩阵搬运V2Global MemoryL0A BufferMTE2将Global Memory中的2D格式分形矩阵搬运至L0A Buffer作为矩阵计算的左矩阵输入。LoadData2D矩阵搬运Global MemoryL0B BufferMTE2将Global Memory中的2D格式分形矩阵搬运至L0B Buffer作为矩阵计算的右矩阵输入。LoadData2D矩阵搬运Global MemoryUnified BufferMTE2将Global Memory中的矩阵数据连续搬运至Unified Buffer。DataCopyGlobal MemoryUnified BufferMTE2将Global Memory中的矩阵数据通过高维切分方式搬运至Unified Buffer。DataCopyGlobal MemoryUnified BufferMTE2将Global Memory中的数据按切片方式搬运至Unified Buffer。DataCopyGlobal MemoryUnified BufferMTE2将Global Memory中的数据搬运至Unified Buffer的同时完成ND到NZ格式的随路转换。DataCopyGlobal MemoryUnified BufferMTE2将Global Memory中的数据以NDDMA方式多维搬运至Unified Buffer。DataCopyGlobal MemoryUnified BufferMTE2将Global Memory中的非对齐数据搬运至Unified Buffer并对边界无效区域做Padding填充。DataCopyPadUnified BufferGlobal MemoryMTE3将Unified Buffer中的数据搬运到Global Memory的同时完成NZ到ND格式的随路转换。DataCopyUnified BufferGlobal MemoryMTE3将Unified Buffer中的非对齐数据搬运到Global Memory并对边界无效区域做Padding填充。DataCopyPadUnified BufferL1 BufferMTE3将Unified Buffer中的数据连续搬运至L1 Buffer。DataCopyUnified BufferL1 BufferMTE3将Unified Buffer中的数据通过高维切分方式搬运至L1 Buffer。DataCopyUnified BufferL1 BufferMTE3将Unified Buffer中的数据搬运到L1 Buffer的同时完成ND到NZ格式的随路转换。DataCopyUnified BufferL1 BufferMTE3将Unified Buffer中的非对齐数据搬运到L1 Buffer并对边界无效区域做Padding填充。DataCopyPadL1 BufferUnified BufferMTE3将L1 Buffer中的数据连续搬运至Unified Buffer。DataCopyL1ToUBL1 BufferUnified BufferMTE3将L1 Buffer中的数据通过高维切分方式搬运至Unified Buffer。DataCopyL1ToUBL1 BufferL0A BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0A Buffer作为Cube矩阵乘的左矩阵输入。LoadData2D矩阵搬运L1 BufferL0A BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0A Buffer作为Cube矩阵乘的左矩阵输入。LoadData2D矩阵搬运V2L1 BufferL0A BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0A Buffer作为Cube矩阵乘的左矩阵输入。LoadDataMX矩阵搬运L1 BufferL0A BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0A Buffer的同时完成转置。LoadDataWithTransposeL1 BufferL0A BufferMTE1将L1 Buffer中的3D格式分形矩阵搬运至L0A Buffer支持3D-Tile规则搬运。LoadData卷积数据搬运L1 BufferL0A BufferMTE1将L1 Buffer中的3D格式分形矩阵搬运至L0A Buffer支持3D-Tile规则搬运支持配置输出矩阵K轴方向偏移量。LoadDataWithStrideL1 BufferL0B BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0B Buffer作为Cube矩阵乘的右矩阵输入。LoadData2D矩阵搬运L1 BufferL0B BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0B Buffer作为Cube矩阵乘的右矩阵输入。LoadData2D矩阵搬运V2L1 BufferL0B BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0B Buffer作为Cube矩阵乘的右矩阵输入。LoadDataMX矩阵搬运L1 BufferL0B BufferMTE1将L1 Buffer中的2D格式分形矩阵搬运至L0B Buffer的同时完成转置。LoadDataWithTransposeL1 BufferL0B BufferMTE1将L1 Buffer中的3D格式分形矩阵搬运至L0B Buffer支持3D-Tile规则搬运。LoadData卷积数据搬运L1 BufferL0B BufferMTE1将L1 Buffer中的3D格式分形矩阵搬运至L0B Buffer支持3D-Tile规则搬运支持配置输出矩阵K轴方向偏移量。LoadDataWithStrideL1 BufferL0B BufferMTE1将L1 Buffer中的稠密权重矩阵搬运至L0B Buffer同时支持稀疏解压。LoadDataWithSparseL1 BufferBiasTable BufferMTE1将L1 Buffer中的偏置数据连续搬运至BiasTable Buffer供矩阵计算使用。DataCopyL1 BufferBiasTable BufferMTE1将L1 Buffer中的偏置数据通过高维切分方式搬运至BiasTable Buffer。DataCopyL1 BufferFixpipe BufferFixPipe将矩阵数据搬出需要的随路量化和随路relu参数从L1 Buffer连续搬运至Fixpipe Buffer。DataCopyL1 BufferFixpipe BufferFixPipe将矩阵数据搬出需要的随路量化和随路relu参数从L1 Buffer通过高维切分方式搬运至Fixpipe Buffer。DataCopyL0C BufferGlobal MemoryFixPipe将Cube计算结果从L0C Buffer搬运到Global Memory支持随路量化和激活后处理。DataCopyL0C BufferGlobal MemoryFixPipe将Cube计算结果从L0C Buffer搬运到Global Memory通过FixPipe流水完成量化、激活、格式转换。FixPipeL0C BufferL1 BufferFixPipe将Cube计算结果从L0C Buffer搬运至L1 Buffer做中转支持随路量化和激活。DataCopyL0C BufferL1 BufferFixPipe将Cube计算结果从L0C Buffer搬运至L1 Buffer做中转通过FixPipe完成量化、激活、格式转换。FixPipeL0C BufferUnified BufferMTE3将Cube计算结果从L0C Buffer搬运至Unified Buffer支持随路量化和激活后处理。DataCopyL0C BufferUnified BufferMTE3将Cube计算结果从L0C Buffer搬运至Unified Buffer通过FixPipe完成量化、激活、格式转换。FixPipeUnified BufferUnified BufferPIPE_VUnified Buffer内部连续数据搬移。DataCopyUnified BufferUnified BufferPIPE_VUnified Buffer内部通过高维切分方式搬移数据。DataCopyUnified BufferUnified BufferPIPE_VUnified Buffer内部连续数据搬移。CopyUnified BufferUnified BufferPIPE_VUnified Buffer内部掩码式高维数据搬移。Copy【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

Platinum-MD完整指南:免费实现NetMD音乐传输的现代化解决方案

Platinum-MD完整指南:免费实现NetMD音乐传输的现代化解决方案

Platinum-MD完整指南:免费实现NetMD音乐传输的现代化解决方案 【免费下载链接】platinum-md Minidisc NetMD Conversion and Upload 项目地址: https://gitcode.com/gh_mirrors/pl/platinum-md Platinum-MD是一款专为NetMD MiniDisc设备设计的现代化管理工具…

2026/7/16 16:16:59
律所私有化AI部署实战:可控性、知识图谱与三层过滤架构

律所私有化AI部署实战:可控性、知识图谱与三层过滤架构

1. 律所为什么突然开始自建AI系统?不是买SaaS就完事了吗? “我们上周刚拒掉一个报价80万/年的法律AI合同——不是嫌贵,是发现它连我们最常用的《民法典》第597条司法解释都标错了引用来源。” 这是上个月和某华东地区中型律所技术负责人吃午…

2026/7/16 16:16:59
HiddenEye Reborn未来路线图:即将推出的10大令人期待功能

HiddenEye Reborn未来路线图:即将推出的10大令人期待功能

HiddenEye Reborn未来路线图:即将推出的10大令人期待功能 【免费下载链接】HiddenEyeReborn HiddenEye Reborn in better shape than ever, rewritten from scratch and adapted to modern world 项目地址: https://gitcode.com/gh_mirrors/hi/HiddenEyeReborn …

2026/7/16 16:16:59
构建可定制化FPGA架构:OpenFPGA开源IP生成器的架构设计与实现指南

构建可定制化FPGA架构:OpenFPGA开源IP生成器的架构设计与实现指南

构建可定制化FPGA架构:OpenFPGA开源IP生成器的架构设计与实现指南 【免费下载链接】OpenFPGA An Open-source FPGA IP Generator 项目地址: https://gitcode.com/gh_mirrors/op/OpenFPGA 在当今快速发展的数字电路设计领域,FPGA(现场可…

2026/7/16 16:16:59
Android_tools社区指南:如何参与项目开发与获取支持

Android_tools社区指南:如何参与项目开发与获取支持

Android_tools社区指南:如何参与项目开发与获取支持 【免费下载链接】android_tools Bash scripts for ROM development stuff. 项目地址: https://gitcode.com/gh_mirrors/and/android_tools Android_tools是一个专为ROM开发打造的Bash脚本集合,…

2026/7/16 16:16:59
寄存器型FIFO的VHDL实现与优化技巧

寄存器型FIFO的VHDL实现与优化技巧

1. 寄存器型FIFO的设计背景与核心价值在数字电路设计中,数据缓冲是连接不同时钟域或处理速率不匹配模块的关键组件。寄存器型FIFO(First In First Out)以其实现简单、时序可控的特点,成为中小规模数据缓冲场景的首选方案。与基于R…

2026/7/16 16:11:58

月新闻