| 新增SIMD、SIMT混合编程场景下的SIMT RMA接口
Co-authored-by: mizuki_p<wanghan157@huawei.com>
# message auto-generated for no-merge-commit merge:
!252 merge simt_putget into master
新增SIMD、SIMT混合编程场景下的SIMT RMA接口
Created-by: mizuki_p
Commit-by: mizuki_p
Merged-by: cann-robot
Description: ## 描述
<!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->
新增simd simt混合编程情况下的simt rma接口
新增接口主体上与simd的对应接口保持一致,主要区别如下:
1. simt的接口使用__simt_callee__ inline进行修饰,而非__aicore__
2. 所有simt接口与simd接口命名保持一致,但为了避免函数重定义问题,simt接口放置于simt名空间下
3. 当前编译器限制__simt_callee__修饰的simt vf函数无法传递对象类型的参数,目前simt的put get接口不支持传入AscendC::LocalTensor和AscendC::GlobalTensor类型的重载
此次PR主要新增的接口如下:
```cpp
1. aclshmem_my_pe
2. aclshmem_n_pes
3. aclshmem_##TYPE##_p、aclshmem_int32_g
4. aclshmemx_mte_get_nbi、aclshmemx_mte_put_nbi
5. aclshmem_getmem、aclshmem_putmem
6. aclshmem_##TYPE##_get、aclshmem_##TYPE##_put
7. aclshmem_get##BITS##、aclshmem_put##BITS##
```
此外,新增的SIMT接口默认不启用,编译时需要指定--enable_simt进行开启
## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123-->
<!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。-->
[\[Task|任务\]: SHMEM支持SIMT方式的RMA接口](https://gitcode.com/cann/shmem/issues/198)
## 测试
<!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->
暂新增了两个样例 simt_demo和simt_mem_demo用于测试功能的正确性
simt_rma_scalar样例通过截图

simt_rma样例通过截图
## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
新增了两个样例(simt_rma、simt_rma_scalar)的README文件
## 类型标签
<!-- [x] 表示选中 -->
- [ ] Bug修复
- [x] 新特性
- [ ] 性能优化
- [ ] 文档更新
- [ ] 其他,请描述:
See merge request: cann/shmem!252 | 1 个月前 |