prain: README; example config with the measured eGPU defaults (miss auto <=2 tokens, 16 CPU threads, no pinned RAM tier)
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
# prain placement: prithivMLmods/gemma-4-26B-A4B-it-Uncensored-MAX on an 8 GB RX 6600 XT
|
||||
# Model: 30 MoE layers x 128 experts, top-8 routing, 11.34 MiB per expert (BF16).
|
||||
# VRAM: 8 GiB - 4.45 GiB dense weights - 0.75 GiB KV cache - ~0.9 GiB runtime = ~1.7 GiB experts.
|
||||
# VRAM, measured: 6.22 GiB weights (4.46 dense + 5 slots x 30 layers) + 0.75 GiB KV cache: 7.9 of
|
||||
# 8 GiB in use. Serve with --attention-backend TRITON_ATTN (ROCM_ATTN needs more LDS than RDNA2 has).
|
||||
# RAM tier: pinning is very slow behind a strict IOMMU (Thunderbolt eGPU: minutes per GiB), so this
|
||||
# file keeps no RAM tier; the kernel page cache holds the hot part of the pack instead.
|
||||
#
|
||||
# Tiers: vram = pinned in a VRAM slot for the whole run
|
||||
# ram = pinned host memory, copied into a cache slot when a token needs it
|
||||
@@ -38,10 +41,11 @@ budget = 2 # experts per layer and forward
|
||||
min_prob = 0.05 # skip guesses below this router probability
|
||||
|
||||
[miss] # an expert that is not in VRAM
|
||||
mode = "copy" # copy | cpu (always compute it on the CPU) | auto (CPU if it has
|
||||
cpu_max_tokens = 1 # at most cpu_max_tokens tokens, else copy)
|
||||
cpu_threads = 4 # CPU threads of the vLLM worker (sets OMP_NUM_THREADS)
|
||||
admit = 1 # cpu/auto: copy this many CPU-run experts into VRAM afterwards
|
||||
mode = "auto" # copy | cpu (always compute it on the CPU) | auto (CPU if it has
|
||||
cpu_max_tokens = 2 # at most cpu_max_tokens tokens, else copy). Measured on the Thunderbolt
|
||||
# eGPU host: a copy costs ~4.6 ms + disk read, the CPU ~2.5 ms per token
|
||||
cpu_threads = 16 # CPU threads of the vLLM worker (sets OMP_NUM_THREADS)
|
||||
admit = 0 # cpu/auto: copy this many CPU-run RAM-tier experts into VRAM afterwards
|
||||
|
||||
[serve] # parallel requests (`prain serve` passes these to vLLM)
|
||||
max_requests = 2 # requests vLLM runs at once (--max-num-seqs); warm-ups count too
|
||||
|
||||
Reference in New Issue
Block a user