b70-optimization-lab

Phi-4 Mini Instruct GGUF Rapid Snapshot

Audience: benchmark readers and future optimizers who need strict one-B70 llama.cpp baselines for Phi-4-mini-instruct on Intel Arc Pro B70.

Status

Both rows use the conservative standalone confirmation, not the lower four-GPU-active screen rows.

Q4_K_M

Q8_0

Quick Screen

All rows below used the same strict rapid realistic suite, one cold response per prompt, server prompt cache disabled, per-request cache_prompt=false, and cached_tokens=0 on every request.

Label Median tok/s 1-100 after TTFT Result
q4km-confirm 96.54834088986573 promoted conservative Q4_K_M
q4km-confirm2 96.5741088959735 same-recipe standalone support
q8-confirm2 72.24629337909391 promoted conservative Q8_0
q8-confirm 72.88395951540713 same-recipe standalone support
q4km-default-fourway 74.79866793510266 four-GPU-active support only
q4km-poll100-fourway 74.23238745327595 four-GPU-active support only
q8-default-fourway 60.15295566301178 four-GPU-active support only
q8-poll100-fourway 59.78046405225362 four-GPU-active support only

Conclusion: this small model is sensitive to concurrent four-GPU screening on the shared host. Promote from standalone confirmations, not from concurrent screen rows.

Reproduce

Q4_K_M:

cd /home/steve/llm-optimizations

MODEL=/mnt/usb-models/llm-models/phi-4-mini-instruct-gguf/microsoft_Phi-4-mini-instruct-Q4_K_M.gguf \
MODEL_ALIAS=phi4-mini-instruct-q4km \
LABEL=phi4-mini-instruct-q4km-llamacpp-faon-cacheoff-confirm-ctx4096-realistic128 \
GPU_INDEX=0 PORT=19710 \
CTX_SIZE=4096 BATCH_SIZE=1024 UBATCH_SIZE=256 POLL=50 \
FLASH_ATTN=on CACHE_TYPE_K=f16 CACHE_TYPE_V=f16 \
MAX_TOKENS=128 METRIC_TOKENS=100 \
scripts/run-rapid-llamacpp-realistic-candidate.sh

Q8_0:

cd /home/steve/llm-optimizations

MODEL=/mnt/usb-models/llm-models/phi-4-mini-instruct-gguf/microsoft_Phi-4-mini-instruct-Q8_0.gguf \
MODEL_ALIAS=phi4-mini-instruct-q8 \
LABEL=phi4-mini-instruct-q8-llamacpp-faon-cacheoff-confirm2-ctx4096-realistic128 \
GPU_INDEX=0 PORT=19713 \
CTX_SIZE=4096 BATCH_SIZE=1024 UBATCH_SIZE=256 POLL=50 \
FLASH_ATTN=on CACHE_TYPE_K=f16 CACHE_TYPE_V=f16 \
MAX_TOKENS=128 METRIC_TOKENS=100 \
scripts/run-rapid-llamacpp-realistic-candidate.sh

The runner defaults to server prompt cache disabled (--cache-ram 0) and per-request prompt cache disabled ({"cache_prompt":false}). Do not remove either for headline claims.

Validity

These rows use the shared rapid realistic suite:

The benchmark uses streamed text/reasoning deltas for token timing because llama.cpp does not provide vLLM-style streamed token IDs here. The promoted rows emitted enough streamed deltas for the 100-token metric window.

Notes For Future Work