当前位置: 首页 > news >正文

CANN/runtime CMO缓存操作

11-06 CMO 缓存操作

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

本章节描述 CMO(Cache Maintenance Operations)缓存操作接口,用于缓存刷新与失效操作。

  • aclError aclrtMemFlush(void *devPtr, size_t size):将Cache中的数据刷新到DDR中,并将Cache中的内容设置成无效。
  • aclError aclrtMemInvalidate(void *devPtr, size_t size):将Cache中的数据设置成无效。
  • aclError aclrtCmoAsync(void *src, size_t size, aclrtCmoType cmoType, aclrtStream stream):实现Device上的Cache内存操作。异步接口。
  • aclError aclrtCmoAsyncWithBarrier(void *src, size_t size, aclrtCmoType cmoType, uint32_t barrierId, aclrtStream stream):实现Device上的Cache内存操作,同时携带barrierId,barrierId表示Cache内存操作的屏障标识。异步接口。
  • aclError aclrtCmoWaitBarrier(aclrtBarrierTaskInfo *taskInfo, aclrtStream stream, uint32_t flag):等待具有指定barrierId的Invalid内存操作任务执行完成。异步接口。
  • aclError aclrtCmoGetDescSize(size_t *size):获取当前Device上的Cache内存描述符占用的内存大小。
  • aclError aclrtCmoSetDesc(void *cmoDesc, void *src, size_t size):设置Cache内存描述符,此接口调用完成后,会将源内存地址、内存大小记录到Cache内存描述符中。
  • aclError aclrtCmoAsyncWithDesc(void *cmoDesc, aclrtCmoType cmoType, aclrtStream stream, const void *reserve):使用内存描述符(二级指针方式)操作Device上的Cache内存。异步接口。

aclrtMemFlush

aclError aclrtMemFlush(void *devPtr, size_t size)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

将Cache中的数据刷新到DDR中,并将Cache中的内容设置成无效。

该版本不需要用户处理CPU与NPU之间的Cache一致性,无需调用该接口。

参数说明

参数名输入/输出说明
devPtr输入要Flush的DDR内存起始地址指针。
size输入要Flush的DDR内存大小,单位Byte。
size不能为0。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtMemInvalidate

aclError aclrtMemInvalidate(void *devPtr, size_t size)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

将Cache中的数据设置成无效。

该版本不需要用户处理CPU与NPU之间的Cache一致性,无需调用该接口。

参数说明

参数名输入/输出说明
devPtr输入需要将其中Cache数据置为无效的DDR内存起始地址指针。
size输入DDR内存大小,单位Byte。
size不能为0。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtCmoAsync

aclError aclrtCmoAsync(void *src, size_t size, aclrtCmoType cmoType, aclrtStream stream)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

实现Device上的Cache内存操作。异步接口。

参数说明

参数名输入/输出说明
src输入待操作的Device内存地址。
只支持本Device上的Cache内存操作。
size输入待操作的Device内存大小,单位Byte。
cmoType输入Cache内存操作类型。类型定义请参见aclrtCmoType。
当前仅支持ACL_RT_CMO_TYPE_PREFETCH(内存预取)。
stream输入执行内存操作任务的Stream。类型定义请参见aclrtStream。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtCmoAsyncWithBarrier

aclError aclrtCmoAsyncWithBarrier(void *src, size_t size, aclrtCmoType cmoType, uint32_t barrierId, aclrtStream stream)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

实现Device上的Cache内存操作,同时携带barrierId,barrierId表示Cache内存操作的屏障标识。异步接口。

参数说明

参数名输入/输出说明
src输入待操作的Device内存地址。
只支持本Device上的Cache内存操作。
size输入待操作的Device内存大小,单位Byte。
cmoType输入Cache内存操作类型。类型定义请参见aclrtCmoType。
barrierId输入屏障标识。
当cmoType为ACL_RT_CMO_TYPE_INVALID时,barrierId有效,支持传入大于0的数字,配合aclrtCmoWaitBarrier接口使用,等待具有指定barrierId的Invalid内存操作任务执行完成。当cmoType为其它值时,barrierId固定传0。
stream输入执行内存操作任务的Stream。类型定义请参见aclrtStream。
此处只支持与模型绑定过的Stream,绑定模型与Stream需调用aclmdlRIBindStream接口。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtCmoWaitBarrier

aclError aclrtCmoWaitBarrier(aclrtBarrierTaskInfo *taskInfo, aclrtStream stream, uint32_t flag)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

等待具有指定barrierId的Invalid内存操作任务执行完成。异步接口。

参数说明

参数名输入/输出说明
taskInfo输入Cache内存操作的任务信息。类型定义请参见aclrtBarrierTaskInfo。
任务信息中的cmoType当前仅支持ACL_RT_CMO_TYPE_INVALID。
stream输入执行等待任务的Stream。类型定义请参见aclrtStream。
此处只支持与模型绑定过的Stream,绑定模型与Stream需调用aclmdlRIBindStream接口。
flag输入预留参数。当前固定配置为0。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtCmoGetDescSize

aclError aclrtCmoGetDescSize(size_t *size)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

获取当前Device上的Cache内存描述符占用的内存大小。

参数说明

参数名输入/输出说明
size输出Cache内存描述符大小,单位Byte。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtCmoSetDesc

aclError aclrtCmoSetDesc(void *cmoDesc, void *src, size_t size)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

设置Cache内存描述符,此接口调用完成后,会将源内存地址、内存大小记录到Cache内存描述符中。

参数说明

参数名输入/输出说明
cmoDesc输入Cache内存描述符地址指针。
需先调用aclrtCmoGetDescSize接口获取Cache内存描述符所需的内存大小,再申请Device内存后(例如aclrtMalloc接口),将Device内存地址作为入参传入此处。
src输入待操作的Device内存地址。
只支持本Device上的Cache内存操作。
size输入待操作的Device内存大小,单位Byte。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。




aclrtCmoAsyncWithDesc

aclError aclrtCmoAsyncWithDesc(void *cmoDesc, aclrtCmoType cmoType, aclrtStream stream, const void *reserve)

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

使用内存描述符(二级指针方式)操作Device上的Cache内存。异步接口。

参数说明

参数名输入/输出说明
cmoDesc输入Cache内存描述符地址指针,Device侧内存地址。
此处需先调用aclrtCmoSetDesc接口设置内存描述符,再将内存描述符地址指针作为入参传入本接口。
cmoType输入Cache内存操作类型。类型定义请参见aclrtCmoType。
当前仅支持ACL_RT_CMO_TYPE_PREFETCH(内存预取)。
stream输入执行内存操作任务的Stream。类型定义请参见aclrtStream。
reserve输入预留参数。当前固定传NULL。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

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

http://www.jsqmd.com/news/786278/

相关文章:

  • 基于RAG的本地知识库AI助手:Obsidian+BMO Chatbot部署与应用指南
  • 构建鲁棒性AI医疗模型:从青光眼筛查竞赛到工程实践
  • AI助手技能化:用QA技能库提升自动化测试与质量保障效率
  • Degrees of Lewdity 中文汉化终极指南:从零开始畅玩中文版游戏
  • Spring Boot项目初始化模板:开箱即用的企业级开发脚手架
  • 微信小程序集成ChatGPT:架构设计与工程实践全解析
  • 现代命令行工具开发全解析:从Cobra架构到工程化实践
  • Markdown文档净化实战:使用AST操作实现跨平台内容标准化
  • CANN/ops-math 3D反射填充算子
  • OpenClaw:基于零信任与深度防御的安全AI代理网关架构与实践
  • 基于Tauri+React+TS构建跨平台开发者效率工具:集成AI编程与Git Worktree
  • ComfyUI-Manager终极指南:轻松管理您的AI绘画工作流节点
  • 高性能内存数据库Hermes-Membase:架构解析与生产实践指南
  • 从零构建高性能云原生抓取平台:架构、部署与实战指南
  • LLM数据处理框架llmio:构建声明式数据流水线提升效率
  • 2026年5月,如何为您的项目选择一家可靠的重庆铝代木连廊合作伙伴? - 2026年企业推荐榜
  • Deno终端交互开发实战:基于ANSI转义序列构建现代化CLI应用
  • 从基础到高级RAG:构建智能检索增强生成系统的核心技术与实践
  • 通过curl命令快速测试Taotoken的聊天补全接口是否通畅
  • 为什么选择QtScrcpy?3大突破性特性让Android投屏焕然一新
  • CANN/catlass动态优化量化矩阵乘法示例
  • 2026年第二季度景石批发优选指南:聚焦渔沟镇石业核心竞争力 - 2026年企业推荐榜
  • 预测锦标赛:量化AGI风险与时间线的市场机制
  • 2026年至今,安徽除甲醛专业服务商深度解析:小净熊环保实力如何? - 2026年企业推荐榜
  • ATVOSS默认核配置详解
  • 2026年AIGemini 3.1 Pro赋能无障碍交互新突破
  • Linux 基础知识有哪些?
  • 算法定价、数据驱动与市场博弈:从个性化定价到算法合谋的风险与应对
  • 开源项目赞助管理平台Sponsio:自托管部署与核心架构解析
  • 2026年当前,杭州浴室柜配件一站式解决方案服务商推荐 - 2026年企业推荐榜