SDMA使用说明【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem环境要求和准备SDMA功能在9.0.0及以上版本尝鲜版新增支持。需要下载并安装以下cann和ops软件包toolkit包x86_64/aarch64ops-legacy包根据硬件平台下载对应版本A2 x86_64/A2 aarch64/A3 x86_64/A3 aarch64example使用方式1.在shmem/目录编译软件包并安装bash scripts/build.sh -package ./install/*/SHMEM_1.0.0_linux-*.run --install2.在shmem/目录下编译examplesbash scripts/build.sh -examples3.在shmem/examples/sdma目录执行demo:bash run.sh -pes ${PES} -type ${TYPES}参数说明PES指定用于运行的设备NPU数量限定单台机器内。TYPES指定传输数据类型当前支持intuint8int64fp32。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_nbi和aclshmemx_sdma_get_nbi都是非阻塞接口调用后立即返回不等待数据传输完成。用户使用时可通过以下两种方式确保数据传输完成所有调用aclshmemx_sdma_put/get_nbi的核在sdma任务结束后算子内调用aclshmemx_sdma_quiet接口等待所有SDMA操作完成。适用场景算子内后续操作依赖sdma任务完成例如后续算子需要使用sdma传输好的数据。所有调用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),仅供参考
CANN/shmem SDMA使用说明
SDMA使用说明【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem环境要求和准备SDMA功能在9.0.0及以上版本尝鲜版新增支持。需要下载并安装以下cann和ops软件包toolkit包x86_64/aarch64ops-legacy包根据硬件平台下载对应版本A2 x86_64/A2 aarch64/A3 x86_64/A3 aarch64example使用方式1.在shmem/目录编译软件包并安装bash scripts/build.sh -package ./install/*/SHMEM_1.0.0_linux-*.run --install2.在shmem/目录下编译examplesbash scripts/build.sh -examples3.在shmem/examples/sdma目录执行demo:bash run.sh -pes ${PES} -type ${TYPES}参数说明PES指定用于运行的设备NPU数量限定单台机器内。TYPES指定传输数据类型当前支持intuint8int64fp32。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_nbi和aclshmemx_sdma_get_nbi都是非阻塞接口调用后立即返回不等待数据传输完成。用户使用时可通过以下两种方式确保数据传输完成所有调用aclshmemx_sdma_put/get_nbi的核在sdma任务结束后算子内调用aclshmemx_sdma_quiet接口等待所有SDMA操作完成。适用场景算子内后续操作依赖sdma任务完成例如后续算子需要使用sdma传输好的数据。所有调用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),仅供参考