发布时间:2026/7/16 23:02:36
CANN/asc-devkit系统缓存概述
# 系统缓存概述【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkitCache类型Cache缓存的主要作用是在搬运单元或Scalar单元与外部存储之间提供一层高速缓冲以降低数据访问延迟并提高带宽利用率。通常情况下被频繁访问的数据会写入Cache搬运单元或Scalar单元在执行过程中优先从Cache中读取数据当Cache未命中时再从外部存储加载数据并更新到Cache中。表1展示了不同类型的Cache的功能不同产品中支持的Cache类型不同具体情况如下以NPU架构版本3510为例图1展示了AI Core中支持的五类CacheL2 Cache、DCache、ICache、SIMT DCache、NDDMA Cache在硬件架构中的位置关系。图1五类Cache在AI Core中的位置关系示意图![](https://raw.gitcode.com/cann/asc-devkit/raw/1cd1d1192e01ae4a8684cd07552c35e13e5c4bdf/docs/zh/api/figures/atlas_950_cache_architecture_diagram.png atlas_950_cache_architecture_diagram?utm_sourcegitcode_repo_files)以NPU架构版本2201为例图2展示了AI Core中支持的三类CacheL2 Cache、DCache和ICache在硬件架构中的位置关系。图2三类Cache在AI Core中的位置关系示意图![](https://raw.gitcode.com/cann/asc-devkit/raw/1cd1d1192e01ae4a8684cd07552c35e13e5c4bdf/docs/zh/api/figures/atlas_a2_a3_cache_architecture_diagram.png atlas_a2_a3_cache_architecture_diagram?utm_sourcegitcode_repo_files)表1Cache类型及功能说明Cache类型说明L2 CacheL2 Cache作为二级缓存专门用于存储频繁访问的数据和指令以便减少对GM的读写。•通过MTE2单元读取GM时优先从L2 Cache中读取数据当L2 Cache未命中时再从GM加载数据并更新到L2 Cache中。•通过Scalar单元读取GM时优先从DCache中读取数据当DCache未命中时再从L2 Cache中读取数据。当L2 Cache也未命中时再从GM加载数据并更新到L2 Cache和DCache中。•通过Scalar单元读取GM指令时优先从ICache中读取指令当ICache未命中时再从L2 Cache中读取指令。当L2 Cache也未命中时再从GM加载指令并更新到L2 Cache和ICache中。DCacheDCacheData Cache用于缓存Scalar单元近期可能被重复访问的数据段。通过Scalar单元读取GM时优先从DCache中读取数据当DCache未命中时再从L2 Cache中读取数据。当L2 Cache也未命中时再从GM加载数据并更新到L2 Cache和DCache中。ICacheICacheInstruction Cache用于缓存Scalar单元最近使用或频繁使用的指令。通过Scalar单元读取GM指令时优先从ICache中读取指令当ICache未命中时再从L2 Cache中读取指令。当L2 Cache也未命中时再从GM加载指令并更新到L2 Cache和ICache中。SIMT DCacheSIMT访问GM需要经过SIMT DCache中转。数据流经由GM到SIMT DCache再从SIMT DCache到SIMT寄存器SIMT DCache充当中间缓冲层减少对GM的直接访问次数。NDDMA CacheNDDMA Cache用于缓存最近或即将被多维数据搬运DataCopy.md)接口搬运的数据。Cache操作及使用场景表2介绍了缓存的四种基础操作及其核心功能。表2Cache操作及功能说明操作名称功能说明Prefetch硬件根据访问模式自动将预期访问的数据提前加载到缓存提升后续访问速度。Preload软件通过显式指令将指定数据主动加载到缓存为即将到来的读写操作做准备。Invalid•将指定地址范围的Cache Line缓存的最小操作单元标记为“无效”使其从缓存中移除。•保证下一次访问这些内存地址时会从GM重新加载数据而不是使用可能过期的缓存数据。•注意Invalid操作不检查缓存行是否为“脏”dirty表示该数据已被修改但尚未写回到GM若存在脏数据将被直接丢弃。Clean将缓存中被修改过的数据脏数据写回到GM中避免数据丢失。Clean操作不将缓存行标记为“无效”缓存行仍保持有效状态。Cache写策略与Cache一致性问题当向GM写入数据并且启用Cache时存在以下两种Cache写策略延迟写回Write-Back和直写Write-Through。当向GM写数据时采取延迟写回策略工作原理如下开发者预期向GM写入数据即期望数据直接写入GM硬件实际行为是当数据被修改时只在缓存中更新数据。缓存中的数据标记为“脏”。当该Cache Line被替换时或通过软件显式执行Clean操作时数据才会被写回GMCache Line何时被替换由硬件决定。替换Cache Line数据时当缓存空间不足需要替换数据时检查被替换的数据是否为“脏”。如果是“脏”数据先将其写回到GM然后再将该Cache Line替换出缓存。当向GM写入数据时若采用直写Write-Through策略其工作原理如下开发者预期向GM写入数据即期望数据直接写入GM硬件实际行为是当数据被修改时立即在缓存和GM中更新数据。缓存行无需标记为“脏”。替换Cache Line数据时由于每次写数据都同步更新GM因此缓存中的数据不存在“脏”状态也无需在替换时额外写回GM。在延迟写回策略下被修改的数据仅更新在本地缓存中不会立即同步到GM。当其他核读取GM上同一地址时获取的将是过时数据从而导致不同核间缓存数据不一致。 Cache一致性是多核中确保数据正确性的核心机制。简单来说当多个核各自拥有独立的Cache时它们可能同时缓存相同的数据。如果某个核修改了缓存中的数据其他核的缓存副本就会变得“过时”如果不及时同步就会导致多个核间的数据不一致进而引发计算错误。下面介绍不同产品中每种类型Cache是否需要考虑多核间数据不一致针对NPU架构版本3510该产品支持的五类Cache在多核间数据一致性方面的情况如下L2 Cache多核间共享的缓存因此不需要考虑多核间数据不一致的问题。DCache多核独立缓存因此需要考虑多核间数据一致性的问题。ICache只读因此不需要考虑多核间数据不一致的问题。NDDMA Cache多核独立缓存因此需要考虑多核间数据一致性的问题。SIMT DCache在SIMT中写入数据时会立即写入GM不存在一致性问题从GM读取数据时多核独立缓存需要考虑多核间数据一致性的问题。针对NPU架构版本2201支持的三类Cache在多核间数据一致性方面的情况如下L2 Cache多核间共享的缓存因此不需要考虑多核间数据不一致的问题。DCache多核独立缓存因此需要考虑多核间数据一致性的问题。ICache只读因此不需要考虑多核间数据不一致的问题。缓存控制接口汇总表3按照Cache类型L2 Cache、DCache、ICache、NDDMA Cache汇总了与缓存控制相关的接口及其功能说明。表3缓存控制接口汇总Cache类型接口名称功能简述L2 CacheSetL2CacheHint读写GM的数据都默认被缓存在L2 Cache默认启用L2 CacheSetL2CacheHint能够设置GlobalTensor是否启用L2 Cache。DCacheDataCachePreloadDataCachePreload接口从源地址所在的特定GM地址预加载数据到DCache中每次调用只能预加载一个Cache Line大小的数据。DCacheDataCacheCleanAndInvalid当Scalar单元访问GM时使用该接口刷新Cache保证Cache的一致性使用场景如下•读取GM的数据但该数据可能在外部被其余核修改此时需要使用DataCacheCleanAndInvalid接口直接访问GM获取最新数据。•用户通过Scalar单元写GM的数据希望立刻写出也需要使用DataCacheCleanAndInvalid接口。DCacheReadGmByPassDCache.md)/WriteGmByPassDCache.md)不经过DCache向GM地址上读/写数据。使用场景•当多个核写入的数据落在同一条Cache Line内时经过DCache的读写将以64B为粒度可能引发多核数据随机覆盖问题。使用该接口不经过DCache直接按操作数大小读/写GM可避免此问题。•使用该接口不经过DCache直接向GM读/写数据可避免由DCache缓存引发的多核间数据不一致问题。ICacheICachePreLoad.md)开发者手动调用ICachePreLoad接口能够从指令所在GM地址预加载指令到ICache中。ICacheGetICachePreloadStatus.md)GetICachePreloadStatus为调试接口在调用ICachePreLoad后调用用于获取ICache的PreLoad的状态。当返回值为0时说明ICache的PreLoad已完成当返回值为1时说明ICache的PreLoad未完成。NDDMA CacheNdDmaDci在使用多维数据搬运DataCopy.md)接口进行数据搬运前需要使用NdDmaDci接口刷新NDDMA Cache缓存保证为最新状态。【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OpenAI取消5小时限制:Codex与ChatGPT Work深度整合的技术解析
2026/7/16 23:02:36

OpenAI取消5小时限制:Codex与ChatGPT Work深度整合的技术解析

如果你正在使用 OpenAI 的付费服务,最近可能遇到了一个让人困惑的问题:原本在 Plus、Pro 和 Business 订阅计划中存在的 5 小时使用限制突然消失了。这不是系统故障,而是 OpenAI 近期对 Codex 和 ChatGPT Work 功能进行的一次重要策略调整。对…

阅读更多
Ascend C ICachePreLoad缓存预加载
2026/7/16 23:02:36

Ascend C ICachePreLoad缓存预加载

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

阅读更多
SpringBoot系列19:生产环境性能调优:JVM参数、连接池、接口慢查询优化(完整版)
2026/7/16 22:02:35

SpringBoot系列19:生产环境性能调优:JVM参数、连接池、接口慢查询优化(完整版)

文章目录📌 专栏:SpringBoot进阶实战系列🎯 本文独家核心收获(区别于全网水文)一、前言:为什么生产环境必须做性能调优?二、性能调优核心流程(生产标准规范)2.1 标准调优…

阅读更多
esp32开发与应用(和stm32f103用spi通信)
2026/7/17 1:02:36

esp32开发与应用(和stm32f103用spi通信)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 现在esp32和mcu一起出现的场合很多,前者适合网络传输和屏幕显示,后者则多出现在工业场景。所以两者一起出现就可以发挥各自…

阅读更多
鸿蒙APP如何复用已有小程序资产,将微信小程序运行在原生鸿蒙系统
2026/7/17 1:02:36

鸿蒙APP如何复用已有小程序资产,将微信小程序运行在原生鸿蒙系统

很多企业启动鸿蒙APP建设时,难点并不只在ArkTS工程本身。已有Android、iOS和微信小程序已经承载了大量业务,服务入口、活动页、商城、设备控制、会员权益、售后工单都跑了多年。如果鸿蒙端全部重新开发一遍,页面、接口、测试用例、运营后台和…

阅读更多
JetBrains IDE评估重置机制技术实现深度解析
2026/7/17 1:02:36

JetBrains IDE评估重置机制技术实现深度解析

JetBrains IDE评估重置机制技术实现深度解析 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 核心架构设计与实现原理 ide-eval-resetter是一个针对JetBrains系列IDE的评估信息重置工具,通过系统化的文…

阅读更多
深圳商标设计师进阶指南:基于用户心智模型的LOGO视觉锤打造全流程
2026/7/17 1:02:36

深圳商标设计师进阶指南:基于用户心智模型的LOGO视觉锤打造全流程

深圳商标设计师进阶指南:基于用户心智模型的LOGO视觉锤打造全流程在深圳这座“设计之都”,商标设计早已不是画个Logo那么简单。当极简成为标配、当视觉同质化加剧,真正拉开品牌差距的,是设计师能否用一枚商标精准“钉”入用户心智…

阅读更多
设计决策结构化:Lovart+Skills如何实现1秒调用10年经验
2026/7/17 1:02:36

设计决策结构化:Lovart+Skills如何实现1秒调用10年经验

1. 项目概述:这不是加载速度,是设计认知的代际跃迁“降维打击!LovartSkills1秒加载10年设计功力!”——看到这个标题,我第一反应不是点开,而是放下手头正在调的色板,把这句话抄在了速写本第一页…

阅读更多
男士脱毛护理门店如何精准获客?餐宝盈小程序与GEO服务提升预约转化,含零代码SAAS、AI编程、源码定制
2026/7/17 0:02:36

男士脱毛护理门店如何精准获客?餐宝盈小程序与GEO服务提升预约转化,含零代码SAAS、AI编程、源码定制

摘要 在本地生活商家越来越依赖搜索推荐、内容种草和 AI 问答触达用户的背景下,男士脱毛护理 门店的获客难点也变得更加明显。很多商家线下服务不差,但线上表达分散、成交入口不统一、客户数据沉淀不到自己手里,导致流量来了也留不住。本文围…

阅读更多
智慧树刷课插件:5分钟实现自动化学习的智能助手
2026/7/16 21:32:43

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

阅读更多
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案
2026/7/16 15:03:34

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

阅读更多
办公自动化实战:5个免费工具构建合同处理流水线
2026/7/16 22:47:50

办公自动化实战:5个免费工具构建合同处理流水线

1. 这不是“又一个工具包”,而是一套经过237次真实场景验证的效率组合拳“2026.04.28实用教程工具分享”这个标题乍看平平无奇,像极了你邮箱里被自动归入“促销/订阅”文件夹的那类通知——但如果你真把它当普通更新忽略,接下来半年里&#x…

阅读更多
2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制
2026/7/17 0:02:36

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网,核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验,企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明,以及更换服务…

阅读更多
HarmonyOS 应用开发《掌上英语》第18篇:Grid 布局实战——从功能 5 宫格到练习 2×2 模式
2026/7/17 0:02:36

HarmonyOS 应用开发《掌上英语》第18篇:Grid 布局实战——从功能 5 宫格到练习 2×2 模式

Grid 布局实战——从功能 5 宫格到练习 22 模式引言 Grid 布局是 ArkTS 中最强大的布局容器之一,它通过行列模板系统实现灵活的多列多行布局。在本英语学习 App 中,Grid 布局贯穿了首页的多个核心模块:功能栏 5 宫格、练习模式 22 卡片、以及…

阅读更多
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析
2026/7/17 0:02:36

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中,卡片翻转动画是最受欢迎的交互动效之一,它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面(CourseHomePage.ets)中,就…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/13 21:11:56

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/14 16:39:14

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/14 16:39:14

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多