Skip to content

Repository files navigation

InfiniTrain

CIIssuesPRLicense

A from-scratch C++ training framework for large-scale models with multi-dimensional distributed parallelism.

🚀 Quick Start

System Requirements

Hardware Requirements

  • Recommended: NVIDIA Ampere-class GPUs (A100/A800) or newer

Software Requirements

  • CUDA / NCCL: Latest stable versions
  • gcc / g++: Version 13+
  • CMake: Version 3.13+

Installation

mkdir build
cd build
cmake .. -DUSE_CUDA=ON -DUSE_NCCL=ON
make -j

Build Options:

  • USE_CUDA=ON

    Enable CUDA backend support.

  • USE_NCCL=ON

    Enable NCCL-based distributed communication.

Both options are optional and can be disabled for CPU-only builds.

✨ InfiniTrain Overview

✔ Support Matrix

CategoryFeatureDescriptionStatus
Model SupportGPT-2Decoder-only Transformer language model✔ Supported
LLaMA 3Modern LLaMA-family Transformer architecture✔ Supported
DeepSeek-V3Large-scale MoE-based language model🗓 Planned
PrecisionMultiple Data TypeFP32, BF16✔ Supported
Mixed PrecisionAutocast-based BF16 compute with FP32 accumulation✔ Supported
Distributed TrainingData Parallel (DP)Parameter-server-style data parallelism✔ Supported
Distributed Data Parallel (DDP)Collective-based data parallelism✔ Supported
Tensor Parallelism (TP)Intra-layer tensor sharding✔ Supported
Sequence Parallelism (SP)Sequence dimension sharding✔ Supported
Pipeline Parallelism (PP)GPipe, 1F1B scheduling, Virtual Pipeline (vPP)✔ Supported
Hybrid ParallelismArbitrary combination of DDP + TP + SP + PP✔ Supported
Core ComponentsMulti-backendCPU and CUDA execution backends✔ Supported
Multi-node Distributed TrainingDistributed execution across multiple nodes✔ Supported
Kernel DispatcherKernel registration and dynamic dispatch mechanism✔ Supported
AutogradAutomatic differentiation engine✔ Supported
AutocastAutomatic mixed precision runtime✔ Supported
Performance OptimizationsCompute–Comm OverlapExplicit scheduling to hide communication latency✔ Supported
DDP Gradient BucketingDeferred and bucketed gradient synchronization✔ Supported
ZeRO-DPDistributedOptimizer-based ZeRO-1🚧 In Progress
Execution ModeTraining ModeFull forward–backward training with autograd✔ Supported
no_grad InferenceForward-only execution without gradient tracking✔ Supported
Debugging & ToolingBuilt-in ProfilerKernel-level performance profiling✔ Supported
Automated BenchmarkingOne-click execution, log analysis and Feishu export✔ Supported

🏋️ Training

Each model in the example/ directory is compiled into an independent executable.
For example, the llama3 example produces a binary named llama3.

To view available runtime options:

./llama3 --help

Getting Started

The following examples demonstrate LLaMA 3 supervised fine-tuning (SFT) using InfiniTrain.

Single-node Training Example

./llama3 \
--device cuda \
--input_bin [training_data_path] \
--llmc_filepath [model_path] \
--num_iteration 10

Multi-nodes Training Example (3D parallel)

./infini_run \
--nnodes=2 \
--nproc_per_node=1 \
--node_rank=[rank_id] \
-- ./llama3 \
--device cuda \
--input_bin [training_data_path] \
--llmc_filepath [model_path] \
--num_iteration 10 \
--nthread_per_process 8 \
--batch_size 40 \
--total_batch_size 10240 \
--tensor_parallel 2 \
--pipeline_parallel 2 \
--sequence_parallel

Parallelism Strategies

Distributed Data Parallelism (DDP)

--nthread_per_process 8 # ddp_size = nthread_per_process / (tensor_parallel × pipeline_parallel)

Tensor Parallelism (TP)

--tensor_parallel 4 # 4-way tensor parallelism
--sequence_parallel # Enable sequence parallelism (requires TP > 1)

Pipeline Parallelism (PP)

--pipeline_parallel 8 # 8 pipeline stages
--virtual_pipeline_parallel 4 # Virtual pipeline for better load balancing

Combining Parallelism Strategies

Multiple parallelism strategies (DDP, TP, SP, PP) can be freely combined to scale training across devices and nodes.

🗺 Roadmap

  • 2025/03/10 — InfiniTrain v0.1.0

    Initial framework prototype with MNIST CPU training.

  • 2025/04/30 — InfiniTrain v0.3.0

    Added Autograd support and GPT-2 training on CPU/CUDA.

  • 2025/07/09 — InfiniTrain v0.4.0

    Introduced kernel registration, LLaMA training on CPU/CUDA, BF16 precision, and Data Parallelism.

  • 2025/12/31 — InfiniTrain v0.5.0

    Added Autocast, multi-dimensional distributed parallelism (DDP, TP, SP, PP with GPipe / 1F1B / vPP), multi-node training, no_grad mode, and communication–computation overlap with bucketed gradient synchronization.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages