NotifyWait机制使用说明
【免费下载链接】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 --install2.在shmem/目录下编译examples:
bash scripts/build.sh -examples3.在shmem/examples/notifywait目录执行demo:
bash run.sh -pes ${PES} -type ${TYPES}- 参数说明:
- PES:指定用于运行的设备(NPU)数量,限定单台机器内。
- TYPES:指定传输数据类型,当前支持:int,uint8,int64,fp32。
NotifyWait用法说明
用法示例
// 步骤1: stream1上的kernel1:调用sdma接口搬运数据+aclshmemx_sdma_notify_record // 步骤2: host:aclrtWaitAndResetNotify(notify_id, stream2, 0) // 步骤3: stream2上的kernel2:使用sdma搬运好的数据用法说明
aclshmemx_sdma_notify_record中会下发record类型的sqe到stars,后续在host侧等待notify记录完成,再继续执行后续kernel。相比aclshmemx_sdma_quiet使用AIV轮询flag的方式,可及时释放AIV资源。
【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考