文件最后提交记录最后更新时间
add rma d2h example Co-authored-by: suqwe<sujianjia@huawei.com> 5 个月前
增加D2H功能对host内存大小限制说明 Co-authored-by: suqwe<sujianjia@huawei.com> # message auto-generated for no-merge-commit merge: !243 merge master into master 增加D2H功能对host内存大小限制说明 Created-by: suqwe Commit-by: suqwe Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复issue 192,增加D2H功能对host内存大小限制说明 背景:由于D2H固定使用了HCCS编码的物理地址,当前只放开部分地址段,所以对于A3超节点,不是所有的host内存都支持D2H功能 解决措施:增加限制说明,同时增加查询host可用内存的能力 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/192 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了Troubleshooting_FAQs.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!2431 个月前
修复D2H检查脚本异常场景执行失败问题 Co-authored-by: suqwe<sujianjia@huawei.com> # message auto-generated for no-merge-commit merge: !290 merge master into master 修复D2H检查脚本异常场景执行失败问题 Created-by: suqwe Commit-by: suqwe Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复D2H检查脚本异常场景执行失败问题 在部分环境中,存在失败的内存信息 ``` 在/sys/devices/system/node/node0/目录下,存在异常的memory信息 /sys/devices/system/node/node0/memory68605: /sys/devices/system/node/node0/memory68606: /sys/devices/system/node/node0/memory68607: /sys/devices/system/node/node0/memory7: /sys/devices/system/node/node0/memory8: /sys/devices/system/node/node0/memory9: **/sys/devices/system/node/node0/memory_failure:** ``` 当前脚本只支持处理数字结尾,需要过滤掉非数字输入 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/224 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ![image.png](https://raw.gitcode.com/user-images/assets/8546182/06b0c303-8d19-47fc-9290-f1dc67993493/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!2901 个月前
增加D2H功能对host内存大小限制说明 Co-authored-by: suqwe<sujianjia@huawei.com> # message auto-generated for no-merge-commit merge: !243 merge master into master 增加D2H功能对host内存大小限制说明 Created-by: suqwe Commit-by: suqwe Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复issue 192,增加D2H功能对host内存大小限制说明 背景:由于D2H固定使用了HCCS编码的物理地址,当前只放开部分地址段,所以对于A3超节点,不是所有的host内存都支持D2H功能 解决措施:增加限制说明,同时增加查询host可用内存的能力 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/shmem/issues/192 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了Troubleshooting_FAQs.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!2431 个月前
backend归一 Co-authored-by: james88liu<liujianxing1@huawei.com> # message auto-generated for no-merge-commit merge: !66 merge br_feat_heap_to_1 into master backend归一 Created-by: james88liu Commit-by: james88liu Merged-by: cann-robot Description: ## 描述 后端归一,减少重复代码,提高代码可读性 ## 关联的Issue https://gitcode.com/cann/shmem/issues/54 https://gitcode.com/cann/shmem/issues/37 ## 测试 example和ut已刷新 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!664 个月前
example下的pe名称统一与readme补充 Co-authored-by: dovahkiiin<haorunzhe@h-partners.com> # message auto-generated for no-merge-commit merge: !150 merge fix/fix_issue_115-117 into master example下的pe名称统一与readme补充 Created-by: dovahkiiin Commit-by: dovahkiiin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/shmem!1503 个月前
README.md

概述

本样例基于 SHMEM 工程,介绍了 put & get scalar 数据传输接口访问 Host 内存的使用。

支持的产品型号

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品

样例实现

本样例呈现的是 SHMEM 的 put & get scalar 数据传输接口的使用流程,以下简称 put & get 接口。

测试用例实现

(1)初始化 ACLSHMEM,分配 input 和 output 数据内存大小并初始化数据,input 初始化数据为 0,output 数据为当前 my_pe,后续 put 接口会把本 PE 的 PE 编号发送给下一个 PE 的 input,get 接口会获取下一个 PE 的 output。

(2)调用 run_demo_scalar 启动内核,执行对应 kernel 实现,前后调用 aclshmem_barrier 插入同步确保内核执行不受影响。

(3)执行结果校验,判断各个 PE 上的结果是否符合预期。

(4)清理释放 SHMEM 和 ACL 相关资源。

Kernel 实现

(1)kernel 侧获取本 PE 编号、总 PE 数量、目标 PE 编号。

(2)调用 aclshmem_int32_p 接口向下一个 PE 的 input 发送本 PE 的 PE 编号,调用 aclshmem_quiet 插入同步等待 scalar 数据发送完成。

(3)调用 aclshmem_int32_g 获取下一个 PE 的 output 数据,调用 aclshmem_quiet 插入同步等待 scalar 数据接收完成,并将数据填入本 PE 的 output。

编译执行

环境配置请参考快速上手。完成环境配置后,执行如下命令可进行功能验证。

# 执行编译
bash scripts/build.sh -examples -cann
cd examples/rma_d2h_demo
# 运行用例
bash run.sh

用例执行完成,打屏信息出现“[INFO] demo run end in pe <my_pe>”,说明样例执行结束;打屏信息出现“[SUCCESS] run success in pe <my_pe>”,说明样例执行成功且结果准确。

约束限制

查询A3超节点可用内存大小

运行check_support.py脚本扫描可用的物理内存:

python3 check_support.py

内存查询结果示例

样例当前默认配置 1GB Host 内存大小,查询的总的可用内存需要大于 1GB。

A3 超节点 Server ID 配置要求

本样例在 A3 超节点环境下运行时,需要确保各服务器的 Server ID 配置正确。特别是在更换故障硬件后,可能出现 Server ID 未正确配置的情况,会导致样例运行失败。

查询 Server ID 方法

使用 npu-smi 工具查询当前服务器的 Server ID 配置:

npu-smi info -t spod-info -i 0 -c 0

输出示例:

SDID : 16777216
Super Pod Size : 384
Super Pod ID : 0
Server Index : 4

其中 Server Index 即为当前服务器的 Server ID,需要确保一个计算节点内所有NPU保持一致。

配置 Server ID 方法

如果发现 Server ID 配置不正确,可以通过以下方式修改:

  1. 通过 Redfish 接口修改

  2. 通过 Computing Toolkit 修改