MindSpeed 项目目录结构
MindSpeed/
├── README.md # 项目说明文档,介绍 MindSpeed Core 加速库的特性和使用方法
├── docs/ # 项目文档目录,包含中英文特性文档、用户指南和 API 文档
├── mindspeed/ # 核心源码目录,包含所有加速库的核心实现代码
│ ├── args_utils.py # 参数工具函数,提供参数解析和验证的辅助功能
│ ├── arguments.py # 命令行参数定义,定义训练和配置相关的命令行参数
│ ├── checkpointing.py # 检查点管理,提供模型检查点的保存和加载功能
│ ├── deprecated.py # 废弃功能模块,标记已废弃的 API 和功能
│ ├── initialize.py # 初始化模块,处理分布式环境初始化和配置加载
│ ├── log_config.py # 日志配置,定义日志格式和输出规则
│ ├── megatron_adapter.py # Megatron-LM适配器,实现与 Megatron 框架的兼容适配
│ ├── patch_utils.py # 补丁工具,提供动态代码补丁和替换功能
│ ├── train.py # 训练模块,提供训练流程的入口和主循环控制
│ ├── utils.py # 通用工具函数,提供项目通用的辅助函数
│ ├── yaml_arguments.py # YAML 参数解析,支持从 YAML 文件加载训练配置
│ ├── auto_settings/ # 自动配置子系统,根据硬件环境自动优化训练配置
│ │ ├── auto_settings.py # 自动配置主入口,协调各模块的自动配置流程
│ │ ├── search_space.py # 搜索空间定义,定义可调参数的搜索范围
│ │ ├── config/ # 配置定义,包含模型和训练的配置模板
│ │ ├── mindspeed_adaptor/ # MindSpeed 适配器,将自动配置应用到 MindSpeed 框架
│ │ ├── model/ # 模型定义,提供模型架构的抽象和配置
│ │ ├── module/ # 核心模块,包含通信、内存、算子等建模模块
│ │ ├── profile/ # Profiling 工具,提供性能分析和诊断功能
│ │ └── utils/ # 通用工具,提供配置和工具函数
│ ├── core/ # 核心功能模块,包含并行策略、内存管理等核心能力
│ │ ├── fp8_utils.py # FP8 工具函数,提供 FP8 量化和缩放相关工具
│ │ ├── mindspeed_parallel_group.py # 并行组管理,管理分布式训练的进程组
│ │ ├── parallel_state.py # 并行状态管理,维护全局并行状态信息
│ │ ├── simple_parallel_cfg.py # 简单并行配置,提供简化的并行配置接口
│ │ ├── singleton_meta.py # 单例元数据,管理单例模式的元数据
│ │ ├── tensor_parallel_y_union.py # 张量并行 Y 联合配置,支持 Y 轴张量并行联合配置
│ │ ├── training.py # 训练模块配置,提供训练流程的配置管理
│ │ ├── weight_grad_store.py # 权重梯度存储管理,优化权重和梯度的存储策略
│ │ ├── context_parallel/ # 上下文并行,实现序列长度的分布式并行
│ │ ├── datasets/ # 数据集,提供数据加载和预处理功能
│ │ ├── data_parallel/ # 数据并行,实现数据并行的分布式训练策略
│ │ ├── distributed/ # 分布式训练,提供分布式训练的基础设施
│ │ ├── dist_checkpointing/ # 分布式检查点,支持分布式环境下的检查点管理
│ │ ├── fusions/ # 算子融合,提供融合算子以提升计算效率
│ │ ├── hccl_buffer/ # HCCL 缓冲区,优化 HCCL 通信缓冲区管理
│ │ ├── megatron_basic/ # Megatron 基础适配,提供 Megatron 框架的基础适配
│ │ ├── memory/ # 内存管理,提供显存优化和管理功能
│ │ ├── models/ # 模型定义,包含 GPT 等模型架构实现
│ │ ├── multi_modal/ # 多模态,支持多模态模型的训练和推理
│ │ ├── optimizer/ # 优化器,提供 AdamW 等优化器实现
│ │ ├── performance/ # 性能优化,提供性能分析和优化工具
│ │ ├── pipeline_parallel/ # 流水线并行,实现模型流水线并行策略
│ │ ├── qat/ # 量化感知训练,支持训练过程中的量化
│ │ ├── qos/ # QoS 管理,提供服务质量管理和资源控制
│ │ ├── tensor_parallel/ # 张量并行,实现张量切分的并行策略
│ │ └── transformer/ # Transformer 模型,提供 Transformer 架构实现
│ ├── features_manager/ # 特性管理器,统一管理各种优化特性的注册和配置
│ │ ├── feature.py # 特性管理,定义特性基类和接口
│ │ ├── features_manager.py # 特性管理器,提供特性的注册、启用和禁用功能
│ │ ├── affinity/ # 亲和性管理,优化进程和设备的亲和性配置
│ │ ├── ai_framework/ # AI 框架适配,适配不同 AI 框架的特性
│ │ ├── auto_settings/ # 自动配置特性,提供自动配置相关特性
│ │ ├── ckpt_acceleration/ # 检查点加速,加速检查点的保存和加载
│ │ ├── compress/ # 压缩特性,提供模型和梯度的压缩功能
│ │ ├── compress_dense/ # 稠密压缩,提供稠密模型的压缩策略
│ │ ├── context_parallel/ # 上下文并行特性,管理上下文并行相关特性
│ │ ├── custom_fsdp/ # 自定义 FSDP,提供自定义的完全分片数据并行
│ │ ├── data_parallel/ # 数据并行特性,管理数据并行相关特性
│ │ ├── disable_gloo_group/ # 禁用 Gloo 组,禁用 Gloo 后端通信组
│ │ ├── distributed/ # 分布式特性,管理分布式训练相关特性
│ │ ├── dist_train/ # 分布式训练,提供分布式训练的特性支持
│ │ ├── functional/ # 函数式特性,提供函数式编程相关特性
│ │ ├── fusions/ # 融合算子特性,管理融合算子的特性
│ │ ├── hccl_buffer/ # HCCL 缓冲区特性,优化 HCCL 缓冲区使用
│ │ ├── llava/ # LLaVA 模型,提供 LLaVA 多模态模型支持
│ │ ├── megatron_basic/ # Megatron 基础特性,提供 Megatron 框架的基础特性
│ │ ├── memory/ # 内存特性,管理内存优化相关特性
│ │ ├── moe/ # MoE 特性,提供混合专家模型的支持
│ │ ├── optimizer/ # 优化器特性,管理优化器相关特性
│ │ ├── pipeline_parallel/ # 流水线并行特性,管理流水线并行相关特性
│ │ ├── qat/ # 量化感知训练特性,管理 QAT 相关特性
│ │ ├── qos/ # QoS 特性,管理服务质量相关特性
│ │ ├── recompute/ # 重计算特性,提供激活值重计算功能
│ │ ├── tensor_parallel/ # 张量并行特性,管理张量并行相关特性
│ │ ├── tokenizer/ # 分词器特性,管理分词器相关特性
│ │ └── transformer/ # Transformer 特性,管理 Transformer 模型特性
│ ├── fsdp/ # FSDP 完全分片数据并行,实现 ZeRO-3 等分片策略
│ │ ├── mindspeed_parallel_engine.py # 并行引擎,提供 FSDP 并行引擎实现
│ │ ├── parallel_engine_config.py # 并行引擎配置,配置 FSDP 并行引擎参数
│ │ ├── distributed/ # 分布式,提供 FSDP 分布式通信功能
│ │ ├── memory/ # 内存,提供 FSDP 内存管理功能
│ │ ├── quantization/ # 量化,提供 FSDP 量化支持
│ │ └── utils/ # 工具,提供 FSDP 相关工具函数
│ ├── functional/ # 函数式接口,提供 NPU 相关的函数式 API
│ │ ├── npu_datadump/ # NPU 数据转储,提供 NPU 数据导出和调试功能
│ │ ├── npu_deterministic/ # NPU 确定性计算,确保 NPU 计算的确定性
│ │ ├── profile/ # 性能分析,提供性能分析和诊断工具
│ │ ├── profiler/ # Profiler,提供详细的性能分析功能
│ │ └── tflops_calculate/ # TFLOPS 计算,计算训练吞吐量和性能指标
│ ├── lite/ # Lite 轻量级版本,提供轻量级的训练支持
│ │ ├── mindspeed_lite_config.py # Lite 配置,提供 Lite 版本的配置管理
│ │ ├── mindspeed_lite.py # Lite 模型,提供 Lite 版本的模型实现
│ │ ├── distributed/ # 分布式,提供 Lite 版本的分布式支持
│ │ ├── memory/ # 内存,提供 Lite 版本的内存管理
│ │ ├── ops/ # 算子,提供 Lite 版本的算子实现
│ │ └── utils/ # 工具,提供 Lite 版本的工具函数
│ ├── mindspore/ # MindSpore 框架适配,提供 MindSpore 框架支持
│ │ ├── mindspore_adapter.py # MindSpore 适配器,实现 MindSpore 框架的适配
│ │ ├── core/ # 核心模块,提供 MindSpore 核心功能
│ │ ├── model/ # 模型,提供 MindSpore 模型实现
│ │ ├── ops/ # 算子,提供 MindSpore 算子实现
│ │ ├── optimizer/ # 优化器,提供 MindSpore 优化器实现
│ │ ├── op_builder/ # 算子构建器,提供 MindSpore 算子构建功能
│ │ └── third_party/ # 第三方库,集成第三方 MindSpore 库
│ ├── model/ # 模型定义,提供通用模型定义和接口
│ ├── moe/ # MoE 专家混合,提供混合专家模型实现
│ ├── multi_modal/ # 多模态支持,提供多模态模型训练支持
│ │ └── conv3d/ # 3D 卷积,提供 3D 卷积算子实现
│ ├── ops/ # 算子库,提供高性能融合算子
│ │ ├── dropout_add_layer_norm.py # Dropout+LayerNorm 融合,融合 Dropout 和 LayerNorm 操作
│ │ ├── dropout_add_rms_norm.py # Dropout+RMSNorm 融合,融合 Dropout 和 RMSNorm 操作
│ │ ├── ffn.py # FFN 算子,前馈神经网络算子实现
│ │ ├── fusion_attention_v2.py # 融合注意力 v2,优化的注意力机制实现
│ │ ├── gmm.py # GMM 算子,分组矩阵乘法算子
│ │ ├── gmm_mxfp8.py # MXFP8 GMM 算子,支持 MXFP8 的 GMM 算子
│ │ ├── grouped_matmul.py # 分组矩阵乘法,高效的分组矩阵乘法实现
│ │ ├── npu_apply_fused_adamw_v2.py # 融合 AdamW v2,NPU 优化的 AdamW 优化器
│ │ ├── npu_bmm_reduce_scatter_all_to_all.py # BMM+ReduceScatter+AllToAll,融合通信算子
│ │ ├── npu_matmul_add.py # MatMul+Add 融合,融合矩阵乘法和加法操作
│ │ ├── npu_rotary_position_embedding.py # 旋转位置编码,NPU 优化的 RoPE 实现
│ │ ├── ... # 其他算子,包含更多融合算子和优化算子
│ │ ├── csrc/ # C++ 源码,提供 C++ 实现的高性能算子
│ │ └── triton/ # Triton 算子,基于 Triton 的 GPU 算子实现
│ ├── optimizer/ # 优化器,提供分布式优化器实现
│ │ ├── adamw.py # AdamW 优化器,AdamW 优化器的 NPU 优化实现
│ │ ├── distrib_optimizer.py # 分布式优化器,支持分布式训练的优化器
│ │ └── optimizer.py # 优化器基类,定义优化器的基础接口
│ ├── op_builder/ # 算子构建器,提供算子的编译和注册功能
│ ├── run/ # 运行时模块,提供训练运行时支持
│ │ ├── run.py # 运行入口,训练脚本的入口文件
│ │ ├── gpt_dataset.patch # GPT 数据集补丁,GPT 数据集相关的补丁
│ │ ├── helpers.patch # 辅助函数补丁,辅助函数相关的补丁
│ │ └── initialize.patch # 初始化补丁,初始化流程相关的补丁
│ ├── te/ # Transformer Engine,Transformer 模型加速引擎
│ │ └── pytorch/ # PyTorch 适配,PyTorch 框架的 Transformer Engine 实现
│ │ ├── attention/ # 注意力机制,提供优化的注意力实现
│ │ ├── fp8/ # FP8 支持,提供 FP8 量化和计算支持
│ │ ├── module/ # 模块定义,提供 Tensor Engine 模块实现
│ │ ├── module_typing.py # 模块类型提示,提供模块的类型定义
│ │ ├── permutation.py # 置换操作,提供张量置换操作
│ │ └── utils.py # 工具函数,提供 Tensor Engine 工具函数
│ └── tokenizer/ # 分词器,提供文本分词功能
│ ├── tokenizer.py # 分词器核心,分词器的核心实现
│ └── build_tokenizer/ # 分词器构建,提供分词器的构建和配置
├── ci/ # 持续集成测试脚本,提供 CI/CD 自动化测试
│ ├── access_control_test.py # 访问控制测试,测试代码访问权限控制
│ └── docker/ # Docker 构建配置,Docker 镜像构建相关配置
│ └── Dockerfile # Docker 镜像定义,定义 Docker 镜像构建规则
├── docker/ # Docker 相关文件,包含 Docker 配置和脚本
├── tests_extend/ # 扩展测试用例,提供额外的测试用例
└── tools/ # 辅助工具集,提供开发和调试辅助工具