Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 129 additions & 0 deletions HARDWARE_TESTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Hardware Testing

The most useful outside contribution to this project right now is **hardware
diversity**.

The existing correctness work is heavily validated on NVIDIA/Windows. Results
from AMD, Intel, Apple, other NVIDIA architectures, different drivers, and
different current browsers help determine which observations are general and
which are machine-specific.

## What this test is

This is a local browser compute test.

It does **not**:

- connect to a mining pool;
- connect to a wallet;
- submit blocks;
- send CAP;
- run hidden/background mining.

GPU work starts only when the tester explicitly starts a verification or
profiling action.

## Easiest test

Open the deployed lab:

<https://webgpu-experiment-lab.pages.dev>

Use a current browser with WebGPU enabled.

Run the full Core-vector correctness verification.

The important result is:

```text
294 / 294
0 mismatches
```

A failure is useful evidence too. Do not retry repeatedly until it disappears;
record the first reproducible failure and the environment.

## What to record

Please record:

- operating system and version;
- browser and version;
- GPU/adapter name;
- GPU vendor;
- driver version when easily available;
- whether WebGPU was available normally or required an experimental flag;
- full Core-vector result;
- mismatch count;
- pipeline/device error text, if any;
- optional exported result JSON.

Do not include account credentials, wallet data, browser profiles, or unrelated
system logs.

## Optional performance test

Only after correctness passes, a tester may run the synthetic profiling or
workgroup comparison workflows.

Performance is secondary.

Browser timing can vary because of:

- browser scheduling;
- CPU validation time;
- driver behavior;
- thermal/power state;
- background system load.

A high-variance result is valid evidence. Do not turn a noisy result into a
claimed recommendation.

## Result template

```text
Result: PASS / FAIL / INCOMPLETE
OS:
Browser:
GPU:
Vendor:
Driver:
WebGPU available without special flag: yes / no

Core vectors:
matched:
total: 294
mismatches:

Pipeline/device error:

Optional profiling:
workflow:
samples:
mean throughput:
variability/CV:
recommendation produced by app: yes / no

Notes:
```

## Priority hardware

Especially useful environments include:

1. AMD Radeon on Windows or Linux;
2. Intel Arc / Intel integrated graphics;
3. Apple Silicon / Safari or another WebGPU-capable browser;
4. NVIDIA architecture other than the currently recorded Blackwell result;
5. Linux on any supported discrete GPU.

One clean correctness result from a new hardware/browser family is more useful
than many repeated performance runs on the already-tested machine.

## Pass meaning

A 294/294 pass means the tested browser/GPU stack produced outputs identical to
the committed CapStash Core vectors for this verification workload.

It does **not** prove profitable mining performance, universal browser support,
production mining safety, or compatibility with every driver version.
33 changes: 33 additions & 0 deletions HARDWARE_TEST_RESULT_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Hardware Test Result

- Result: `PASS | FAIL | INCOMPLETE`
- Test date (UTC):
- Repository/deployment version or commit, if known:
- Operating system:
- Browser/version:
- GPU/adapter:
- Vendor:
- Driver:
- WebGPU available without special flag: `yes | no`

## Correctness

- Core vectors matched:
- Core vectors total: `294`
- Mismatches:
- Pipeline/device error:

## Optional profiling

- Workflow:
- Samples:
- Mean throughput:
- Median throughput:
- Variability/CV:
- Application recommendation: `winner | no recommendation | not run`

## Notes

Record reproducible browser/device behavior here. Do not include wallet
information, account credentials, browser-profile data, or unrelated system
logs.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,13 @@ loads idle with no automatic GPU workload. See [DEPLOYMENT.md](./DEPLOYMENT.md).
- Already-submitted WebGPU dispatches cannot necessarily be interrupted, so the
interface does not claim fake cancellation.

## Outside hardware testing

Results from hardware/browser families not represented in the existing evidence
are especially useful. Start with correctness, not speed. See
[HARDWARE_TESTING.md](./HARDWARE_TESTING.md) and
[HARDWARE_TEST_RESULT_TEMPLATE.md](./HARDWARE_TEST_RESULT_TEMPLATE.md).

## Reproducibility and tests

```powershell
Expand Down
Loading