shmem:基于 CANN 生态的多机多卡内存通信加速库项目

CANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。

分支3Tags10
文件最后提交记录最后更新时间
修正readme Co-authored-by: vector5<caobingjie@huawei.com> # message auto-generated for no-merge-commit merge: !344 merge fixdoc into master 修正readme Created-by: vector5 Commit-by: vector5 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> readme中存在多处笔误,该pr修正了这些错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联https://gitcode.com/cann/shmem/issues/235 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!34410 天前
优化 quickstart, readme Co-authored-by: zhengdun<zhengdongwen@h-partners.com> # message auto-generated for no-merge-commit merge: !355 merge master into master 优化 quickstart, readme Created-by: zhengdun Commit-by: zhengdun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 添加cann包安装说明,安装ops包解决缺少libhccl.so的问题; 2. 在readme中添加到quickstart的跳转 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!3553 天前
新增simt perftest样例 Co-authored-by: mizuki_p<wanghan157@huawei.com> # message auto-generated for no-merge-commit merge: !377 merge simt_perf_test into master 新增simt perftest样例 Created-by: mizuki_p Commit-by: mizuki_p Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增simt gm2gm rma性能测试的样例,具体测试方法见样例中的README ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> [\[Task|任务\]: SHMEM支持SIMT方式的RMA接口](https://gitcode.com/cann/shmem/issues/198) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ![image.png](https://raw.gitcode.com/user-images/assets/8546182/e389a68c-42b5-45e1-be51-0f4523acbec2/image.png 'image.png') 样例能够跑通 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增了样例的README文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新增simt perftest样例,用于测试simt gm2gm ubmem的性能(带宽和时延) See merge request: cann/shmem!3778 小时前
原子加高阶接口移除quiet并添加文档说明 Co-authored-by: zhangyunqi<zhangyunqi5@huawei.com> # message auto-generated for no-merge-commit merge: !392 merge fix-opt-atomic-add into master 原子加高阶接口移除quiet并添加文档说明 Created-by: zhangyunqi Commit-by: zhangyunqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 原子加移除同步并添加文档说明 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> https://gitcode.com/cann/shmem/issues/276 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ![image.png](https://raw.gitcode.com/user-images/assets/8546182/5bcead74-91bb-42b6-bb96-14cf32546fdc/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!3929 小时前
【bugfix】修复ascend950的python API问题以及多实例初始化释放流的问题 Co-authored-by: james88liu<liujianxing1@huawei.com> # message auto-generated for no-merge-commit merge: !314 merge br_fix_py_api_1 into master 【bugfix】修复ascend950的python API问题以及多实例初始化释放流的问题 Created-by: james88liu Commit-by: james88liu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!31421 天前
原子加高阶接口移除quiet并添加文档说明 Co-authored-by: zhangyunqi<zhangyunqi5@huawei.com> # message auto-generated for no-merge-commit merge: !392 merge fix-opt-atomic-add into master 原子加高阶接口移除quiet并添加文档说明 Created-by: zhangyunqi Commit-by: zhangyunqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 原子加移除同步并添加文档说明 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> https://gitcode.com/cann/shmem/issues/276 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ![image.png](https://raw.gitcode.com/user-images/assets/8546182/5bcead74-91bb-42b6-bb96-14cf32546fdc/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!3929 小时前
原子加高阶接口移除quiet并添加文档说明 Co-authored-by: zhangyunqi<zhangyunqi5@huawei.com> # message auto-generated for no-merge-commit merge: !392 merge fix-opt-atomic-add into master 原子加高阶接口移除quiet并添加文档说明 Created-by: zhangyunqi Commit-by: zhangyunqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 原子加移除同步并添加文档说明 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> https://gitcode.com/cann/shmem/issues/276 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ![image.png](https://raw.gitcode.com/user-images/assets/8546182/5bcead74-91bb-42b6-bb96-14cf32546fdc/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!3929 小时前
修正readme Co-authored-by: vector5<caobingjie@huawei.com> # message auto-generated for no-merge-commit merge: !344 merge fixdoc into master 修正readme Created-by: vector5 Commit-by: vector5 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> readme中存在多处笔误,该pr修正了这些错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联https://gitcode.com/cann/shmem/issues/235 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!34410 天前
add sc clang format Co-authored-by: YeZZzzz1<yezhenni1@huawei.com> # message auto-generated for no-merge-commit merge: !236 merge master into master add sc clang format Created-by: YeZZzzz1 Commit-by: YeZZzzz1 Merged-by: cann-robot Description: ## 描述 增加clang format文件 ## 关联的Issue https://gitcode.com/cann/shmem/issues/191 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:增加clang format文件 See merge request: cann/shmem!2362 个月前
增加本地pre-commit的能力 Co-authored-by: zhangyunqi<zhangyunqi5@huawei.com> # message auto-generated for no-merge-commit merge: !262 merge precommit into master 增加本地pre-commit的能力 Created-by: zhangyunqi Commit-by: zhangyunqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> pre-commit配置 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/204 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:pre-commit配置 See merge request: cann/shmem!2621 个月前
修正readme Co-authored-by: vector5<caobingjie@huawei.com> # message auto-generated for no-merge-commit merge: !344 merge fixdoc into master 修正readme Created-by: vector5 Commit-by: vector5 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> readme中存在多处笔误,该pr修正了这些错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联https://gitcode.com/cann/shmem/issues/235 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!34410 天前
fix A5 compile problems Co-authored-by: huangxiaolan<huangxiaolan7@huawei.com> # message auto-generated for no-merge-commit merge: !343 merge fix_cmakelists into master fix Ascend950 compile problems Created-by: huangxiaolan Commit-by: huangxiaolan Merged-by: cann-robot Description: ## 描述 1. 增加 对 Ascend950 mssanitizer 工具的编译支持 2. 跳过 Ascend950上对 fusion kernel 的编译 3. 补充 工具 编译以及 安装相关步骤 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#255](https://gitcode.com/cann/shmem/issues/255) ## 测试 编译成功 ![image.png](https://raw.gitcode.com/user-images/assets/8546182/b0d43520-958c-4942-9537-6cd61c44a411/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!34310 天前
update: 更新文件 CONTRIBUTING.md中地址为空的情况 Co-authored-by: zzwnew<zhuzhenwei4@h-partners.com> # message auto-generated for no-merge-commit merge: !126 merge master into master update: 更新文件 CONTRIBUTING.md中地址为空的情况 Created-by: zzwnew Commit-by: zzwnew Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复CONTRIBUTING.md中有地址为空的情况 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/43 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了CONTRIBUTING.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1263 个月前
fix LICENSE Co-authored-by: jiang-xinyu3<jiangxinyu3@hisilicon.com> 5 个月前
change copy right check Co-authored-by: liragnarosf<lijian120@huawei.com> # message auto-generated for no-merge-commit merge: !103 merge master into master change copy right check Created-by: liragnarosf Commit-by: liragnarosf Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 处理copy right校验问题,避免固定日志导致校验失败 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/76 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1033 个月前
优化 quickstart, readme Co-authored-by: zhengdun<zhengdongwen@h-partners.com> # message auto-generated for no-merge-commit merge: !355 merge master into master 优化 quickstart, readme Created-by: zhengdun Commit-by: zhengdun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 添加cann包安装说明,安装ops包解决缺少libhccl.so的问题; 2. 在readme中添加到quickstart的跳转 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!3553 天前
修正readme Co-authored-by: vector5<caobingjie@huawei.com> # message auto-generated for no-merge-commit merge: !344 merge fixdoc into master 修正readme Created-by: vector5 Commit-by: vector5 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> readme中存在多处笔误,该pr修正了这些错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> 关联https://gitcode.com/cann/shmem/issues/235 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!34410 天前
新增三方件 YAML 文件 Co-authored-by: hbhdhd<luxianbin1@huawei.com> # message auto-generated for no-merge-commit merge: !152 merge docs into master 新增三方件 YAML 文件 Created-by: hbhdhd Commit-by: hbhdhd Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1522 个月前
init v1.0 5 个月前
docs(readme): clarify python deps for examples (#259) Co-authored-by: suqwe<sujianjia@huawei.com> # message auto-generated for no-merge-commit merge: !353 merge fix/issue-259-readme-python-deps into master docs(readme): clarify python deps for examples (#259) Created-by: suqwe Commit-by: suqwe Merged-by: cann-robot Description: ## 描述 按 issue #259 的修复建议落地。改动集中在补齐 examples 缺失的 Python 依赖声明,**不涉及任何构建/运行代码**。 ## 关联的Issue 关联 Issue [#259](https://gitcode.com/cann/shmem/issues/259) ## 改动内容 - **requirements-examples.txt**(新增)— 列出 examples/ 下 Python 脚本实际 import 但此前未声明的额外依赖,干净环境按 README 走完安装即可直接跑这些脚本。头部注释标注每个包的来源文件,便于后续维护: - ml_dtypesexamples/allgather/scripts/data_gen.pyexamples/multi_instance/utils/data_gen.py(bfloat16) - pandasexamples/allgather/scripts/data_statistic.pyexamples/utils/perf_data_process.pyexamples/dynamic_tiling/utils/process_data.pyexamples/dynamic_tiling/utils/get_best_result.py - matplotlibseabornexamples/utils/perf_data_process.py(性能可视化) - **README.md 3.4 节** — pip install 拆成两行:基础依赖 + 示例额外依赖(按需安装)。 > requirements.txt 不在本 PR 改动范围(之前迭代中曾尝试加分类注释,因与事实不符已回退)。 ## 根因 干净环境按 README 走完安装流程后,examples/allgather/scripts/data_gen.pyexamples/utils/perf_data_process.py 等脚本会在 import 阶段直接 ModuleNotFoundError: ml_dtypes / pandas / matplotlib / seaborn。完整复现条件、根因分析、影响示例列表见 #259。 ## 测试 不涉及测试。仅改文档 + 新增依赖清单,无运行时行为改动。 ## 验证 通过 grep -rln "^import|^from" examples/ --include='*.py' 核对 examples 全部 Python import;新增 4 个包覆盖了此前未声明的全部第三方依赖,其余包均已在 requirements.txtsetup.py: install_requires(torch-npu)、CANN runtime 或 stdlib 中。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他 Fix #259 See merge request: cann/shmem!3538 天前
update: 更新文件。添加了python相关依赖安装与compilation_build_guide.md跟 related_scripts.md重复内容合并 Co-authored-by: zzwnew<zhuzhenwei4@h-partners.com> # message auto-generated for no-merge-commit merge: !268 merge master into master update: 更新文件。添加了python相关依赖安装与compilation_build_guide.md跟 related_scripts.md重复内容合并 Created-by: zzwnew Commit-by: zzwnew Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> reamde中添加了python相关依赖安装与compilation_build_guide.md跟 related_scripts.md重复内容合并 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/211 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!2681 个月前
【bugfix】修复ascend950的python API问题以及多实例初始化释放流的问题 Co-authored-by: james88liu<liujianxing1@huawei.com> # message auto-generated for no-merge-commit merge: !314 merge br_fix_py_api_1 into master 【bugfix】修复ascend950的python API问题以及多实例初始化释放流的问题 Created-by: james88liu Commit-by: james88liu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!31421 天前
适配aicpu,取消40个AIV限制 Co-authored-by: jiang-xinyu3<jiangxinyu3@hisilicon.com> # message auto-generated for no-merge-commit merge: !147 merge query_size into master 适配aicpu,取消40个AIV限制 Created-by: jiangxinyu3 Commit-by: jiangxinyu3;jiang-xinyu3 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> /home/jxy/shmem_jxy-query_size/examples/sdma 3467128 background process recorded 3467129 background process recorded 3467131 background process recorded 3467132 background process recorded 3467133 background process recorded 3467134 background process recorded 3467135 background process recorded 3467136 background process recorded Pe 7Finised !! Result Correct !! Pe 5Finised !! Result Correct !! Pe 3Finised !! Result Correct !! Pe 2Finised !! Result Correct !! Pe 6Finised !! Result Correct !! Pe 1Finised !! Result Correct !! Pe 4Finised !! Result Correct !! Pe 0Finised !! Result Correct !! [SUCCESS] demo run success in pe 1 [SUCCESS] demo run success in pe 5 [SUCCESS] demo run success in pe 4 [SUCCESS] demo run success in pe 7 [SUCCESS] demo run success in pe 3 [SUCCESS] demo run success in pe 2 [SUCCESS] demo run success in pe 6 [SUCCESS] demo run success in pe 0 wait process 3467128 done wait process 3467129 done wait process 3467131 done wait process 3467132 done wait process 3467133 done wait process 3467134 done wait process 3467135 done wait process 3467136 done root@hisi-hangzhou-ip69:notifywait$ rm -rf logs/* && bash run.sh -pes 8 -type int 3544418 background process recorded 3544419 background process recorded 3544420 background process recorded 3544421 background process recorded 3544422 background process recorded 3544423 background process recorded 3544424 background process recorded 3544425 background process recorded Pe 3 AllGather result in ptr_A after notify_wait: Pe 2 AllGather result in ptr_A after notify_wait: Pe 0 AllGather result in ptr_A after notify_wait: Pe 5 AllGather result in ptr_A after notify_wait: Pe 7 AllGather result in ptr_A after notify_wait: Pe 6 AllGather result in ptr_A after notify_wait: Pe 1 AllGather result in ptr_A after notify_wait: Pe 4 AllGather result in ptr_A after notify_wait: Pe 2 has 0 unexpected values. Pe 3 has 0 unexpected values. Pe 0 has 0 unexpected values. Pe 5 has 0 unexpected values. Pe 7 has 0 unexpected values. Pe 6 has 0 unexpected values. Pe 1 has 0 unexpected values. Pe 4 has 0 unexpected values. [SUCCESS] demo run success in pe 7 [SUCCESS] demo run success in pe 4 [SUCCESS] demo run success in pe 5 [SUCCESS] demo run success in pe 3 [SUCCESS] demo run success in pe 2 [SUCCESS] demo run success in pe 1 [SUCCESS] demo run success in pe 6 [SUCCESS] demo run success in pe 0 wait process 3544418 done wait process 3544419 done wait process 3544420 done wait process 3544421 done wait process 3544422 done wait process 3544423 done wait process 3544424 done wait process 3544425 done t@hisi-hangzhou-ip69:cmo$ bash run.sh -pes 8 -type int 3549967 background process recorded 3549968 background process recorded 3549969 background process recorded 3549970 background process recorded 3549971 background process recorded 3549972 background process recorded 3549973 background process recorded 3549974 background process recorded PE 6 Finised ! PE 4 Finised ! PE 0 Finised ! PE 2 Finised ! PE 1 Finised ! PE 5 Finised ! PE 3 Finised ! PE 7 Finised ! [SUCCESS] demo run success in pe 4 [SUCCESS] demo run success in pe 7 [SUCCESS] demo run success in pe 6 [SUCCESS] demo run success in pe 3 [SUCCESS] demo run success in pe 2 [SUCCESS] demo run success in pe 1 [SUCCESS] demo run success in pe 0 [SUCCESS] demo run success in pe 5 wait process 3549967 done wait process 3549968 done wait process 3549969 done wait process 3549970 done wait process 3549971 done wait process 3549972 done wait process 3549973 done wait process 3549974 done ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1472 个月前

SHMEM

基于对称内存的昇腾分布式内存通信加速库

Documentation Release Platform SIG

最新动态

🚀 [2026/04] SHMEM v1.3.0 版本发布,欢迎下载体验。

  • 新增 AICore 直驱能力: 910B/C SDMA 访存和预取,950 MTE 访存,覆盖更多通信引擎。
  • 新增 40+ 接口,覆盖 RMA、Signal、P2P 同步、Barrier 等,完善通信编程语义。
  • 增强 log、sanitizer、profiling、debug 等 DFX 能力,提升问题定位效率。

🔥 [2025/12] SHMEM 项目首次上线。

⚡️快速入门

若您希望快速体验项目,请访问快速入门获取简易教程,包括环境搭建、编译执行、本地验证等操作。

一、项目简介

SHMEM 是面向昇腾平台的多机多卡内存通信库,通过封装 Host 侧与 Device 侧接口,实现跨设备的高效内存访问与数据同步。其核心价值在于:

  • 支持 AICore 直驱 MTE、xDMA 使能 D2D/D2H/H2D/D2rH/rH2D 通信
  • 简化分布式场景下的卡间通信逻辑,降低算子开发门槛
  • 与 CANN 生态深度适配,支持通算融合类算子的快速部署
  • 更多详细资料请参考SHMEM

二、核心功能

核心功能

1. 双侧接口体系

  • Host 侧:负责初始化、内存堆管理、通信域(Team)创建及全局同步
  • Device 侧:提供远程内存访问(RMA)、设备级同步及通信域操作

接口设计贴合昇腾算子开发范式,支持 Host 与 Device 协同工作流。

2. 高性能通信优化

  • 内置 MTE、xDMA 引擎支持,实现远程内存直接读写,减少数据传输延迟
  • 兼容 MPI 通信框架,支持集合通信(Allgather/Allreduce 等)场景
  • 针对昇腾硬件特性优化数据传输路径,提升多卡协同效率

3. 安全通信机制

  • 默认启用 TLS 加密保护跨设备数据传输,支持接口级关闭控制:

    int32_t ret = aclshmemx_set_conf_store_tls(false, NULL, 0);
    
  • 提供安全加固指南,包括权限配置、加密套件选择等企业级安全策略

4. 通信通路覆盖

下图展示了 SHMEM 支持的全链路通信通路(以910A3为例),覆盖 Host 侧与 Device 侧的不同传输引擎:

如图所示,SHMEM 支持多种通信引擎和通路:

  • MTE Engine:芯片级内存传输引擎,支持 D2D、D2H、H2D、D2rH、rH2D 多种通路
  • xDMA Engine:高速直接内存访问引擎,支撑主机内/主机间高效数据传输

5. 多语言与扩展支持

  • 提供 C++ 原生接口与 Python 封装,满足不同开发场景需求
  • 模块化设计支持通信后端(MTE/xDMA)动态切换,便于功能扩展

6. 丰富场景样例 覆盖基础通信到复杂算子融合场景:

  • rdma_demo:RDMA 协议通信演示
  • matmul_allreduce:通算融合算子实现(矩阵乘 + Allreduce)

三、代码结构

shmem/                                  # 项目根目录
├── docs/                               # 文档与说明
├── examples/                           # 示例工程集合
├── include/                            # 对外头文件
│   ├── shmem.h                         # SHMEM 所有对外 API 汇总
│   ├── device/                         # Device 侧头文件
│   │   ├── gm2gm/                      # AICore 驱动 gm2gm 数据面接口
│   │   │   └── engine/                 # AICore 直驱 gm2gm 低阶接口
│   │   ├── team/                       # Device 侧通信域管理
│   │   └── ub2gm/                      # AICore 驱动 ub2gm 数据面接口
│   │       └── engine/                 # AICore 直驱 ub2gm 低阶接口
│   ├── host/                           # Host 侧头文件
│   │   ├── data_plane/                 # Host 侧数据面接口
│   │   ├── init/                       # Host 侧初始化接口
│   │   ├── mem/                        # Host 侧内存管理接口
│   │   ├── team/                       # Host 侧通信域管理接口
│   │   └── utils/                      # 工具与通用辅助代码
│   └── host_device/                    # 共用目录
├── scripts/                            # 示例脚本(编译/运行)
├── src/                                # 源码实现
│   ├── device/                         # Device 侧实现
│   │   ├── gm2gm/                      # AICore 直驱 gm2gm 数据面接口
│   │   │   └── engine/                 # AICore 直驱 gm2gm 低阶接口
│   │   ├── team/                       # Device 侧通信域管理
│   │   └── ub2gm/                      # AICore 驱动 ub2gm 数据面接口
│   │       └── mte/                    # AICore 直驱 ub2gm 低阶接口
│   ├── host/                           # Host 侧实现
│   │   ├── bootstrap/                  # bootstrap
│   │   ├── hybm/                       # Hybrid Memory 实现
│   │   ├── init/                       # 初始化
│   │   ├── mem/                        # 内存管理相关
│   │   ├── python_wrapper/             # Python 封装/绑定
│   │   ├── sync/                       # 同步原语(barrier/p2p/order)
│   │   ├── team/                       # team(通信域)相关
│   │   ├── transport/                  # 传输层实现(如 RDMA\SDMA\UDMA)
│   │   └── utils/                      # 工具与通用辅助代码
│   ├── host_device/                    # 共用目录
│   └── python/                         # Python 相关目录
└── tests/                              # 测试用例集合(UT/功能测试)

四、典型使用场景

1. 通算融合类算子开发:基于 Device 侧内存直接访问接口,开发融合「计算+通信」的自定义算子(如 matmul+allreduce),减少卡间数据拷贝,提升算子执行效率。

2. 多机多卡数据同步:通过 Host 侧通信域管理接口,快速搭建多机多卡集群的内存共享通道,实现跨节点数据同步,适配分布式训练场景。

3. 低延迟卡间通信:利用 RDMA 优化的 Device 侧接口,实现卡间毫秒级数据传输,满足实时性要求高的 AI 推理场景。

4. Python 分布式训练适配:通过 Python 扩展接口,将 SHMEM 集成到 PyTorch 分布式训练流程中,替代传统 MPI 通信,降低训练通信开销。

五、常见问题(FAQ)

Q1:编译时报「CANN 环境未找到」?

A:确认已执行 source /usr/local/Ascend/ascend-toolkit/set_env.sh,且 CANN 版本满足 CANN 版本说明

Q2:运行示例时报「卡间通信超时」?

A:检查网卡是否开启 RDMA、防火墙是否放行通信端口(默认 8666)、各节点时钟是否同步。

Q3:Python 导入 shmem 时报「找不到模块」?

A:确认已安装 wheel 包,且 source 了 install 目录下的 set_env.sh,环境变量 PYTHONPATH 包含 shmem 路径。

Q4:关闭 TLS 后仍提示加密失败?

A:需在 aclshmemx_init_attr 前调用 aclshmemx_set_conf_store_tls,初始化后无法修改 TLS 配置。

Q5:googletest、catlass 这两个插件执行 build.sh 时提示 git 失败?

A:确认 git 配置是否可以访问网站,如果环境不能连接网站可以尝试手动下载文件到 3rdparty 目录下。

Q6:CANN 包安装失败怎么办?

A:查看常见问题

更多故障排查见:Troubleshooting

六、贡献

贡献者列表

参与贡献指南

欢迎订阅 SHMEM SIG 会议,参与社区例会和议题讨论,与社区成员共同交流方案设计、接口规划和使用问题。

1. 提 Issue

  • 提交 bug:明确环境(硬件/软件版本)、复现步骤、错误日志;
  • 提功能需求:说明场景、预期效果、适配的硬件/软件版本。

2. 提 PR

  • 分支规范:功能开发用 feature/xxx,bug 修复用 bugfix/xxx
  • 代码规范:遵循项目代码规范,新增代码需补充单元测试;
  • PR 描述:说明修改目的、核心逻辑、测试验证结果。

3. 代码审核

  • PR 需通过 CI 自动测试(编译、单元测试、代码规范检查);
  • 至少 1 名维护者审核通过后,方可合并。

详细步骤可参考贡献指南

七、安全声明

  • 通信安全:默认启用 TLS 加密,支持自定义加密套件
  • 公网依赖:依赖的开源仓库与工具地址参见公网地址清单
  • 加固指南:参考安全加固建议配置系统权限与防火墙

八、版权与许可

Copyright (c) 2025 Huawei Technologies Co., Ltd. 本项目基于 CANN Open Software License Agreement Version 2.0 授权,仅允许用于昇腾处理器相关开发。

九、注意事项

  1. 本项目仅适配昇腾平台,不支持其他硬件架构(如 x86 通用服务器、NVIDIA GPU);
  2. 示例代码仅供学习参考,生产环境使用前需完成充分的功能和性能测试;
  3. CANN 版本升级可能导致接口兼容问题,建议锁定文档指定的 CANN 版本;
  4. 关闭 TLS 加密后,需确保通信网络为可信内网,避免数据泄露风险。

项目介绍

CANN SHMEM 是面向昇腾平台的多机多卡内存通信库,基于OpenSHMEM 标准协议,实现跨设备的高效内存访问与数据同步。

https://gitcode.com/cann/shmem定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

C++86.01%
C9.93%
Shell1.73%
Python1.35%
CMake0.97%