88 lines
5.0 KiB
Plaintext
88 lines
5.0 KiB
Plaintext
# Exact source snapshot (already present on mounted storage)
|
|
SOURCE=/run/media/popov/DATA/llm/safetensor/models/models--Qwen--Qwen2.5-0.5B-Instruct/snapshots/7ae557604adf67be50417f59c2c2f167def9a775
|
|
LLAMA=/run/media/popov/d/DEV/llamacpp/llama.cpp
|
|
ROCM_PY=/run/media/popov/d/DEV/repos/d-popov.com/AI/.venv-rocm/bin/python
|
|
PROJECT_PY=/run/media/popov/d/DEV/repos/d-popov.com/AI/.venv/bin/python
|
|
OUT=/run/media/popov/DATA/llm/dgr-001
|
|
SIGNING_KEY=/home/popov/.config/neuron-tai/keys/dgr-001-evidence-ed25519.pem
|
|
|
|
# Private signing key is outside Git and must remain owner-only
|
|
stat -c '%a %n' "$SIGNING_KEY" # expected: 600
|
|
|
|
# Converter support check (no writes)
|
|
$ROCM_PY $LLAMA/convert_hf_to_gguf.py "$SOURCE" --outtype f16 --outfile "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-F16.gguf" --dry-run
|
|
|
|
# Exact-revision near-lossless and performance-fit artifacts
|
|
$ROCM_PY $LLAMA/convert_hf_to_gguf.py "$SOURCE" --outtype f16 --outfile "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-F16.gguf"
|
|
$LLAMA/build/bin/llama-quantize "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-F16.gguf" "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-Q4_K_M.gguf" Q4_K_M
|
|
$ROCM_PY $LLAMA/convert_hf_to_gguf.py "$SOURCE" --outtype bf16 --outfile "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-BF16.gguf"
|
|
|
|
# Runtime and artifact identity
|
|
git -C "$LLAMA" rev-parse HEAD
|
|
$LLAMA/build/bin/llama-server --version
|
|
sha256sum "$LLAMA/build/bin/llama-server" "$LLAMA/convert_hf_to_gguf.py" "$LLAMA/build/bin/llama-quantize"
|
|
sha256sum "$SOURCE/model.safetensors" "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-BF16.gguf" "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-Q4_K_M.gguf"
|
|
|
|
# Deterministic complete-snapshot digest used by benchmark-config.json
|
|
PYTHONPATH=packages/node $ROCM_PY - <<'PY'
|
|
from pathlib import Path
|
|
from meshnet_node.recipe_drivers import _artifact_sha256
|
|
print(_artifact_sha256(Path('/run/media/popov/DATA/llm/safetensor/models/models--Qwen--Qwen2.5-0.5B-Instruct/snapshots/7ae557604adf67be50417f59c2c2f167def9a775')))
|
|
PY
|
|
|
|
# Canonical opt-in local-real benchmark
|
|
MESHNET_ENABLE_REAL_INFERENCE_TESTS=1 MESHNET_EVIDENCE_SIGNING_KEY="$SIGNING_KEY" \
|
|
PYTHONPATH=packages/node $ROCM_PY -m meshnet_node.recipe_benchmark \
|
|
--config .scratch/distributed-gguf-runtime/evidence/DGR-001/benchmark-config.json \
|
|
--json-out .scratch/distributed-gguf-runtime/evidence/DGR-001/results.json \
|
|
--summary-out .scratch/distributed-gguf-runtime/evidence/DGR-001/results.txt
|
|
|
|
# Distil the baseline and evaluate immutable v1
|
|
PYTHONPATH=packages/node $PROJECT_PY - <<'PY'
|
|
from pathlib import Path
|
|
import json
|
|
from meshnet_node.performance_contract import baseline_from_report, evaluate_contract, load_contract
|
|
root = Path('.scratch/distributed-gguf-runtime/evidence/DGR-001')
|
|
report = json.loads((root / 'results.json').read_text())
|
|
contract = load_contract(root / 'performance-contract.json')
|
|
(root / 'baseline.json').write_text(json.dumps(baseline_from_report(report), indent=2, sort_keys=True) + '\n')
|
|
(root / 'contract-evaluation.json').write_text(json.dumps(evaluate_contract(contract, report).to_dict(), indent=2, sort_keys=True) + '\n')
|
|
PY
|
|
|
|
# Optional ROCm GPU diagnostic (not eligible for immutable v1)
|
|
# The version-matched rocm[devel] wheel expands beyond 20 GB; ensure sufficient
|
|
# space or relocate its packaged payload before installation.
|
|
uv pip install --python "$ROCM_PY" --prerelease=allow \
|
|
--index-url https://rocm.nightlies.amd.com/v2/gfx1151/ \
|
|
'rocm[devel]==7.13.0a20260513'
|
|
ROCM_VENV=/run/media/popov/d/DEV/repos/d-popov.com/AI/.venv-rocm
|
|
ROCM_SDK="$ROCM_VENV/bin/rocm-sdk"
|
|
ROCM_ROOT="$($ROCM_SDK path --root)"
|
|
ROCM_BIN="$($ROCM_SDK path --bin)"
|
|
export PATH="$ROCM_VENV/bin:$ROCM_BIN:$PATH"
|
|
export ROCM_PATH="$ROCM_ROOT" HIP_PATH="$ROCM_ROOT"
|
|
export CMAKE_PREFIX_PATH="$($ROCM_SDK path --cmake):$ROCM_ROOT"
|
|
export LD_LIBRARY_PATH="$ROCM_ROOT/lib:$ROCM_ROOT/lib64:${LD_LIBRARY_PATH:-}"
|
|
$ROCM_VENV/bin/cmake -S /run/media/popov/d/DEV/llamacpp/llama.cpp \
|
|
-B /run/media/popov/d/DEV/llamacpp/llama.cpp/build-hip -G Ninja \
|
|
-DGGML_HIP=ON -DGPU_TARGETS=gfx1151 \
|
|
-DCMAKE_HIP_COMPILER="$ROCM_VENV/bin/amdclang++" \
|
|
-DCMAKE_BUILD_TYPE=Release -DLLAMA_BUILD_TESTS=OFF \
|
|
-DLLAMA_BUILD_EXAMPLES=ON -DLLAMA_BUILD_SERVER=ON
|
|
$ROCM_VENV/bin/cmake --build /run/media/popov/d/DEV/llamacpp/llama.cpp/build-hip \
|
|
--target llama-server llama-cli llama-bench -j 16
|
|
MESHNET_ENABLE_REAL_INFERENCE_TESTS=1 MESHNET_EVIDENCE_SIGNING_KEY="$SIGNING_KEY" \
|
|
PYTHONPATH=packages/node $ROCM_PY -m meshnet_node.recipe_benchmark \
|
|
--profile gpu-diagnostic \
|
|
--config .scratch/distributed-gguf-runtime/evidence/DGR-001/gpu-diagnostic-config.json \
|
|
--json-out .scratch/distributed-gguf-runtime/evidence/DGR-001/gpu-diagnostic-results.json \
|
|
--summary-out .scratch/distributed-gguf-runtime/evidence/DGR-001/gpu-diagnostic-results.txt
|
|
PYTHONPATH=packages/node $PROJECT_PY \
|
|
.scratch/distributed-gguf-runtime/evidence/DGR-001/summarize-quality-parity.py
|
|
|
|
# Deterministic verification
|
|
PYTHONPATH=packages/node $PROJECT_PY -m pytest -q tests/test_recipe_benchmark.py
|
|
PYTHONPATH=packages/node $PROJECT_PY -m pytest -q
|
|
PYTHONPATH=packages/node $PROJECT_PY -m compileall -q packages tests
|
|
git diff --check
|