Illuzen/gpu bench - #75
Conversation
- record.sh: driver 580+ removed multiprocessor_count from nvidia-smi; the failed query exited under pipefail before the fallback could run. Treat failure as empty and fall through (sm_count stays blank). - setup.sh: ensure_node_key echoed its progress message to stdout, which the caller captured into the node-key file path, so first runs failed with NetworkKeyNotFound. Send the message to stderr. Found on a Clore GTX 1080 Ti rental during Phase 0 validation.
Supports --dev node + release binaries over SSH, interactive runpod-shell debugging, SM-count fallbacks, and installing NVIDIA GL userspace on compute-only Community hosts. Co-authored-by: Cursor <cursoragent@cursor.com>
Seed six RunPod sweep rows and point the sweep at results.csv so new samples append to the shared table. Co-authored-by: Cursor <cursoragent@cursor.com>
Split NVIDIA workstation/datacenter dispatch tiers, prefer clone+cargo build from MINER_BRANCH for iteration, and track cost_per_sec / hash_per_dollar in results.csv. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep SM-count query_sm_count path (avoids multiprocessor_count pipefail), retain setup.sh node-key stderr fix, and fold Clore/provider notes into the README. Co-authored-by: Cursor <cursoragent@cursor.com>
Verify with vulkaninfo and fall back to extracting the exact NVIDIA .run userspace so compute-only Community hosts can initialize WGPU. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 4 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 7bfd6a8. Configure here.
| // Ampere/Turing (RTX 30/20 series) | ||
| GpuTier { | ||
| pattern: r"\b30[5-9]0\b|\b20[6-8]0\b|rtx 30|rtx 20", | ||
| pattern: r"\b30[5-9]0\b|\b20[6-8]0\b|\brtx 30[5-9]0\b|\brtx 20[6-8]0\b", |
There was a problem hiding this comment.
Consumer GPU tiers miss entry SKUs
Medium Severity
Removing the bare rtx 50 / rtx 40 / rtx 20 catch-alls without widening the digit classes leaves real GeForce entry SKUs unmatched (RTX 5050, RTX 4050, RTX 2050), so they fall through to the NVIDIA unknown fallback. That breaks the GPU tier pattern rule requiring most-specific-first ordering and no coverage gaps when patterns change.
Additional Locations (2)
Triggered by learned rule: GPU tier patterns: check ordering and overlap
Reviewed by Cursor Bugbot for commit 7bfd6a8. Configure here.
| printf 'ready|proxy|%s|22|%s\n' "${pod_id}" "${cost}" | ||
| return 0 | ||
| fi | ||
| fi |
There was a problem hiding this comment.
Proxy SSH fallback never activates
Medium Severity
Proxy SSH is gated on non-empty ip and port, and ALLOW_PROXY_SSH defaults to 0. Pods that are RUNNING without a public IP therefore never try podId@ssh.runpod.io, even though that is the case proxy mode is meant to handle. The README still claims this fallback happens automatically.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 7bfd6a8. Configure here.
| disk=15 | ||
| elif [[ "${disk}" -gt 10 ]]; then | ||
| disk=10 | ||
| fi |
There was a problem hiding this comment.
Disk shrink breaks git miner builds
Medium Severity
On non-capacity create errors, create_pod_with_cloud shrinks containerDiskInGb from the default 50 to 15 then 10 before trying Secure cloud. Default MINER_SOURCE=git needs the larger disk for cargo target/, so Community may accept an undersized pod that then fails during the miner build.
Reviewed by Cursor Bugbot for commit 7bfd6a8. Configure here.
| echo "${NODE_CONTAINER_NAME}" >"${RUN_DIR}/node.container" | ||
| echo "docker" >"${RUN_DIR}/node.mode" | ||
| echo "Node listening for miners on 127.0.0.1:${miner_listen_port}/udp" | ||
| } |
There was a problem hiding this comment.
Docker mode ignores dev flag
Medium Severity
do_start always calls start_node_docker when --docker is set, and that path never reads DEV_MODE. Combined --docker --dev still requires REWARDS_INNER_HASH and starts a Planck validator instead of a local --dev chain.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 7bfd6a8. Configure here.


Note
Medium Risk
GPU tier table changes affect workgroup sizing on real hardware; benchmark range sizing is a small behavioral change. Mostly scripts/docs plus targeted engine logic, with new tests for tier matching.
Overview
Adds a
gpu-bench/workflow to run a--devnode + GPU miner on rented NVIDIA hosts, sample Prometheus/nvidia-smi, and append hashrate / utilization / hash_per_dollar rows to a sharedresults.csv. Scripts cover localsetup.sh, on-hostremote-run.sh+record.sh,batch-tune.shfor batch-size A/B tests, and optional RunPod orchestration viarunpod-sweep.sh/runpod-shell.sh(REST API, SSH, git-built miner, Vulkan/GL userspace bootstrap on compute-only images).Miner / GPU engine:
benchmarknow sizes worker nonce ranges from--gpu-batch-size/--cpu-batch-sizeso batch tuning is not clamped by a fixed 1M GPU chunk.gpu_tiers.rsexpands NVIDIA detection (workstation Ada, datacenter H/L/B, per-class RTX A-series, Blackwell PRO) and tightens GeForce patterns so barertx 40/rtx 50no longer misclassify Ada workstation SKUs; new unit tests lock this in.Root README documents the bench entry points; sample RunPod sweep data is committed in
results.csv.Reviewed by Cursor Bugbot for commit 7bfd6a8. Configure here.