| add aclGraph demo
Co-authored-by: VallenChen<chenwei542@huawei.com>
# message auto-generated for no-merge-commit merge:
!282 merge br_personal/vallenChen/aclGraph_demo into master
add aclGraph demo
Created-by: vallenChen
Commit-by: VallenChen
Merged-by: cann-robot
Description: ## 描述
<!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->
添加使用aclgraph_demo和rdma_aclgraph_demo
### aclgraph_demo
首先为了适配aclGraph,将allgather算子的magic入参从int值换成Device侧的地址(__gm__ int * )这样支持在aclGraph图(model)循环调用中修改。
aclGraph图结构如下:

将第一个add的输出作为第一个allgather的输入,之后将两个allgather的输出作为第二个add的输入。将其作为aclGraph的图(model),第一次循环进行图的捕获,后续循环重放捕获完成的图。通过每次循环第二个add的输出是否符合预期,来判断allgather在图中功能是否正常。
### rdma_aclgraph_demo
由于rdma allgather只发送Write,因此在入图时需要在rdma allgather前后添加aclshmemx_handle_wait接口进行同步,确保所有PE上的图均已执行到相应阶段,确保aclGraph图(model)的精度正常。
aclGraph图结构如下:

## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123-->
<!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。-->
## 测试
<!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->
在CANN 9.0.0和CANN 8.5.0上循环执行两个demo,功能正常。
### aclgraph_demo:
* 单机4卡场景循环2000次,功能正常:

* aclgraph_demo profiling:

### rdma_aclgraph_demo:
* 2机8卡场景循环2000次,功能正常。

* rdma_aclgraph_demo profiling:

## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
## 类型标签
<!-- [x] 表示选中 -->
- [ ] Bug修复
- [ ] 新特性
- [ ] 性能优化
- [ ] 文档更新
- [x] 其他,请描述:
See merge request: cann/shmem!282 | 9 天前 |