Skip to main content

Available Benchmarks

SiliconMark supports various benchmarks for GPU performance testing.
  1. QuickMark - Comprehensive single-node GPU compute and memory performance test
  2. Cluster Network - Multi-node network connectivity and bandwidth testing
  3. Inference Benchmark - Multi-engine LLM inference performance (NVIDIA and AMD, using vLLM)
  4. Llama 3 Inference - Single-node LLM inference performance using NVIDIA NIM
  5. Llama 3 Fine-Tuning - Single-node LLM fine-tuning performance using NVIDIA NeMo
Each benchmark section includes configuration options, execution actions, result structures, and field metadata for interpreting the performance metrics.

QuickMark Benchmark

Overview

Configuration

No configuration required — uses defaults.

Result Structure

Results include one entry per GPU in test_results and a combined aggregate_results. For single-GPU systems, aggregate_results mirrors the single GPU result.

Field Metadata


Cluster Network Benchmark

Overview

Result Structure

One measurement per directed node pair.

Field Metadata


Inference Benchmark — vLLM

This benchmark measures LLM inference serving performance using vLLM. It supports both NVIDIA (CUDA) and AMD (ROCm) GPUs and runs without requiring an NGC API key.

Overview

Configuration

Result Structure

Field Metadata


Llama 3 Inference — NIM

This benchmark measures LLM inference serving performance using NVIDIA NIM containers, driven by GenAI-Perf.

Overview

Requirements

  • NGC API Key: Required (set as NGC_API_KEY environment variable)
  • Podman: Required to run NIM and GenAI-Perf containers

Configuration

Multiple configurations can be submitted in a single job run.

Result Structure

Each configuration produces a BenchmarkMetrics object. Each metric field contains a full statistical distribution.
Each metric object may include: avg, p25, p50, p75, p90, p95, p99, min, max, std.

Field Metadata


Llama 3 Fine-Tuning — NeMo

This benchmark measures LLM fine-tuning performance using NVIDIA’s NeMo framework with automatic memory-aware parallelism configuration.

Overview

Configuration

Fixed Parameters

  • Sequence Length: 4096 tokens
  • Micro Batch Size: 1 (optimized for packed sequences)
  • Training Data: Synthetic (SquadDataModule)

Requirements

Software Requirements

  • NeMo Container: nvcr.io/nvidia/nemo:25.11.01 — downloaded automatically if not present
  • HuggingFace Token: Required (set as HF_TOKEN environment variable). Get your token from https://huggingface.co/settings/tokens
  • Docker: Required to run the NeMo container
  • Disk Space:
    • 8B model: ~75GB (55GB base + 20GB model)
    • 70B model: ~205GB (55GB base + 150GB model)
    • 405B model: ~905GB (55GB base + 850GB model)

Hardware Requirements

The benchmark automatically calculates memory requirements based on model configuration: Minimum GPU requirements:
  • 8B LoRA: 1× GPU with ≥16GB VRAM
  • 8B full: 1× GPU with ≥24GB VRAM
  • 70B: ≥2 GPUs
  • 405B: ≥8 GPUs (FP8 + LoRA only)

Parallelism Strategy

The benchmark automatically calculates optimal parallelism using a memory-aware strategy:
  1. Tensor Parallelism (TP) = smallest power of 2 such that total_memory / TP ≤ gpu_memory
  2. Data Parallelism (DP) = total_gpus / TP
  3. Global Batch Size (GBS) = min(DP × 2, model_cap) — caps: 8B→64, 70B→32, 405B→16

Example Configurations

Result Structure

Metrics Calculation

  • Tokens per Step = global_batch_size × sequence_length
  • Tokens per Second = tokens_per_step ÷ train_step_time_mean
  • Time to 1T Tokens = 10¹² ÷ (tokens_per_second × 86400) days
  • Step Time CV = (train_step_time_std ÷ train_step_time_mean) × 100

Field Metadata