news 2026/5/10 6:15:35

CANN运行时异步内存复制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN运行时异步内存复制

6_d2d_async_memory_copy

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

描述

本样例展示了Device内的内存复制,使用aclrtMemcpyAsync内存复制接口。

产品支持情况

本样例支持以下产品:

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

编译运行

环境安装详情以及运行详情请见example目录下的README。

运行步骤如下:

# ${install_root} 替换为 CANN 安装根目录,默认安装在`/usr/local/Ascend`目录 source ${install_root}/cann/set_env.sh export ASCEND_INSTALL_PATH=${install_root}/cann # ${ascend_name} 替换为昇腾AI处理器的型号,可通过 npu-smi info 查看 Name 字段并去掉空格获得,例如 ascend910b3 export SOC_VERSION=${ascend_name} # 部分样例中涉及调用AscendC算子,需配置AscendC编译器ascendc.cmake所在的路径,如 ${install_root}/cann/aarch64-linux/tikcpp/ascendc_kernel_cmake # 可在CANN包安装路径下查找ascendc_kernel_cmake,例如find ./ -name ascendc_kernel_cmake,并将${cmake_path}替换为ascendc_kernel_cmake所在路径 export ASCENDC_CMAKE_DIR=${cmake_path} # 编译运行 bash run.sh

CANN RUNTIME API

在该Sample中,涉及的关键功能点及其关键接口,如下所示:

  • 初始化
    • 调用aclInit接口初始化AscendCL配置。
    • 调用aclFinalize接口实现AscendCL去初始化。
  • Device管理
    • 调用aclrtSetDevice接口指定用于运算的Device。
    • 调用aclrtResetDeviceForce接口强制复位当前运算的Device,回收Device上的资源。
  • Stream管理
    • 调用aclrtCreateStream接口创建Stream。
    • 调用aclrtSynchronizeStream可以阻塞等待Stream上任务的完成。
    • 调用aclrtDestroyStreamForce接口强制销毁Stream,丢弃所有任务。
  • 内存管理
    • 调用aclrtMalloc接口申请Device上的内存。
    • 调用aclrtFree接口释放Device上的内存。
  • 数据传输
    • 调用aclrtMemcpyAsync接口通过内存复制的方式实现Device-to-Device数据传输。

已知issue

暂无

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

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

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

你以为知识图谱很智能,其实它只是“整理数据”

“所谓智能,有时并不是‘知道很多’,而是能够在已知和未知之间建立新的联系。” 在知识图谱相关的介绍里,“智能”是一个非常常见的词。我们会看到这样的说法:知识图谱让机器理解世界,知识图谱让搜索更聪明&#xff0…

作者头像 李华
网站建设 2026/5/10 6:11:50

Supabase database-build:声明式PostgreSQL架构管理的工程实践

1. 项目概述:一个数据库构建的“乐高工厂”如果你在Supabase社区里混过一段时间,大概率会听说过或者用过supabase-community/database-build这个仓库。乍一看名字,它可能被误解为某个数据库的构建脚本或者一个独立的工具。但当你真正深入进去…

作者头像 李华
网站建设 2026/5/10 6:10:43

使用libevent库实现惊人的高并发C++服务器!

libevent编译安装,官网下载安装包并解压。进入解压目录执行:代码语言:Bash自动换行AI代码解释wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz tar -zxvf libevent-2.1.1…

作者头像 李华
网站建设 2026/5/10 6:09:55

基于MCP协议构建AI表情符号工具:从原理到工程实践

1. 项目概述:一个让AI学会“表情包”写作的MCP服务器最近在折腾AI应用开发,特别是围绕OpenAI的模型上下文协议(Model Context Protocol, 简称MCP)做扩展时,发现一个挺有意思的项目:ndlxp2008/wr…

作者头像 李华
网站建设 2026/5/10 6:08:30

universal-dev-mcp:让AI助手直接操作本地开发环境的MCP服务器指南

1. 项目概述:为AI助手装上“本地开发之眼”如果你和我一样,每天大部分时间都泡在代码编辑器里,那你肯定也幻想过:要是我的AI助手能直接看到我本地正在运行的开发服务器、能帮我检查页面、调用API、甚至直接修改源代码,…

作者头像 李华
网站建设 2026/5/10 6:04:33

利用taotoken的用量看板精细化管控ai api调用成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken的用量看板精细化管控AI API调用成本 对于中大型项目的技术管理者而言,将大模型能力集成到产品中已不再是…

作者头像 李华