SHMEM搭配工具算子调测指导【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmemmsprofshmem后续会适配msprof算子调优工具 当前版本暂不支持预计Q1支持。mssanitizershmem已适配mssanitizer内存检测工具以下功能的相关接口暂不支持该工具的使用SDMA/RDMA/UDMA相关接口和用例不支持使用mssanitizer进行内存检测该功能依赖对应 CANN 版本能力预计社区版 9.0.0-beta.2 支持提前尝鲜可自行编译mssanitizer工具并将编译产物替换CANN包内部tools/mssanitizer使能mssanitizer工具能力在shmem/目录编译:bash scripts/build.sh -mssanitizer为算子工程在编译时添加-g --cce-enable-sanitizer编译选项。工具默认开启内存检测能力即--tool memcheck一般情况按如下方式拉起可执行文件即可。mssanitizer -- application parameter1 parameter2 ...如果需要更详细的工具能力可参考mssanitizer内存检测工具按如下格式控制参数mssanitizer options -- user_program user_optionsmssanitizer执行SHMEM自带的example样例shmem的AllGather样例运行脚本提供了tool选项选择拉起工具。编译样例且使能工具能力bash scripts/build.sh -examples -mssanitizer用mssanitizer工具拉起allgather样例进行内存检测cd examples/allgather bash run.sh -pes 2 -tool mssanitizer内存越界日志当内存发生越界时工具会先打屏越界地址越界内存大小、所属kernel核号、卡号等信息。随后打屏越界代码的调用栈。可以协助开发快速定位越界问题以及排查代码漏洞。注aclshmem_malloc等shmem提供的内存分配接口是对已完成物理地址映射的一大块连续虚拟内存进行划分不涉及实际的物理内存申请或虚拟内存对物理内存的映射操作。如使用的虚拟地址已完成和已分配物理地址的映射即使超出aclshmem_malloc分配的范围也不会报错因为该地址对应的内存可以合法使用。profilingshmem提供了Profiling打点工具通过采集系统时钟周期数并转换为实际时间精准量化不同Block计算核、不同Frame埋点 ID下的MTE搬运性能详细介绍请参考在示例中使用Profiling工具.【免费下载链接】shmemCANN SHMEM 是面向昇腾平台的多机多卡内存通信库基于OpenSHMEM 标准协议实现跨设备的高效内存访问与数据同步。项目地址: https://gitcode.com/cann/shmem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考