File size: 2,498 Bytes
ddf8c5b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env bash
# k3-test/config.env — shared configuration for all scripts.
# Override any value by exporting it before running, e.g. K3_INCLUDE="*UD-IQ1_S*" ./01_download_k3.sh

# --- pinned runtime -------------------------------------------------------
# llama.cpp master @ 2026-08-25 — includes "model: add Kimi-K3 text model" (#26185, merged 2026-08-15).
# Vision support needs the unsloth fork PR#48 instead; this test plan is text-only => mainline is fine.
LLAMA_GIT="https://github.com/ggml-org/llama.cpp"
LLAMA_REF="d222767c7a6516559a3f49e7721b6c6b1acc87b4"
LLAMA_DIR="${LLAMA_DIR:-$HOME/llama.cpp}"
LLAMA_BIN="${LLAMA_BIN:-$LLAMA_DIR/build/bin}"

# --- models ----------------------------------------------------------------
MODEL_DIR="${MODEL_DIR:-$HOME/models}"
K3_HF_REPO="unsloth/Kimi-K3-GGUF"
K3_INCLUDE="${K3_INCLUDE:-*UD-Q4_K_XL*}"          # 32 shards, 1508.7 GB total (verified 2026-08-25)
K3_SUBDIR="UD-Q4_K_XL"
K3_FIRST_SHARD="${K3_FIRST_SHARD:-Kimi-K3-UD-Q4_K_XL-00001-of-00032.gguf}"
K3_MODEL_PATH="${K3_MODEL_PATH:-$MODEL_DIR/Kimi-K3-GGUF/$K3_SUBDIR/$K3_FIRST_SHARD}"
K3_VISION_MMPROJ="${K3_VISION_MMPROJ:-}"          # set to download mmproj-BF16.gguf if vision is wanted

SMOKE_HF_REPO="Qwen/Qwen3-30B-A3B-GGUF"
SMOKE_INCLUDE="${SMOKE_INCLUDE:-*Q4_K_M*}"
SMOKE_MODEL_PATH="${SMOKE_MODEL_PATH:-$MODEL_DIR/Qwen3-30B-A3B/Qwen3-30B-A3B-Q4_K_M.gguf}"

# --- runtime knobs ----------------------------------------------------------
THREADS="${THREADS:-$(nproc)}"
GEN_TOKENS="${GEN_TOKENS:-128}"                    # tokens to decode per experiment run
CTX_SIZE="${CTX_SIZE:-8192}"
SEED="${SEED:-42}"

# trunk placement (see PREP_REPORT.md "trunk VRAM reality check"):
# UD-Q4_K_XL dense trunk is mostly Q8_0 (~55-60 GB) — does NOT fit in 2x24GB.
#   trunk across 3 GPUs : TSPLIT="1,1,1"  TGPU_N=3
#   trunk across 2 GPUs : TSPLIT="1,1"    (spill to CPU for the remainder)
TSPLIT="${TSPLIT:-1,1,1,1}"  # 4x16GB=64GB holds the ~58GB Q8_0 trunk; 8x5060Ti box

# expert override: keep every routed-expert tensor on CPU (equivalent to --cpu-moe)
EXPERT_CPU_OT='.ffn_(up|gate|down)_exps.=CPU'

# sampling (deterministic for comparability)
SAMPLE_ARGS="--temp 0 --top-k 1 --seed $SEED"

# --- logging ----------------------------------------------------------------
K3TEST_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_ROOT="${LOG_ROOT:-$K3TEST_ROOT/logs}"
MON_INTERVAL="${MON_INTERVAL:-10}"                # seconds between resource samples
mkdir -p "$LOG_ROOT"