Tune prefill batching across Qwen profiles
This commit is contained in:
@@ -22,12 +22,20 @@ EXPERIMENTAL_MODEL_FILE=qwen/Qwen3.8-27B-UD-IQ4_XS.gguf
|
|||||||
VISION_PROJECTOR_FILE=qwen/mmproj-BF16.gguf
|
VISION_PROJECTOR_FILE=qwen/mmproj-BF16.gguf
|
||||||
|
|
||||||
FAST_CONTEXT=76800
|
FAST_CONTEXT=76800
|
||||||
|
FAST_BATCH_SIZE=64
|
||||||
|
FAST_UBATCH_SIZE=32
|
||||||
MEDIUM_CONTEXT=160000
|
MEDIUM_CONTEXT=160000
|
||||||
MEDIUM_BATCH_SIZE=2048
|
MEDIUM_BATCH_SIZE=2048
|
||||||
MEDIUM_UBATCH_SIZE=128
|
MEDIUM_UBATCH_SIZE=128
|
||||||
LARGE_CONTEXT=192000
|
LARGE_CONTEXT=192000
|
||||||
|
LARGE_BATCH_SIZE=2048
|
||||||
|
LARGE_UBATCH_SIZE=128
|
||||||
ULTRA_CONTEXT=262144
|
ULTRA_CONTEXT=262144
|
||||||
|
ULTRA_BATCH_SIZE=2048
|
||||||
|
ULTRA_UBATCH_SIZE=128
|
||||||
UNCENSORED_CONTEXT=80000
|
UNCENSORED_CONTEXT=80000
|
||||||
|
UNCENSORED_BATCH_SIZE=2048
|
||||||
|
UNCENSORED_UBATCH_SIZE=128
|
||||||
EXPERIMENTAL_CONTEXT=76800
|
EXPERIMENTAL_CONTEXT=76800
|
||||||
FAST_GPU_DEVICES=0,1
|
FAST_GPU_DEVICES=0,1
|
||||||
MEDIUM_GPU_DEVICES=0,1
|
MEDIUM_GPU_DEVICES=0,1
|
||||||
|
|||||||
+8
-8
@@ -105,9 +105,9 @@ services:
|
|||||||
- --threads-batch
|
- --threads-batch
|
||||||
- "${LLAMA_THREADS_BATCH:-6}"
|
- "${LLAMA_THREADS_BATCH:-6}"
|
||||||
- --batch-size
|
- --batch-size
|
||||||
- "64"
|
- "${FAST_BATCH_SIZE:-64}"
|
||||||
- --ubatch-size
|
- --ubatch-size
|
||||||
- "32"
|
- "${FAST_UBATCH_SIZE:-32}"
|
||||||
- --parallel
|
- --parallel
|
||||||
- "1"
|
- "1"
|
||||||
- --jinja
|
- --jinja
|
||||||
@@ -268,9 +268,9 @@ services:
|
|||||||
- --threads-batch
|
- --threads-batch
|
||||||
- "${LLAMA_THREADS_BATCH:-6}"
|
- "${LLAMA_THREADS_BATCH:-6}"
|
||||||
- --batch-size
|
- --batch-size
|
||||||
- "64"
|
- "${LARGE_BATCH_SIZE:-2048}"
|
||||||
- --ubatch-size
|
- --ubatch-size
|
||||||
- "32"
|
- "${LARGE_UBATCH_SIZE:-128}"
|
||||||
- --parallel
|
- --parallel
|
||||||
- "1"
|
- "1"
|
||||||
- --jinja
|
- --jinja
|
||||||
@@ -345,9 +345,9 @@ services:
|
|||||||
- --threads-batch
|
- --threads-batch
|
||||||
- "${LLAMA_THREADS_BATCH:-6}"
|
- "${LLAMA_THREADS_BATCH:-6}"
|
||||||
- --batch-size
|
- --batch-size
|
||||||
- "64"
|
- "${ULTRA_BATCH_SIZE:-2048}"
|
||||||
- --ubatch-size
|
- --ubatch-size
|
||||||
- "32"
|
- "${ULTRA_UBATCH_SIZE:-128}"
|
||||||
- --parallel
|
- --parallel
|
||||||
- "1"
|
- "1"
|
||||||
- --jinja
|
- --jinja
|
||||||
@@ -426,9 +426,9 @@ services:
|
|||||||
- --threads-batch
|
- --threads-batch
|
||||||
- "${LLAMA_THREADS_BATCH:-6}"
|
- "${LLAMA_THREADS_BATCH:-6}"
|
||||||
- --batch-size
|
- --batch-size
|
||||||
- "64"
|
- "${UNCENSORED_BATCH_SIZE:-2048}"
|
||||||
- --ubatch-size
|
- --ubatch-size
|
||||||
- "32"
|
- "${UNCENSORED_UBATCH_SIZE:-128}"
|
||||||
- --parallel
|
- --parallel
|
||||||
- "1"
|
- "1"
|
||||||
- --jinja
|
- --jinja
|
||||||
|
|||||||
@@ -76,15 +76,23 @@ VISION_PROJECTOR_SHA256=83ee4f4f205fa514161778c41df1ea14144faa0f713510893b63c239
|
|||||||
# draft-model artifact is neither downloaded nor passed to llama-server.
|
# draft-model artifact is neither downloaded nor passed to llama-server.
|
||||||
|
|
||||||
FAST_CONTEXT=76800
|
FAST_CONTEXT=76800
|
||||||
|
FAST_BATCH_SIZE=64
|
||||||
|
FAST_UBATCH_SIZE=32
|
||||||
MEDIUM_CONTEXT=160000
|
MEDIUM_CONTEXT=160000
|
||||||
MEDIUM_BATCH_SIZE=2048
|
MEDIUM_BATCH_SIZE=2048
|
||||||
MEDIUM_UBATCH_SIZE=128
|
MEDIUM_UBATCH_SIZE=128
|
||||||
MEDIUM_TENSOR_SPLIT=90,10
|
MEDIUM_TENSOR_SPLIT=90,10
|
||||||
LARGE_CONTEXT=192000
|
LARGE_CONTEXT=192000
|
||||||
|
LARGE_BATCH_SIZE=2048
|
||||||
|
LARGE_UBATCH_SIZE=128
|
||||||
LARGE_TENSOR_SPLIT=86,14
|
LARGE_TENSOR_SPLIT=86,14
|
||||||
ULTRA_CONTEXT=262144
|
ULTRA_CONTEXT=262144
|
||||||
|
ULTRA_BATCH_SIZE=2048
|
||||||
|
ULTRA_UBATCH_SIZE=128
|
||||||
ULTRA_TENSOR_SPLIT=80,20
|
ULTRA_TENSOR_SPLIT=80,20
|
||||||
UNCENSORED_CONTEXT=80000
|
UNCENSORED_CONTEXT=80000
|
||||||
|
UNCENSORED_BATCH_SIZE=2048
|
||||||
|
UNCENSORED_UBATCH_SIZE=128
|
||||||
UNCENSORED_TENSOR_SPLIT=90,10
|
UNCENSORED_TENSOR_SPLIT=90,10
|
||||||
UNCENSORED_MTP_MAX=2
|
UNCENSORED_MTP_MAX=2
|
||||||
EXPERIMENTAL_CONTEXT=76800
|
EXPERIMENTAL_CONTEXT=76800
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Qwen prefill batch benchmark (2026-08-30)
|
||||||
|
|
||||||
|
Identical 24K-token prompt, one slot, Q4 KV cache and the production GPU split of each profile. The output measurement uses the same deterministic 64-token completion. Full-context checks were run for every changed profile.
|
||||||
|
|
||||||
|
| Profile | Context | Previous batch / ubatch | Previous prefill | Previous output | Selected batch / ubatch | Selected prefill | Selected output | Result |
|
||||||
|
|---|---:|---:|---:|---:|---:|---:|---:|---|
|
||||||
|
| fast | 76,800 | 64 / 32 | 907.2 tok/s | 75.4 tok/s | 64 / 32 | unchanged | unchanged | 2048 / 128 failed with CUDA OOM |
|
||||||
|
| medium | 160,000 | 64 / 32 | about 650–710 tok/s | about 65–70 tok/s | 2048 / 128 | 1,585.3 tok/s | 69.6 tok/s | selected; 155K plus vision passed |
|
||||||
|
| large | 192,000 | 64 / 32 | 730.6 tok/s | 78.4 tok/s | 2048 / 128 | 1,399.7 tok/s | 76.0 tok/s | selected; 190K plus vision passed |
|
||||||
|
| ultra | 262,144 | 64 / 32 | 672.0 tok/s | 57.1 tok/s | 2048 / 128 | 1,649.6 tok/s | 52.7 tok/s | selected; 258K passed |
|
||||||
|
| uncensored | 80,000 | 64 / 32 | 729.7 tok/s | 50.8 tok/s | 2048 / 128 | 1,331.8 tok/s | 49.9 tok/s | selected; 78K plus vision passed |
|
||||||
|
|
||||||
|
Full-context results with the selected settings:
|
||||||
|
|
||||||
|
| Profile | Tested prompt | Prefill | Output | Truncated | Vision after test |
|
||||||
|
|---|---:|---:|---:|---|---|
|
||||||
|
| medium | 154,998 | 881.3 tok/s | 37.8 tok/s | no | passed |
|
||||||
|
| large | 189,998 | 738.0 tok/s | 27.6 tok/s | no | passed |
|
||||||
|
| ultra | 257,998 | 698.2 tok/s | 21.1 tok/s | no | not configured for this profile |
|
||||||
|
| uncensored | 77,998 | 1,050.5 tok/s | 40.0 tok/s | no | passed |
|
||||||
|
|
||||||
|
The larger logical batches 3072 and 4096 did not improve Medium at ubatch 128. Moving Medium from a 90:10 to an 89:11 GPU split freed memory but reduced both prefill and output speed. The production setting therefore remains 2048 / 128 at 90:10.
|
||||||
Reference in New Issue
Block a user