news 2026/7/18 7:16:13

cann/asc-devkit:避免bank冲突(NPU架构版本2201)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
cann/asc-devkit:避免bank冲突(NPU架构版本2201)

避免bank冲突(NPU架构版本2201)

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

【优先级】高

[!NOTE]说明 该性能优化建议适用于如下产品型号:

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

【描述】为了提高数据访问的效率和吞吐量,Unified Buffer采用了bank(大小相等的内存模块)结构设计。Unified Buffer总大小为192K,划分为48个bank。每个bank由128行组成,每行长度为32B。这48个bank进一步组织为16个bank group,每个bank group包含3个bank,例如bank15、bank31和bank47组成一个bank group。

图1bank结构示意图(图中箭头方向表示内存排布的顺序)
![](https://raw.gitcode.com/cann/asc-devkit/raw/ded540824a702f5cab69a36879315c31ce8ff9b7/docs/zh/guide/figures/bank结构示意图(图中箭头方向表示内存排布的顺序).png "bank结构示意图(图中箭头方向表示内存排布的顺序)"?utm_source=gitcode_repo_files)

每个bank可以独立地进行数据的读写操作,允许多个数据请求同时进行。然而,当多个读写操作试图同时访问同一个bank或bank group时,由于硬件资源的限制,这些操作必须排队等待,会导致bank冲突,引起性能下降。

具体来说,Vector计算单元每拍(一个指令周期)能够从每个bank group中读取或写入一行数据。如果同一个API中的多个操作试图同时访问同一个bank或bank group,Vector计算单元无法在同一个周期内处理所有请求,导致这些请求排队等待。这种排队增加了数据访问的延迟,降低了系统的整体性能。

bank冲突的典型场景

bank冲突主要可以分为以下三种场景:

  • 读写冲突:读操作和写操作同时尝试访问同一个bank。
  • 写写冲突:多个写操作同时尝试访问同一个bank group。
  • 读读冲突:多个读操作同时尝试访问同一个bank group。

下文给出了一些具体的示例,假设,0x10000地址在bank16上,0x10020在bank17上,0x20020在bank33上,如下图所示:

图2地址分配示意图
![](https://raw.gitcode.com/cann/asc-devkit/raw/ded540824a702f5cab69a36879315c31ce8ff9b7/docs/zh/guide/figures/地址分配示意图.png "地址分配示意图"?utm_source=gitcode_repo_files)

[!NOTE]说明 通过msOpProf工具可以进行资源冲突占比的相关性能数据采集。 工具的具体使用方法和资源冲突占比文件性能数据文件说明请参考《msOpProf用户指南》。

如何避免bank冲突

避免bank冲突的方法有两种:优化计算逻辑优化地址分配

更多的UB Bank冲突场景分析可参考bank冲突分析样例。

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/18 7:15:59

CMOS模拟IC版图设计实战:匹配与寄生参数控制

1. 集成电路版图设计的重要性与核心挑战在半导体行业摸爬滚打十几年,我见过太多工程师把90%的精力放在电路设计上,却对版图设计草草了事。直到某次流片失败后,我们团队才真正明白:再精妙的电路设计,如果版图实现不当&a…

作者头像 李华
网站建设 2026/7/18 7:14:16

基于OpenCV与MediaPipe实现低成本实时动作捕捉驱动Unity角色

1. 项目概述:低成本动捕的平民化之路作为一名在游戏开发和交互技术领域摸爬滚打了十多年的老手,我见过太多团队和个人被高昂的动作捕捉设备劝退。一套专业的惯性动捕服或光学动捕系统,动辄数十万甚至上百万的投入,对于独立开发者、…

作者头像 李华
网站建设 2026/7/18 7:13:49

Mayo 3D CAD查看器终极技术解析与实战指南

Mayo 3D CAD查看器终极技术解析与实战指南 【免费下载链接】mayo 3D CAD viewer and converter based on Qt OpenCascade 项目地址: https://gitcode.com/gh_mirrors/ma/mayo 在现代工程设计领域,跨平台3D CAD查看器已成为工程师、设计师和制造团队的核心工…

作者头像 李华
网站建设 2026/7/18 7:12:54

CMOS工艺中P型衬底的优势与应用解析

1. CMOS工艺与衬底选择的技术背景在半导体制造领域,CMOS(互补金属氧化物半导体)工艺自20世纪60年代问世以来,逐渐成为集成电路制造的主流技术。这种工艺的核心在于同时使用NMOS和PMOS两种晶体管,通过它们的互补特性实现…

作者头像 李华
网站建设 2026/7/18 7:11:44

Redis---set类型

SET的特点1.集合中的元素时无序的,也就是说顺序是不重要的举个例子:1 2 3与1 3 2是一样的,没有任何区别的,反之有序就是有区别的2.集合中的元素是不能重复的3.和list一样value中的每个类型都是string类型,可以使用json…

作者头像 李华
网站建设 2026/7/18 7:10:20

街拍美女大合集,600G图集包免费领

本街拍资源汇集全网街拍图片,剔除重复与低质内容,最终形成这套全面、多样且高质量的【街拍美图大合集】。内容专注于街拍美女、时尚街拍、路人抓拍等热门类型,涵盖了各种风格、场景与季节的街拍图集,是寻找灵感、收藏欣赏的优质选…

作者头像 李华