2026-10-21
On an otherwise ideal simulated 256x256 PCM tile, sparse recovery over random probes localizes up to 64 stuck cells in 4 to 12 reads at 1% noise, versus 256 for a full readout.
Analog in-memory chips compute a matrix-vector product inside a resistive crossbar. Cells drift, and some stick: conductance stops tracking the programmed value. A repair can fix a stuck cell only when it knows which cell failed. Reading every cell of a 256 by 256 tile costs 256 reads in this paper's accounting. One read is one probe vector, applied once. STAR, a 2026 repair paper, calls continuous on-chip localization impractical and repairs without a fault map.
The question that remains is narrow. How many counted reads does it take to find k stuck cells?
The localizer holds a noise-free digital copy of the programmed weights, Wref, the copy an accelerator already stores. Probes are random +1/-1 vectors, scaled to unit norm. A forward read drives the input lines and senses the outputs. The residual is the analog result minus Wref times the probe. A transposed read reverses the direction. In this model the tile is otherwise ideal: no programming error and no drift, so the error matrix has exactly k nonzero cells.
The output index of a forward read names one coordinate. The other coordinate sits in the probe pattern. With several faults, the flagged rows and columns cross at ghost cells. Orthogonal matching pursuit (OMP) adds the cell whose pattern best matches the residual, and it keeps a cell only when both directions agree. It stops at a cap of 2k+4, so it is given an upper bound on k. Noise scale comes from 8 repeated forward reads on a fault-free tile. Those 8 reads are absent from every table and every ratio.
Drift is a separate fit. M4 models multiplicative drift as a 16-coefficient cosine field, order 4, one field per tile. The probes are 8 forward reads, 7 transposed reads, and one bias read. The ideal form needs the stored digital weights at every inference, one extra digital multiply per tile, and serves only as an upper reference. The deployable form folds the correction into a low-rank scaling of the array. Rank 1 adds no inference pass. The full form adds up to three.
Each claim was written ahead of time as a YAML file of clauses. A script graded the counted run PASS, KILL, or INCONCLUSIVE. The timestamps sit in the author's own development repository, not a third-party registry.
The bar is a mean cell-level F1 of at least 0.9. Below the bar, the table does not print a read count. At 1% read noise, on a tile of 256, with 240 fresh instances per cell, and for k of 1, 4, 16, and 64, the bidirectional decoder needs 4, 6, 8, and 12 reads. A full readout needs 256. The author's own Wei-Roth-style hybrid needs 26, 27, 51, and 51. The same decoder, forward only, needs 16, 12, 16, and 16. Tuned X-ABFT clears the bar only at k=16 and k=64, and only with 4096 and 2048 reads, more than a full readout.
| Method | 1% noise, k=1/4/16/64 | 2% noise |
| Bidirectional sparse decoder | 4 / 6 / 8 / 12 | 16 / 8 / 12 / 12 |
| Forward-only sparse decoder | 16 / 12 / 16 / 16 | 16 / 12 / 16 / 24 |
| Wei-Roth-style hybrid | 26 / 27 / 51 / 51 | 32 / 41 / 65 (F1 0.895) / below bar |
| Tuned X-ABFT | below bar / below bar / 4096 / 2048 | below F1 0.9 at all four k |
| Full readout | 256 | 256 |
For k of at least 4 at 1% noise, the bidirectional decoder uses 4.3 to 6.4 times fewer reads than the hybrid. Most of that gap is the decoder. Forward-only already uses 1.6 to 4.1 times fewer. The second direction removes another 1.3 to 4 times at 1% noise. At 2% the saving shrinks, and the pre-written 0.7 ratio does not hold. Two pre-written claims that it would hold the read ratio to 0.7 were KILL on 256-cell tiles at 2% noise, where the ratio was 0.75 to 1.00. At 4% noise and k=1, both directions cost 64 reads and forward-only costs 48, so the second direction is more expensive. At 4% and k of at least 4, both directions reach F1 0.93 to 0.95 in 32 reads, while both reimplemented priors stay under 0.9. That last comparison is report-level and has no registered clause.
Charging the 8 noise-calibration reads turns the 6, 8, and 12 reads at k=4, 16, and 64 into 14, 16, and 20. The factor against the hybrid falls from 4.3-6.4 times to 1.9-3.2 times. The registered clauses were not re-run with that charge.
On drift, ideal M4 still holds the digital weights at inference. On a BN-folded ResNet-9, CIFAR-10, under the strict budget of 16 matrix-vector multiplies: the gain over the best cheap digital baseline, B8, is 2.08 points at 1 hour (86.93 versus 84.85; programmed accuracy 86.83) and 13.27 points at 1 year (86.96 versus 73.70). On CIFAR-100 the 1-year gain is 10.75 points (48.60 versus 37.85). The 1-hour gain is 0.53, and the interval includes zero. The run actually used 17 multiplies, so the budget clause is NOTMET and the overall verdict is INCONCLUSIVE under that reading.
The deployable full form beats B8 by 0.6 to 3.7 points. From 1 day onward it trails a digital recalibration fit on 32 images by 1.0 to 4.9 points. The free rank-1 form fired its registered KILL: the lower end of the paired interval is below zero at every CIFAR-100 time.
One registered closed loop passed. It used the forward-only decoder, charged the calibration reads, and at 2% noise matched an oracle fault map to within 0.25 points of accuracy on ResNet-9. That is a failure to detect a difference, not an equivalence test. In the dense regime the map was mostly the full-readout fallback. An extension at 4% noise fired KILL: recall of newly visible faults was 85 to 89 percent, against a bar of 90.
A controller that can keep a stuck-cell map current with about a dozen probe reads has an input for a remap-and-repair loop. STAR treated continuous localization as impractical. This simulation, at 1% noise, puts the budget at 4 to 12 reads, against 256 for a full readout.
The reads saved come from the decoder. An array that cannot be read in reverse still lands at 12 to 24 forward-only reads at 1 to 2 percent noise, and those rows clear the F1 bar. The work is a simulation by an independent researcher. The ledger prints the failed claims beside the passes: the final counted runs of 21 criteria files are 4 PASS, 7 KILL, and 10 INCONCLUSIVE.
There is no silicon. Accuracy is computed in weight space. The digital twin and CrossSim, with an 8-bit DAC and a calibrated 8-bit ADC, disagree by up to 5.66 points, against a bar of 0.5. The clause is NOTMET. The gap falls mostly on B8, and a later check attributes it to converter quantization. The headline probe reads use neither an ADC nor a DAC.
The localization tile is otherwise ideal. The error matrix is exactly k-sparse, with no drift residual and no programming error, and the localizer was never run together with the drift fit. The decoder receives the cap 2k+4, and the probe design is chosen per (k, noise) cell on a calibration split. The bar is a mean F1 over 240 instances, clustered as 3 checkpoints by 4 layers by 20 fault draws. The paper states that the confidence intervals are therefore too tight. There is no per-chip miss rate. The hardware cost of a transposed read is unverified. Above about 0.3 percent fault density, a full readout is cheaper than probing. That density is an exploratory figure.
The X-ABFT comparison sits outside that method's design regime: at most two faults per block, and read noise that can be ignored. The registered runs include no positive control inside that regime. The Wei-Roth baseline is a hybrid built for this paper. The original work stops at output lines, and the cell-level stage is added here. Run on its own terms, the one-multiply line decoder has line F1 of 0, and the overall verdict is INCONCLUSIVE by design. The two methods also count cost in different units.
Pre-specification here is a commit time in the author's repository. The YAML holding some thresholds was committed after nine full runs, so the repository cannot show that those thresholds predate the data. The public one-commit release does not contain the commit history cited in the text. The proof of the sufficient condition has not been reviewed independently. At the registered minimum visible amplitude, the condition asks for more reads than a full readout, and it guarantees nothing there. A note at the end says Claude assisted with the code and the writing, and the author takes responsibility for the content.
B8, on each tile, picks the cheap digital correction with the smallest error, using the programmed weights as the answer key. That makes the baseline strong, and the reported gain conservative. The figure of 4 to 12 reads belongs to 1% noise. At 2% noise, which the paper marks as typical for this PCM model, the bidirectional decoder needs 8 to 16 reads, and the 0.7-ratio claims for the second direction are already dead. The drift correction that restores programmed accuracy does so by keeping the digital weights on the inference path. It measures the estimate. The correction that can stay inside the array is the weaker set of numbers above.