HCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。
HCOMM提供了标准化通信编程接口,具备以下关键特性:
HCOMM通信基础库采用分层解耦的设计思路,将通信能力划分为控制面和数据面两部分。
控制面:提供拓扑信息查询与通信资源管理功能。
数据面:提供本地操作、算子间同步、通信操作等数据搬运和计算功能。
控制面提供通信资源,数据面提供操作资源的方法,所提供的通信编程接口可以让通信算子开发人员聚焦于业务创新,而无需关注芯片底层复杂的实现细节。
本项目关键目录如下所示:
├── src # HCCL源码目录
│ ├── algorithm # 通信算法源码目录
| │ ├── base # 通信算法模板
| │ ├── impl # 通信算法实现
| │ └── pub_inc # 通信算法模块头文件
│ ├── commom # 公共基础功能目录
| │ ├── debug # 调试配置管理
| │ ├── error_code # 错误码管理
| │ ├── health # 健康检查与一致性校验
| │ ├── launch_device # kernel加载处理
| │ └── stream # 流管理工具
│ ├── framework # 通信框架源码目录
| │ ├── cluster_maintenance # 集群维护,包括:快照、心跳、算子重执行等
| │ ├── common # 通信框架通用逻辑
| │ ├── communicator # 通信域管理
| │ ├── device # AI CPU实现
| │ ├── hcom # hcomm接口实现
| │ ├── inc # 通信框架模块头文件
| │ ├── nslbdp # 数据面网络负载均衡
| │ └── op_base # 通信域、单算子接口入口
│ ├── hccd # 提供进程间点对点通信能力
│ ├── legacy # 历史版本兼容目录
| │ ├── common # 公共基础组件
| │ ├── framework # 框架核心实现
| │ ├── include # 公共接口头文件
| │ ├── interface # 接口适配层
| │ ├── local_build # 本地构建工具
| │ ├── service # 服务层
| │ └── unified_platform # 统一平台层
│ └── platform # 通信平台源码目录
| │ ├── comm_primitive # 通信原语
| │ ├── common # 通信平台通用逻辑
| │ ├── debug # 维测
| │ ├── hccp # HCCP集合通信协议栈
| │ ├── inc # 通信平台模块头文件
| │ ├── ping_mesh # 网络探测功能
| │ ├── resource # 通信资源管理
| │ └── task # 下发任务管理
│ ├── pub_inc # 公共接口头文件目录
| │ ├── aicpu # AICPU 专用接口
| │ ├── inner # 内部实现专用接口
| │ └── new # 新架构下的公共接口
├── python # Python 包
├── include # 对外头文件
├── pkg_inc # 包间接口头文件
├── test # 测试代码目录
| ├── ut # 单元测试代码目录
| └── st # 系统测试代码目录
├── docs # 资料文档目录
├── examples # 样例代码目录
└── build.sh # 编译构建脚本本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与GitCode标签源码,使用master分支可能存在版本不匹配的风险。
若您希望快速构建并体验本项目,请访问如下简易指南。
HCCL提供了使用指南、通信算子开发指南、技术文章、培训视频,详细可参见 HCCL 参考资料。 此外,HCCL还提供了QuickStart指南、常见FAQ等wiki,详细可参见 WIKI。