GPU Cluster Design and Tuning for ML (NVIDIA A100/H100)

GPU idling due to network bottlenecks or misconfigured drivers is a common scenario—an 8-node A100 cluster delivering only 30% utilization. The root cause is rarely the cards themselves but the environment: slow interconnect, improper NCCL parameters, or unoptimized storage. We have tuned 20+ GPU cl

AI Development Areas

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1285
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1241
  • image_logo-advance_0.webp
    B2B Advance company logo design
    696
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    983
  • image_logo-aider_0.webp
    AIDER company logo development
    919
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1033

GPU idling due to network bottlenecks or misconfigured drivers is a common scenario—an 8-node A100 cluster delivering only 30% utilization. The root cause is rarely the cards themselves but the environment: slow interconnect, improper NCCL parameters, or unoptimized storage. We have tuned 20+ GPU clusters over 5+ years and know how to squeeze every ampere-hour. Our approach is simple: eliminate bottlenecks across the entire chain—from drivers to job scheduler.

Why hardware is only half the story

Even top-tier GPUs won't boost performance if the rest of the system is unbalanced. The NVIDIA A100 (80GB SXM) with NVLink (600 GB/s intra-node) and H100 (80GB SXM5) with HBM3 (3.35 TB/s) are powerful, but they require matching infrastructure. Without InfiniBand and a parallel filesystem (GPFS, Lustre), you get 30–50% GPU utilization instead of 85%+. We design clusters around your workloads: for LLMs with tensor parallelism, NVLink speed is critical; for data parallelism, InfiniBand bandwidth between nodes matters most.

How to verify cluster performance after tuning

After every setup we run AllReduce tests using nccl-tests. For 8× A100, expected bandwidth is >280 GB/s at 1GB message size. If lower, we hunt for the bottleneck: NUMA affinity, driver version, switch configuration. We also launch a benchmark training run for your model (e.g., GPT-2 or BERT) and compare throughput against expectations. According to NVIDIA, proper NUMA tuning can yield up to 20% improvement.

Our GPU cluster tuning process

  1. Audit current infrastructure and requirements—dataset size, model types, training frequency.
  2. Design—select GPUs, number of nodes, interconnect type, filesystem.
  3. Install drivers and CUDA—production versions, enable persistence mode, optimize power limits.
  4. Tune NCCL—fine-tune parameters, test AllReduce bandwidth (target >280 GB/s on 8× A100).
  5. Integrate with scheduler—Slurm for batch training or Kubernetes + GPU Operator for containerization.
  6. Monitoring and optimization—DCGM, Prometheus, dashboards with key metrics.
  7. Documentation and team training—how to launch jobs, diagnose issues.

Example: driver and CUDA installation

# Ubuntu 22.04 apt install linux-headers-$(uname -r) nvidia-driver-535 wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run sh cuda_12.3.0_545.23.06_linux.run --silent --toolkit # cuDNN tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz cp cuda/include/cudnn*.h /usr/local/cuda/include cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 ldconfig nvidia-smi; nvcc --version 

NCCL tuning and interconnect testing

apt install libnccl2 libnccl-dev git clone https://github.com/NVIDIA/nccl-tests cd nccl-tests && make ./build/all_reduce_perf -b 1G -e 4G -f 2 -g 8 # Expected: 1GB ~280 GB/s, 4GB ~300 GB/s (algbw) 

Interconnect choice: InfiniBand vs Ethernet

Parameter InfiniBand HDR Ethernet 100GbE
Bandwidth 200 Gbps 100 Gbps
Latency ~1 µs ~3–5 µs
Scaling efficiency for LLM 85–90% 60–70%
RDMA support Native Requires RoCEv2

For multi-node training with tensor parallelism, InfiniBand is mandatory. Ethernet is acceptable only for small clusters (2–4 nodes) or inference.

Configuration comparison: single-node vs multi-node

Parameter Single-node (8× GPU) Multi-node (32+ GPU)
Interconnect NVLink (600 GB/s) InfiniBand HDR (200 Gbps)
Storage Local NVMe Parallel FS (Lustre)
Scheduler Slurm / Kubernetes Slurm + gang scheduling
Typical task Fine-tuning LLaMA 7B Pre-training GPT-3 175B

NCCL tuning details

NCCL uses Tree, Ring, and NVLS algorithms. For H100, we recommend enabling NVLS (NVLink Shared) to speed up all-reduce. The parameter NCCL_ALGO=NVLS can yield 10–15% improvement. Also important is NCCL_IB_HCA to specify InfiniBand interfaces. More details can be found in the official NCCL repository.

Orchestration: Slurm or Kubernetes?

Slurm is the HPC standard, best for long batch jobs with fixed GPU count. Kubernetes + GPU Operator suits containerized, dynamic resource allocation. We help you choose and configure gang scheduling so all GPU pods launch simultaneously.

GPU Operator installation (Helm)

helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm install gpu-operator nvidia/gpu-operator --namespace gpu-operator --create-namespace --set driver.enabled=true --set toolkit.enabled=true 

Example Slurm job

#!/bin/bash #SBATCH --nodes=4 #SBATCH --ntasks-per-node=8 #SBATCH --gres=gpu:8 #SBATCH --partition=a100 #SBATCH --time=48:00:00 srun python train.py --nproc_per_node=8 --nnodes=4 

Monitoring: DCGM Exporter and metrics

helm install dcgm-exporter nvidia/dcgm-exporter 

Key metrics: GPU utilisation (>85%), memory copy utilisation, NVLink bandwidth, power usage.

Common tuning mistakes

  • Skipping NUMA affinity configuration—costs 10–20% performance.
  • Using a single filesystem partition for both datasets and checkpoints—creates an IO bottleneck.
  • Not running AllReduce tests between nodes—often only discovered in production.
  • Wrong scheduler parameters (timeout, backfill)—GPUs sit idle.

Results and guarantees

After tuning, your cluster will deliver:

  • GPU utilization ≥85% under standard loads.
  • Scaling efficiency of 85–90% for multi-node training.
  • Documented deployment and monitoring procedures.

We guarantee stable operation and provide support under a service agreement. We will estimate your project within 1–2 days. Contact us for a consultation and get a preliminary assessment. Order tuning and forget about GPU downtime.