~10 min read

Overview

Performance in Thumper-Run depends on three main resources: GPU VRAM for inference, system RAM for model staging, and disk I/O for model loading. This guide covers how Thumper manages each resource and how to tune your setup for maximum throughput.

Thumper’s launch system automatically detects your hardware and applies optimal settings. The information here is for understanding what happens under the hood and for manual tuning when the defaults are not ideal for your specific workload.

VRAM Tiers

Your GPU’s VRAM determines which workloads can run entirely on-device. The table below shows what each tier can handle comfortably. Thumper automatically selects model variants that fit your available VRAM.

VRAMImage GenLLMMusicVideo
4–6 GBSD 1.5 (512px)3–7B Q4ACE-Step (short)Not viable
8–12 GBSDXL (1024px)7–13B Q4–Q6ACE-Step (60s)LTX-Video (short)
16–24 GBFLUX (1024px+)30–70B Q4ACE-Step (180s)LTX-Video (full)
32+ GBAny model, full precision70B+ Q6–Q8Any lengthAny model
These are approximate guidelines. Actual VRAM usage depends on batch size, context length, resolution, and whether other models are loaded simultaneously.

Smart Memory & Eviction

ComfyUI’s model_management.py implements a smart memory system that keeps recently-used models in VRAM and only evicts enough to fit the next model. This dramatically speeds up multi-stage pipelines (e.g., text encoder → diffusion → VAE) because models stay warm between stages.

How Smart Memory Works

  • Models are loaded into VRAM and tracked by last-use timestamp
  • When a new model needs VRAM, the least-recently-used model is partially evicted
  • Only enough VRAM is freed to fit the incoming model — the rest stays cached
  • On the next generation, warm models skip the load step entirely

--disable-smart-memory

This flag forces full VRAM cleanup between model loads. It prevents OOM crashes when the partial eviction leaves too much residual data, but adds 50–70 seconds of model reload overhead per generation.

ScenarioSmart MemoryDisabledRecommendation
Dedicated GPU (16+ GB)Fast, no OOMUnnecessary overheadKeep enabled
APU (shared RAM, CPU encoder)Fast, CPU encoder frees budgetUnnecessary overheadKeep enabled
APU (shared RAM, GPU encoder)OOM during VAEWorks, +50–70sDisable (or use CPU encoder)
Low VRAM (4–6 GB)Frequent OOMSlower but stableDisable
Never use --lowvram on an APU (integrated GPU with shared system RAM). It triggers per-layer GPU offload which shuffles data between the same physical RAM, achieving only ~5% GPU utilization while being dramatically slower.

AMD APU Optimization

AMD APUs (integrated GPUs sharing system RAM) require specific tuning that differs from discrete GPU setups. Thumper applies these settings automatically via platform patches, but understanding them helps with troubleshooting.

BF16 is Mandatory

FP16 causes NaN errors in DiT attention layers because models trained in BF16 overflow FP16’s maximum range (~65,504). Always use BF16 or FP32 on AMD APUs. Thumper’s patches set this automatically.

MIOpen Find-DB Configuration

MIOpen benchmarks GPU kernels to find the fastest algorithm for each operation. The results are cached in a find-database. Configuration is critical for launch time.

VariableValueEffect
MIOPEN_FIND_MODE=2FASTUse cached benchmarks. Critical for production — skips re-benchmarking on every launch.
MIOPEN_FIND_MODE=1DYNAMIC_HYBRIDRe-benchmarks every launch (~8 min penalty). Only useful for initial setup.
MIOPEN_FIND_ENFORCE=4Force benchmarkForces full re-benchmark. ONE-TIME warmup only. Never leave set in production.

Non-Tiled VAE

Non-tiled VAE decoding is up to 1000x faster than tiled decoding for short content (1 second vs 18 minutes). However, non-tiled VAE for long content (180s songs) can require ~40 GB of VRAM. Thumper auto-falls back to tiled VAE for content longer than 60 seconds.

Benchmark results on AMD APU with cached Find-DB + non-tiled VAE + BF16: 10s content = 4.3s, 30s = 9s, 60s = 16s inference time.

Model Loading

Model loading time is the single biggest contributor to perceived latency. Understanding the loading pipeline helps set expectations and optimize your workflow.

First-Run Penalty

  • First launch after install downloads models (minutes to hours depending on connection)
  • First inference on AMD triggers MIOpen kernel benchmarking (~2–8 minutes one-time)
  • Subsequent launches skip both steps and load from cache

Keeping Models Warm

Once a model is loaded into VRAM, subsequent generations using the same model are nearly instant. Thumper’s smart memory keeps models cached between generations. Tips for staying warm:

  • Batch similar workloads together (all image gen, then all LLM, etc.)
  • Avoid switching between apps that use different models frequently
  • Close unused apps to free VRAM for the active workload

ComfyUI Execution Cache

ComfyUI caches node execution results by input hash. If your inputs have not changed (same prompt, same seed, same model), ComfyUI returns the cached result instantly. Change the seed or prompt to force re-execution.

Disk I/O

Model files range from 2 GB to 40+ GB. Disk speed directly impacts load times, especially on first launch when models are read from storage into VRAM.

Storage TypeRead Speed4 GB Model LoadImpact
NVMe SSD3–7 GB/s~1 secondIdeal
SATA SSD500 MB/s~8 secondsAcceptable
HDD (7200 RPM)150 MB/s~27 secondsNot recommended

HuggingFace Cache Deduplication

The HuggingFace cache (~/.cache/huggingface/hub/) uses content-addressable blob storage. Multiple model revisions that share the same files (common for minor updates) use hard links, avoiding duplicate disk usage. Do not copy files out of the cache — Thumper symlinks to them directly.

Sharing HF Cache Across Users

Set HF_HOME to a shared directory (e.g., /shared/huggingface) to share downloaded models across user accounts on the same machine. All Thumper instances will discover models in this shared location automatically.

bash
export HF_HOME=/shared/huggingface

Key Takeaways

  • VRAM determines what you can run — check the tier table for your GPU
  • Smart memory keeps models warm; only disable it for OOM issues on low VRAM
  • Never use --lowvram on APUs — it shuffles data within the same RAM
  • MIOPEN_FIND_MODE=2 is critical for AMD — saves ~8 minutes per launch
  • NVMe SSD makes a significant difference for model load times