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

CANN/shmem SDMA使用说明

SDMA使用说明

【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem

环境要求和准备

SDMA功能在9.0.0及以上版本(尝鲜版)新增支持。需要下载并安装以下cann和ops软件包:

  • toolkit包(x86_64/aarch64)
  • ops-legacy包(根据硬件平台下载对应版本:A2 x86_64/A2 aarch64/A3 x86_64/A3 aarch64)

example使用方式:

1.在shmem/目录编译软件包并安装:

bash scripts/build.sh -package ./install/*/SHMEM_1.0.0_linux-*.run --install

2.在shmem/目录下编译examples:

bash scripts/build.sh -examples

3.在shmem/examples/sdma目录执行demo:

bash run.sh -pes ${PES} -type ${TYPES}
  • 参数说明
    • PES:指定用于运行的设备(NPU)数量,限定单台机器内。
    • TYPES:指定传输数据类型,当前支持:int,uint8,int64,fp32。

SDMA接口使用说明

aclshmemx_sdma_put_nbi

以指针类型参数接口为例:

ACLSHMEM_DEVICE void aclshmemx_sdma_put_nbi(__gm__ T *dst, __gm__ T *src, __ubuf__ T *buf, uint32_t ub_size, uint32_t elem_size, int pe, uint32_t sync_id)

接口功能:把PE pe上的src地址中的数据传输到dst地址,传输elem_size个元素。 | 参数名 | 含义 | |--------------|----------------------------------------------------------------------| | dst | 目标卡上目的地址在本卡上的对称地址 | | src | 本卡上的源地址 | | buf | 缓冲区地址 | | ub_size | 缓冲区大小 | | elem_size | 元素个数 | | pe | 目标PE | | sync_id | 同步ID |

aclshmemx_sdma_get_nbi

以指针类型参数接口为例:

ACLSHMEM_DEVICE void aclshmemx_sdma_get_nbi(__gm__ T *dst, __gm__ T *src, __ubuf__ T *buf, uint32_t ub_size, uint32_t elem_size, int pe, uint32_t sync_id)

接口功能:把PE pe上的dst地址中的数据传输到src地址,传输elem_size个元素。 | 参数名 | 含义 | |--------------|----------------------------------------------------------------------| | dst | 目标卡上目的地址在本卡上的对称地址 | | src | 本卡上的源地址 | | buf | 缓冲区地址 | | ub_size | 缓冲区大小 | | elem_size | 元素个数 | | pe | 目标PE | | sync_id | 同步ID |

注意事项

aclshmemx_sdma_put_nbiaclshmemx_sdma_get_nbi都是非阻塞接口,调用后立即返回,不等待数据传输完成。用户使用时,可通过以下两种方式确保数据传输完成:

  1. 所有调用aclshmemx_sdma_put/get_nbi的核,在sdma任务结束后,算子内调用aclshmemx_sdma_quiet接口,等待所有SDMA操作完成。
    适用场景:算子内后续操作依赖sdma任务完成,例如后续算子需要使用sdma传输好的数据。
  2. 所有调用aclshmemx_sdma_put/get_nbi的核,在sdma任务结束后,算子内调用aclshmemx_sdma_notify_record接口,然后在host侧调用aclrtWaitAndResetNotify接口,等待指定的同步ID完成(详细用法可查看NotifyWait机制使用说明)。
    适用场景:其它stream上的kernel需要等待sdma任务完成后才能继续执行。

【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem

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

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

相关文章:

  • CANN/pyasc核间同步接口文档
  • 开源3D模型实战:从GitHub资源到Unity/Blender高效应用与优化
  • pywencai:从自然语言到金融数据的智能桥梁
  • CANN/ops-nn贡献指南
  • Web 3.0技术融合:区块链、AI与边缘计算的协同架构与实践
  • 2026年降AI工具万方实测对比:主流五款工具万方AIGC检测通过率与价格完整分析
  • OpenClaw交易框架的智能进化:脉冲神经网络与智能体编排实战
  • GCC编译器智能增强:基于LLM的编译错误自然语言解释工具chatgcc
  • 开源芯片设计实践指南:从RISC-V到GDSII的完整流程解析
  • 终极轻量级Alienware性能优化方案:500KB工具完全替代AWCC
  • 在go-kratos中使用服务注册和发现
  • 我打开Prime Video是为了看剧,它却先让我刷一会儿
  • 那个被裁掉的35岁程序员,后来成了AI训练师
  • 从零搭建GitHub Pages静态博客:Hugo实战与自动化部署指南
  • 手把手教你配置SSH密钥:从本地生成到GitHub、服务器免密登录完整流程
  • AI公平性中的蝴蝶效应:微小偏差如何引发系统性歧视
  • ESP芯片烧录神器esptool:5分钟掌握固件刷写终极指南
  • go语言 mysql DB 使用方法
  • 零基础自建知识图谱网站——数据编辑页面
  • R语言线性回归实战:从lm函数到模型诊断与业务解读
  • Python 开发者如何通过 OpenAI 兼容协议快速调用多模型
  • OpenClaw会话审计插件:为AI代理打造透明化操作日志与安全监控
  • 2026年杭州美发培训机构选型:欧曼谛美发学校好不好深度解析 - 产业观察网
  • XAI评估新框架:从信息质量到社会价值的全面度量
  • TMS320DM6467引导模式详解与配置指南
  • STM32 SysTick定时器保姆级教程:从9分频到72M主频,彻底搞懂delay_us()底层原理
  • 祝睿融
  • 钢套铜套核心技术突破:中浮动力领航精密传动部件行业新标杆 - 品牌策略师
  • 多语言开发依赖加速:智能代理multicodex-proxy原理与部署指南
  • AI工具搭建自动化视频生成自动创建工单