DeepSpeed源码结构,各个文件夹主要内容描述:
具体文件结构如下所示:
└─DeepSpeed-master
├─accelerator # 加速器
├─azure # azure上使用DeepSpeed
├─benchmarks # DeepSpeed基准测试的资源链接
├─bin
├─blogs # DeepSpeed相关的博客文章
│ ├─......
├─csrc # C++接口
│ ├─adagrad # 实现DeepSpeed库中的CPU Adagrad优化器
│ ├─adam # 实现DeepSpeed库中的CPU Adam优化器
│ ├─aio # 实现DeepSpeed AIO(Asynchronous Input/Output)操作
│ │ ├─common
│ │ ├─py_lib
│ │ └─py_test
│ ├─common
│ ├─cpu # CPU执行下,Python代码调用以下C++扩展模块执行
│ │ ├─adam # Adam优化器
│ │ ├─comm # 通信操作
│ │ └─lion # lion优化器(CPU)
│ ├─deepspeed4science
│ │ └─evoformer_attn # 注意力机制相关
│ │ ├─epilogue # 张量核心注意力计算的GPU内核实现
│ │ ├─gemm # 涉及CUDA内核编程、GEMM操作优化和矩阵乘法实现
│ │ ├─iterators # 包含多个操作的迭代器
│ │ └─transform # 加速器中张量运算和内存操作的实现,提供可重用的模板结构和类
│ ├─includes # 包含的头文件
│ ├─lamb # Fused LAMB优化器
│ ├─lion # lion优化器
│ ├─quantization # 量化操作
│ ├─random_ltd # 包含对张量的相关操作
│ ├─sparse_attention # 处理稀疏矩阵
│ ├─spatial # 融合偏置(bias)相关操作
│ │ ├─csrc
│ │ └─includes
│ ├─transformer # 扩展模块,DeepSpeed Transformer实现C++代码
│ │ └─inference
│ │ ├─csrc
│ │ └─includes
│ └─utils # C++扩展模块,张量处理操作
├─deepspeed # deepspeed相关加速优化
│ ├─autotuning # 自动调优器
│ │ ├─config_templates
│ │ └─tuner # 包含基本调优器
│ ├─checkpoint # DeepSpeed项目中用于模型检查点相关
│ ├─comm # DeepSpeed通信模块
│ ├─compression # 模型压缩和优化
│ ├─elasticity # 弹性训练功能
│ ├─inference # 涉及模型推理引擎配置
│ │ ├─quantization # 模型量化
│ │ └─v2 # 推理引擎相关
│ │ ├─......
│ ├─launcher # 多节点训练的启动和运行
│ ├─model_implementations # 模型实现
│ │ ├─diffusers # 模型的特定实现
│ │ ├─features # CUDAGraph抽象方法
│ │ └─transformers # DeepSpeedTransformer实现
│ ├─module_inject # DeepSpeed Transformer层注入到现有的PyTorch模型
│ │ └─containers
│ │ └─features
│ ├─moe # Mixture of Experts门控混合专家模型层
│ ├─monitor # DeepSpeed 项目监控模块
│ ├─nebula # 涉及 Nebula 功能
│ ├─ops # 张量操作和优化算子
│ │ ├─......
│ ├─pipe
│ ├─profiling # FLOPS(浮点运算次数)分析器的配置
│ │ └─flops_profiler
│ ├─runtime # 运行时
│ │ ├─activation_checkpointing # 激活检查点功能
│ │ ├─checkpoint_engine # 检查点引擎功能
│ │ ├─comm # 不同硬件上的通信功能
│ │ ├─compression # PyTorch张量与CuPy数组之间转换功能
│ │ ├─data_pipeline # 涉及数据流水线相关操作
│ │ │ ├─data_routing
│ │ │ └─data_sampling
│ │ ├─fp16 # 提供混合精度训练
│ │ │ └─onebit
│ │ ├─pipe # 流水线相关操作
│ │ ├─swap_tensor # 张量(tensors)交换
│ │ └─zero # DeepSpeed Zero优化的配置和实现细节
│ ├─sequence # 分布式环境中处理注意力机制
│ └─utils # 提供 DeepSpeed 库中的通信性能分析、日志记录和设备管理功能
├─docker # 构建docker镜像
├─docs
│ ├─......
├─examples # DeepSpeed Examples
├─op_builder # DeepSpeed 自定义操作(ops)
│ ├─cpu # CPU 操作(Ops)的构建
│ └─npu # NPU(昇腾)操作(Ops)的构建
├─release # 发行版本
├─requirements # 需要的库
├─scripts # 用于检查和修改源代码的脚本
└─tests # 测试
├─......
├─op_builder # 涉及自定义操作(ops)的构建和实现
│ │ all_ops.py # 导入并注册了 DeepSpeed 中所有可用的自定义操作构建器
│ │ async_io.py # 构建和编译 DeepSpeed 中的异步 I/O(输入/输出)操作
│ │ builder.py # 包含一些用于构建 DeepSpeed 自定义操作的基类
│ │ cpu_adagrad.py # 构建和编译 DeepSpeed 中的 CPU 版本的 Adagrad 优化器
│ │ cpu_adam.py # 构建和编译 DeepSpeed 中的 CPU 版本的 Adam 优化器
│ │ cpu_lion.py # 构建和编译 DeepSpeed 中的 CPU 版本的 LION 优化器
│ │ evoformer_attn.py # 构建和编译 DeepSpeed 中的 Evoformer 注意力操作
│ │ fused_adam.py # 构建和编译 DeepSpeed 中的融合 Adam 优化器
│ │ fused_lamb.py # 构建和编译 DeepSpeed 中的融合 LAMB 优化器
│ │ fused_lion.py # 构建和编译 DeepSpeed 中的融合 LION 优化器
│ │ inference_core_ops.py # 构建和编译 DeepSpeed 中的推理核心操作
│ │ inference_cutlass_builder.py # 构建和编译 DeepSpeed 中的 Cutlass 推理操作
│ │ quantizer.py # 构建和编译 DeepSpeed 中的量化操作
│ │ ragged_ops.py # 构建和编译 DeepSpeed 中的不规则(ragged)张量设备操作
│ │ ragged_utils.py # 构建和编译 DeepSpeed 中的不规则(ragged)张量操作
│ │ random_ltd.py # 构建和编译 DeepSpeed 中的随机 LTD(局部敏感哈希)操作
│ │ sparse_attn.py # 构建和编译 DeepSpeed 中的稀疏注意力操作
│ │ spatial_inference.py # 构建和编译 DeepSpeed 中的空间推理操作
│ │ stochastic_transformer.py # 构建和编译 DeepSpeed 中的随机 Transformer 操作
│ │ transformer.py # 构建和编译 DeepSpeed 中的 Transformer 操作
│ │ transformer_inference.py # 构建和编译 DeepSpeed 中的 Transformer 推理操作
│ │ __init__.py
│ ├─cpu # CPU 操作(Ops)的构建
│ │ builder.py
│ │ comm.py
│ │ cpu_adam.py
│ │ fused_adam.py
│ │ no_impl.py
│ │ __init__.py
└─ └─npu # NPU(昇腾)操作(Ops)的构建
builder.py
cpu_adagrad.py
cpu_adam.py
cpu_lion.py
fused_adam.py
no_impl.py
__init__.py