# nvidia/apex

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nvidia-apex).**

8,972 stars · 1,521 forks · Python · BSD-3-Clause

## Links

- GitHub: https://github.com/NVIDIA/apex
- awesome-repositories: https://awesome-repositories.com/repository/nvidia-apex.md

## Description

Apex is a high-performance toolkit for PyTorch designed to coordinate distributed training, execute fused GPU kernels, manage mixed precision, and implement optimized distributed optimizers. It provides specialized tools for scaling model training across multiple GPUs and nodes to increase processing speed and throughput.

The library features high-performance implementations of Adam and LAMB optimizers to reduce synchronization overhead and memory bottlenecks. It utilizes fused CUDA kernels to combine neural network operations, reducing memory overhead and increasing execution speed.

The toolkit further covers mixed precision training and gradient scaling to save memory while maintaining numerical stability. It also includes accelerated implementations of normalization layers such as LayerNorm, RMSNorm, and BatchNorm to improve training convergence.

## Tags

### Artificial Intelligence & ML

- [Distributed GPU Training](https://awesome-repositories.com/f/artificial-intelligence-ml/distributed-gpu-training.md) — Provides tools for scaling PyTorch model training across multiple GPUs and nodes.
- [Distributed Training](https://awesome-repositories.com/f/artificial-intelligence-ml/distributed-training-frameworks/distributed-training.md) — Serves as a toolkit for configuring data and model parallelism across multiple PyTorch devices.
- [Fused GPU Kernel Composition](https://awesome-repositories.com/f/artificial-intelligence-ml/gpu-kernel-implementations/kernel-composition-frameworks/fused-gpu-kernel-composition.md) — Combines multiple mathematical operations into single GPU kernels to reduce memory traffic and increase throughput.
- [Mixed Precision Training](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/machine-learning-training/distributed-and-accelerated-compute/training-acceleration-tools/mixed-precision-training.md) — Uses a blend of floating-point formats during training to reduce memory and increase throughput.
- [Mixed-Precision Computing](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/machine-learning-training/distributed-and-accelerated-compute/training-acceleration-tools/mixed-precision-training/mixed-precision-computing.md) — Implements execution across 16-bit and 32-bit floating point formats to balance memory usage and stability.
- [Deep Learning Optimization](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-optimization-and-inference/training-algorithms/deep-learning-optimization.md) — Optimizes deep learning training speed and memory efficiency via fused kernels and optimized normalization.
- [High-Performance Optimizer Implementations](https://awesome-repositories.com/f/artificial-intelligence-ml/optimization-algorithms/high-performance-optimizer-implementations.md) — Provides high-performance Adam and LAMB implementations to reduce synchronization overhead during large-scale training.
- [Optimizer Performance Optimizations](https://awesome-repositories.com/f/artificial-intelligence-ml/optimizer-performance-optimizations.md) — Reduces synchronization overhead and memory bottlenecks using fused and distributed versions of Adam and LAMB. ([source](https://github.com/nvidia/apex#readme))
- [Accelerated Normalization Layers](https://awesome-repositories.com/f/artificial-intelligence-ml/accelerated-normalization-layers.md) — Provides accelerated implementations of LayerNorm, RMSNorm, and BatchNorm to improve training convergence speed. ([source](https://github.com/nvidia/apex#readme))
- [Distributed Training Sharding](https://awesome-repositories.com/f/artificial-intelligence-ml/distributed-training-sharding.md) — Implements strategies for partitioning optimizer states across multiple GPUs to reduce memory footprint.
- [Fused Neural Modules](https://awesome-repositories.com/f/artificial-intelligence-ml/gpu-kernel-implementations/communication-kernels/fused-all-reduce/fused-neural-modules.md) — Merges weight updates and gradient applications into single GPU passes to eliminate redundant memory reads.
- [Distributed Optimizer Scaling](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-optimization-and-inference/serving-and-runtime/inference-optimizations/large-model-optimizations/distributed-optimizer-scaling.md) — Manages memory overhead and synchronization for massive networks using distributed Adam and LAMB optimizers.
- [Training Throughput Optimization](https://awesome-repositories.com/f/artificial-intelligence-ml/training-throughput-optimization.md) — Increases processing speed and training throughput by spreading workloads across multiple GPUs and nodes. ([source](https://github.com/nvidia/apex#readme))
- [Loss Scaling Techniques](https://awesome-repositories.com/f/artificial-intelligence-ml/vector-embeddings/embedding-layer-initialization/gradient-stabilization/loss-scaling-techniques.md) — Uses loss scaling to prevent numerical underflow when training with lower precision floating point formats.

### Development Tools & Productivity

- [PyTorch Bindings](https://awesome-repositories.com/f/development-tools-productivity/compilers-toolchains/c-extension-interfaces/c-extension-development/pytorch-bindings.md) — Provides C++ and CUDA extensions that bind high-performance operations to the PyTorch framework.

### Software Engineering & Architecture

- [Distributed Training Coordination](https://awesome-repositories.com/f/software-engineering-architecture/distributed-coordination-systems/distributed-training-coordination.md) — Coordinates and synchronizes machine learning training tasks across distributed GPU clusters. ([source](https://github.com/nvidia/apex#readme))
