news 2026/5/9 13:21:30

CANNSHMEM SIMT RMA标量传输示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANNSHMEM SIMT RMA标量传输示例

样例介绍

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

本样例旨在展示 SIMD 与 SIMT 混合编译模式下,SIMT 远程内存访问(RMA)接口的典型使用方法。此样例为单个标量的传输。该类接口主要包含以下两种形式:

  1. __simt_callee__ inline void aclshmem_{NAME}_p(__gm__ TYPE *dst, const TYPE value, int pe)
  2. __simt_callee__ inline void aclshmem_{NAME}_g(__gm__ TYPE *dst, const TYPE value, int pe)

上述接口名称中的占位符{NAME}可选值如下表所示:

占位符可选值
{NAME}half,float,int8,int16,int32,int64,uint8,uint16,uint32,uint64,char,bfloat16

这两种接口的核心功能为实现单标量或小段数据传输:

  • _p接口:将指定的标量数值直接写入到指定计算单元(PE)的目标内存地址中。
  • _g接口:从指定计算单元(PE)的源内存地址中读取单个标量数值。

样例执行流程

本样例通过以下流程演示 RMA 单标量相关接口的具体工作机制:

  1. 环境初始化:首先获取当前计算单元的编号(mype)并计算出下一个 PE的编号作为目标对端。
  2. PUT(写)操作演示:当前 PE 调用写入接口(aclshmem_int32_p),将目标 PE 编号数值,作为标量直接写入至目标 PE 对应的对称内存中。
  3. GET(读)操作演示:当前 PE 调用读取接口(aclshmem_int32_g),从目标 PE 的对称内存中,将存放的标量数值拉取回当前 PE,并存储在本地内存中。
  4. 结果校验:通信操作完成后,各 PE 将自动比对内存中的数据,验证数据传输的正确性。

支持的设备

  • Ascend950

使用方式

  1. 编译项目
    shmem/根目录下执行编译脚本:

    bash scripts/build.sh -examples -enable_simt -soc_type Ascend950
  2. 运行 simt_rma_scalar 示例程序
    进入示例目录并执行运行脚本:

    cd examples/simt_rma_scalar bash scripts/run.sh

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

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

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

CANNBot技能:模型推理预取优化

【免费下载链接】cannbot-skills CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。 项目地址: https://gitcode.com/cann/cannbot-skills name: model-infer-prefetch description: 基于 PyTorch 框架的昇腾 N…

作者头像 李华
网站建设 2026/5/9 13:15:31

组态屏工程备份 / 恢复 / 加密 / 密码忘记

在工业自动化现场,组态屏作为人机交互的核心设备,承载着设备监控、参数设置、报警记录等关键功能。而组态工程文件,则是这块屏幕的“灵魂”——一旦工程丢失或损坏,重新编写不仅耗时数日,甚至可能因工艺参数遗忘而导致…

作者头像 李华
网站建设 2026/5/9 13:13:35

C 语言11 函数传参与递归

函数的参数传递1.值传递,实参数通过赋值运算符把参数内容赋值给形参的形式,形参是实参的一个副本。数据内容是相同的。实参的内存空间和形参的是独立的。值传递只能读取实参的值,不能进行修改。2.地址传递。实参传递变量的内存地址值。即可以…

作者头像 李华
网站建设 2026/5/9 13:11:33

信号处理加速库CgemmOperation C++ Demo

信号处理加速库CgemmOperation C Demo 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库,基于华为Ascend AI处理器,专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 介绍 该目录下为信号处…

作者头像 李华
网站建设 2026/5/9 13:06:56

联邦学习在物联网场景下的性能评估与基准测试实践

1. 项目概述:当联邦学习遇上物联网,我们如何量化其真实性能?如果你正在关注边缘智能或者分布式机器学习,那么“联邦学习”这个词对你来说一定不陌生。它被誉为解决数据孤岛和隐私保护问题的关键技术,尤其是在物联网这个…

作者头像 李华