| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| 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)" |
|
|