hku_diffusion_dllm / experiments /basecode_sweep /run_basecode_sweep.slurm
Ouzhang's picture
Add files using upload-large-folder tool
d91766b verified
Raw
History Blame Contribute Delete
2.21 kB
#!/bin/bash
#SBATCH -J bd-base-sweep
#SBATCH -o /home/l/liyj/shiying/hku_diffusion_dllm/runs/basecode/%x_%j.out
#SBATCH -e /home/l/liyj/shiying/hku_diffusion_dllm/runs/basecode/%x_%j.err
#SBATCH -N 1
#SBATCH --partition=normal
#SBATCH --cpus-per-task=2
#SBATCH --mem=4G
#SBATCH -t 00:20:00
#SBATCH --open-mode=append
set -euo pipefail
PROJECT=/home/l/liyj/shiying/hku_diffusion_dllm
cd "$PROJECT"
RUN_DIR="$PROJECT/runs/basecode"
mkdir -p "$RUN_DIR"
OUT_JSONL="$RUN_DIR/sweep_${SLURM_JOB_ID}.jsonl"
LATEST="$RUN_DIR/latest_sweep.jsonl"
echo "[info] started_at=$(date -Iseconds)"
echo "[info] node=$(hostname)"
echo "[info] output=$OUT_JSONL"
run_one() {
local method="$1"
local steps="$2"
local block_size="$3"
local num_blocks="$4"
local remask_ratio="$5"
local use_cache="$6"
local tmp
tmp="$(mktemp "$RUN_DIR/tmp_${method}_${steps}_${block_size}_${num_blocks}_XXXX.json")"
local args=(python3 -m basecode.blockdiff.cli --method "$method" --steps "$steps" --block-size "$block_size" --num-blocks "$num_blocks" --remask-ratio "$remask_ratio" --output "$tmp")
if [ "$use_cache" = "true" ]; then
args+=(--use-cache)
fi
"${args[@]}" >/dev/null
python3 - "$tmp" "$OUT_JSONL" "$method" "$steps" "$block_size" "$num_blocks" "$remask_ratio" "$use_cache" <<'PY'
import json
import sys
from pathlib import Path
tmp, out, method, steps, block_size, num_blocks, remask_ratio, use_cache = sys.argv[1:]
payload = json.loads(Path(tmp).read_text())
payload["sweep"] = {
"method": method,
"steps": int(steps),
"block_size": int(block_size),
"num_blocks": int(num_blocks),
"remask_ratio": float(remask_ratio),
"use_cache": use_cache == "true",
}
with open(out, "a", encoding="utf-8") as f:
f.write(json.dumps(payload, ensure_ascii=False) + "\n")
Path(tmp).unlink(missing_ok=True)
PY
}
for block_size in 8 16 32; do
run_one confidence 6 "$block_size" 1 0.5 false
run_one dmax 4 "$block_size" 1 0.25 false
run_one speculative 6 "$block_size" 1 0.5 true
done
for num_blocks in 2 4 8; do
run_one multiblock 8 16 "$num_blocks" 0.5 true
done
ln -sfn "$(basename "$OUT_JSONL")" "$LATEST"
echo "[info] latest=$LATEST"
echo "[info] finished_at=$(date -Iseconds)"