# Original Peak SM120 native adapter test

This test executes the original unmodified PeakMiner 2.20.2 SM120 kernel through
its original host adapter. It is not the Mouillay split2/split4 implementation.
No competitor full miner process is launched. No shares are submitted.

## New contract findings

Disassembly of original DLL RVA 0x4220 establishes that the 128-byte public
result is NOT a hash or transcript: it contains coordinates only.
- u32 at 0: valid = 1
- u32 at 4: row // 128
- u32 at 8: column // 256
- u16 at 16: row % 128
- u16 at 18: column % 256
- byte at 24: 1
- other bytes: zero

The native checker index q is divided by (columns / 16). Candidate origin is
row = quotient * 10, column = remainder * 16. There are 512 row origins and
the row extent is 5120. This does not establish the individual sampled row/
column patterns or consensus K. Multiplying time by our production 24x8 work
would be unjustified. In particular the exported columns is a column extent,
not a demonstrated consensus K.

Native run RVA 0x7820 caches B when its 32-byte seed is unchanged. The new test
warms up and measures 30 seconds with fixed B, then 30 seconds with changing B,
then requests MAX-target candidates for layout inspection. All native output
buffers have a 4096-byte guard. The original DLL hash is verified before load.
Actual physical compute capability 12.0 is required before loading the DLL.

## Remaining integration gate

Reconstruct native sampling and transcript contract, verify against consensus
CPU proof generation, establish exact work per scan, and qualify on SM120.
Do not route the ordinary mining backend to this adapter until these pass.
No TH/s figure is emitted by the current test because exact work is unproven.
The current development GPU is RTX 3070 and cannot execute this SM120 kernel.

## Run

Extract the dedicated test ZIP and execute TEST_PEAK_SM120.bat on RTX 50-series.
Results are logs/peak-sm120-native.json and logs/peak-sm120-native-console.txt.
Run without another miner on the same GPU. Default 60 seconds measured plus
warm-up/candidate capture. The tests can be lengthy on MAX-target workloads.
