代码组织结构
SHMEM组织结构
├── 3rdparty // 依赖的第三方库
├── docs // 文档
├── examples // 使用样例
├── include // 头文件
├── scripts // 相关脚本
├── src // 源代码
└── tests // 测试用例
include
include目录下的头文件是按照如下文件层级进行组织的
|── include
| |── shmem_api.h // shmem所有对外API
| |── device
| |── low_level
| |── shmem_device_low_level_rma.h // device侧远端内存访问低阶接口
| |── shmem_device_def.h // device侧定义的宏
| |── shmem_device_rma.h // device侧远端内存访问接口
| |── shmem_device_sync.h // device侧同步接口
| |── shmem_device_team.h // device侧通信域管理接口
| |── host
| |── shmem_host_def.h // host侧定义的宏和数据类型
| |── shmem_host_heap.h // host侧内存堆管理接口
| |── shmem_host_init.h // host侧初始化接口
| |── shmem_host_rma.h // host侧远端内存访问接口
| |── shmem_host_sync.h // host侧同步接口
| |── shmem_host_team.h // host侧通信域管理接口
| |── host_device
| |── shmem_types.h // host和device共用的数据类型
| |── internal
| |── device // device侧内部头文件
| └── host_device // host侧内部头文件
src
|── src
| |── device // device侧接口实现
| |── host
│ │ ├─common // host侧通用接口实现、如日志模块
│ │ ├─init // host侧初始化接口实现
│ │ ├─mem // host侧内存管理接口实现
│ │ ├─python_wrapper // Py接口封装
│ │ ├─team // host侧通信域管理接口实现
| └── transport // 建链相关内容
examples
├─examples
│ ├─helloworld // shmem简易调用示例
│ └─matmul_allreduce // 通算融合算子实现样例
tests
└─tests
└─unittest
├─init // 初始化接口单元测试
├─mem // 内存管理接口单元测试
├─sync // 同步管理接口单元测试
└─team // 通信域管理接口单元测试
docs
├─docs
│ ├─api_demo.md // shmem api调用demo
│ ├─code_organization.md // 工程组织架构(本文件)
│ ├─example.md // 使用样例
│ ├─quickstart.md // 快速开始
│ ├─related_scripts.md // 相关脚本介绍
| ├─pythonAPI.md // shmem python api列表
│ └─Troubleshooting_FAQs.md // QA
scripts
存放相关脚本。
脚本具体功能和使用