Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
本需求文档描述 HCCL(Huawei Collective Communication Library)自定义算法扩展框架的功能需求和非功能需求。
核心目标:在不修改 HCCL 核心代码的前提下,支持用户以动态库形式添加自定义算法,使自定义算法能够无缝接入现有的算法选择和执行流程。
HCCL 算子仓包含多种算子(AllReduce、AllGather、Broadcast、Reduce 等),每个算子可包含多种算法实现。当前算法通过以下方式选择:
当前存在以下场景需要扩展自定义算法:
当前添加新算法存在以下限制:
1. 用户开发新的 AllReduce 算法实现(MyAllReduceAlgo) 2. 用户创建动态库 libmy_algo.so 3. 用户配置 HCCL_ALGO_PLUGINS=/path/to/libmy_algo.so 4. HCCL 启动时加载动态库,并自动注册算法和算法选择策略(评估策略) 5. 用户调用 HcclAllReduce() 时,系统评估自定义算法并可能选中
1. 硬件团队开发适配新硬件的算法 2. 打包为动态库 3. 配置加载 4. 拓扑检测到新硬件时,评分函数返回高分数 5. 自定义算法被选中执行
1. 用户设置 HCCL_ALGO_PLUGINS 为空或不设置 2. 系统不加载任何自定义动态库 3. HCCL 行为与原有完全一致
自规划
/assign @wenxuemin
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
1. 概述
本需求文档描述 HCCL(Huawei Collective Communication Library)自定义算法扩展框架的功能需求和非功能需求。
核心目标:在不修改 HCCL 核心代码的前提下,支持用户以动态库形式添加自定义算法,使自定义算法能够无缝接入现有的算法选择和执行流程。
2. 背景与动机
2.1 业务场景
HCCL 算子仓包含多种算子(AllReduce、AllGather、Broadcast、Reduce 等),每个算子可包含多种算法实现。当前算法通过以下方式选择:
2.2 需求来源
当前存在以下场景需要扩展自定义算法:
2.3 当前限制
当前添加新算法存在以下限制:
3. 功能需求
3.1 插件化算法加载
3.2 算法注册机制
3.3 算法选择流程
3.4 算法执行流程
4. 非功能需求
4.1 可用性需求
4.2 兼容性需求
4.3 安全需求
5. 用户使用场景
场景 1:添加新算法
场景 2:支持新硬件
场景 3:禁用自定义算法
6. 约束条件
Origin(信息来源)
自规划
Benefit / Necessity (价值/作用)
Design(设计方案)