Local, explicit, and disconnected from mining networks
This project uses CapStash Proof-of-Work and Whirlpool hashing as a deterministic real-world WebGPU compute workload. All computation is local and explicitly user-triggered. It does not connect to a blockchain network, pool, wallet, payout system, RPC service, or block-submission service.
Guided Browser Test Workflow
Choose one test type, then follow the ordered controls shown for that workflow. Advanced diagnostics and raw JSON remain available in Advanced mode.
Guided mode shows only controls that apply to the selected test.
Compact Result Summary
No guided action has completed yet.
Reset clears compiled pipeline session state, correctness prerequisites, profiling histories, matched comparison history, and the current result. Switching Guided/Advanced does not reset anything.
WGSL Workgroup Experiment
Controls how many GPU invocations are grouped together. It does not change the Whirlpool algorithm.
- Selected workgroup size
- 1
- Pipeline key
- whirlpool-batched-wg1
- Device support
- not checked
- Compile status
- not compiled
- Small-gate status
- not run
- Full-294 status
- pending
- Performance eligibility
- locked
- Profile status
- not run
- Recommendation status
- No recommendation
Compile must precede the small gate; full 294 must precede profiling.
Not running.
Matched WG1 vs WG32 Comparison
Runs alternating WG1 and WG32 Variant B samples only after both pipelines pass current-session correctness prerequisites.
WG1 prerequisites
WG32 prerequisites
Runs the same profile multiple times so timing variability can be measured.
Execution order: WG1, WG32, WG32, WG1, WG1, WG32
Both sizes must pass compile, small gate, and full 294-vector verification first.
Not running.
Used by Minimal/Core WGSL verification mode. Preset order: 1x1, 1x2, 1x4, 3x1, 3x2, 10x1. Subset checks are not full-vector verification. Full 294-vector WGSL/Core verification may take longer than subset checks. This is a correctness test, not a mining benchmark. Explicit workgroup experiment buttons use their own compile, small-gate, full-294, and profile actions. Selecting Full 294 here does not change a workgroup experiment button action.
Correctness-only batched verification; not optimized mining performance. Batch size 1 keeps the known-good single-dispatch-per-hash path.
Controlled synthetic nonce-batch benchmark. This mode is not selected by default and does not run unless Start is clicked.
Each dispatch hashes one sequential synthetic nonce per WGSL invocation, then reads results back for accounting and CPU spot checks.
Profiling defaults to the known-good 8,192 hashes / batch 512 configuration. It does not run until Start is clicked.
Variant A is the current readback-after-each-dispatch behavior. Variant B encodes multiple logical dispatches into one submission and one combined readback. The no-readback probe is profiling-only and is not a valid hash benchmark.
Repeated profiling summaries aggregate only matching profiling configurations.
Experimental shader variant. Correctness must pass before performance results are accepted. Workgroup size 1 remains the verified reference.
Used only after full 294-vector verification; the first manual action should run compile/device validation and the small gate only.
WGSL Workgroup-Size Experiment
Correctness-gated experiment for compile-time `@workgroup_size(...)` variants. This panel does not change Whirlpool arithmetic, does not compare targets, and does not establish mining performance.
- Reference Workgroup Size
- 1
- Selected Experimental Size
- 1
- Pipeline Key
- whirlpool-batched-wg1
- Workgroups Per 512-Hash Chunk
- 512
- Total Invocations
- 8192 active / 0 padded
- Correctness Eligibility
- Not run
- Performance Eligibility
- Full 294 verification required
- Recommendation Status
- No recommendation; at least three valid compatible repetitions per size are required.
- Current Requested Action
- None
- Current Action Status
- Idle
- Last Completed Action
- None
| Workgroup size | Device support | Pipeline | Small gate | Full 294 | Profiling | Mean total | Mean queue wait | H/s | Status |
|---|
Last Workgroup Experiment Result
Not run
WebGPU Device Limits
Checking
First CPU/GPU Whirlpool Mismatch
None
Minimal/Core Fixture Verification Session
- Current Fixture
- Not run
- Nonce Counts
- Not run
- Fixture Cases
- 0 / 0
- Core Vector Warning
- Not verified yet.
Tested Nonces
Not run
CapStash Core Vector Verification
- Core Vector Status
- CapStash Core vectors: pending
- Core Vectors Loaded
- 0
- CPU Reference Against Core
- Pending
- Documented WGSL/Core Verification
- Full 294-vector pass documented
- This Session WGSL/Core Verification
- Pending
- WGSL Verification Subset
- Not run
- WGSL Vectors Selected
- Not run
- WGSL Batch Size
- 1
- WGSL Shader Size
- Not run
- This Run Shader Generation
- Not run
- This Run Shader Module Creation
- Not run
- Current Run Pipeline Creation
- Not run
- Historical Cold Compile Observation
- Not run
- Current Run Pipeline Cache Status
- Not run
- Historical Cold Compile Timestamp
- Not run
- Historical Cold Compile Applies To Current Run
- Not run
- Pipeline Timeout Setting
- Not run
- This Run Total Elapsed
- Not run
- This Run Total Diagnostics
- Not run
- Warm Dispatch Time
- Not run
- Buffer Setup Time
- Not run
- CPU Comparison Time
- Not run
- Verified H/s Excluding Pipeline
- Not run
- Verified H/s Including Pipeline
- Not run
- Pipeline Error
- None
First Core Mismatch
None
Pipeline Diagnostics
None
Controlled Synthetic Nonce-Batch Benchmark
Correctness-gated local browser research only. This mode uses a fixed verified fixture header, generates sequential nonce ranges locally, runs WGSL Whirlpool over synthetic batches, reads results back, and CPU spot-checks selected nonces. It does not compare targets, connect to pools, submit blocks, use wallets, track payouts, or represent production mining performance.
- Synthetic Mode Status
- Not run
- Synthetic WGSL Whirlpool
- Not run
- Core-vector WGSL Verification This Session
- Not run in synthetic mode
- Telemetry Consistency
- Not run
- Fixture/Header
- Not run
- Start/End Nonce
- Not run
- Total Requested
- 0
- Hashes Completed
- 0
- Dispatch Batch Size
- 64
- Dispatch Count
- 0
- Hashes Per Dispatch
- Not run
- Correctness Gate
- Automatic gate not run
- CPU Spot-Check Status
- Not run
- CPU Spot-Check Count
- 0
- Verified H/s Including Pipeline
- Not run
- Verified H/s Excluding Pipeline
- Not run
- Synthetic Benchmark Diagnostics
- Not run
- Automatic Correctness-Gate Diagnostics
- Automatic gate not run
- Workgroup Dispatch Model
- Not run
- Device Workgroup Limit
- Not run
First Synthetic Mismatch
None
Compatible Repeated-Run Summary
- Summary Status
- No compatible repeated runs in this session
- Compatible Runs
- 0
- Valid Runs
- 0
- Invalid Runs
- 0
- H/s Including Pipeline Stats
- No compatible valid runs
- H/s Excluding Pipeline Stats
- No compatible valid runs
- Dispatch Time Stats
- No compatible valid runs
- Total Elapsed Stats
- No compatible valid runs
- Variation Interpretation
- Insufficient repeated runs for variability statistics
Session History
| Hash Count | Batch | Gate | Spot Checks | Dispatches | Dispatch Time | Total Elapsed | H/s Incl. Pipeline | H/s Excl. Pipeline | Status |
|---|
Synthetic Profiling Run
Correctness-gated browser-observed profiling for the verified synthetic WGSL Whirlpool path. This panel does not expose GPU hardware counters and does not establish native miner performance.
- Profiling Status
- Not run
- Profiling Preset
- 8,192 hashes / batch 512
- Readback Strategy
- Variant A - current per-dispatch readback
- Repetitions
- 1
- Correctness Gate
- Not run
- CPU Spot Checks
- Not run
- Mismatch / Pipeline Status
- Not run
- Timing Source
- Browser-observed timing only; no GPU hardware counters.
Host-Side Phase Timing
Not run
Profiling Interpretation
Not run
Repetition Statistics
Not run
Variant A/B Compatible Comparison
Insufficient compatible runs
Per-Dispatch Timing Preview
Not run
Profiling Session History
| Hash Count | Batch | Strategy | Dispatches | Total | Queue Wait | Readback | CPU Validation | Interpretation | Scope | Status |
|---|
Browser Limitations
Hashes are computed by the JavaScript CPU reference implementation on the browser main thread.
- `webgpu-plumbing-only` executes a temporary fake shader on the GPU to prove buffer layout, nonce mapping, dispatch, and readback.
- `webgpu-plumbing-only` is not CapStash hashing, and CPU-reference mismatches are expected in that mode.
- `webgpu-whirlpool-minimal` is correctness-only and supports tiny nonce counts while the real WGSL Whirlpool path is audited.
- WGSL/Core results are selected-subset results unless the Core panel explicitly says `WGSL/Core verification: Full 294-vector pass`.
- Full 294-vector verification is manual only and remains correctness-only, not optimized.
- `webgpu-synthetic-nonce-benchmark` is a controlled synthetic local benchmark mode with an automatic correctness gate and CPU spot checks.
- `webgpu-synthetic-profiling` profiles browser-observed host phases for the verified synthetic path and does not expose shader-internal GPU counters.
- Current verified shader uses @workgroup_size(1); batch size 512 means 512 one-invocation workgroups.
- Variant B profiling records logical dispatch count separately from physical queue submissions, queue waits, and combined readbacks.
- The no-readback profiling probe is not a valid hash benchmark because output correctness is not established by that run alone.
- Synthetic benchmark results are not target comparisons, not pool mining, not live network submission, and not profitability evidence.
- Pipeline creation currently dominates timing for the observed minimal Whirlpool run.
- Do not treat any WebGPU mode as a production miner.
- Browsers do not expose reliable GPU temperature, power, clock, or fan telemetry to pages.
- WebGPU adapter names may be redacted by privacy settings or browser policy.
- Values shown here are Browser WebGPU Performance, not native CUDA, OpenCL, Vulkan, or CPU mining performance.