Repository navigation
Releases: ocminer/ProxiChorizo
Release list
ProxiChorizo 0.5.6
ProxiChorizo 0.5.6 makes the CUDA field arithmetic branch-free and is 3–7 % faster on every NVIDIA generation measured. Options and the pool protocol are unchanged; the OpenCL miner is the same as in 0.5.5.
Changes
- Branch-free carry handling. The field add, subtract and the 512→256-bit fold each had a small data-dependent branch (a carry that is set in about half of the lanes, a top word that is non-zero in 97 % of them). Profiling on an H100 showed these branches diverging in nearly every warp, with instruction fetch after the branch as the largest stall. The fix-ups now run unconditionally with the same instruction count. Measured: H100 SXM +7 %, RTX PRO 6000 Blackwell +3.4 %, RTX A6000 +3.5 %.
- Cached table in the 4-bit window loop. The 15 odd multiples are kept in the cached (Y+X, Y−X, 2dT, 2Z) form, saving one multiplication per point addition. +1.7 % on Hopper, where the 4-bit table is the default.
- Hopper platform row. H100 (sm_90) starts on
fe32_w4_lb2_cat 256 threads × 128 blocks per SM; the quick first-start tuning is no longer needed there. PLATFORMS.md documents the H100 measurements (Round 9), the pipe microbenchmark that shows why the card cannot be driven to its 700 W power limit by 256-bit integer work (Round 9b), the RTX A6000 round (8) and the rejected experiments (5-bit signed window, non-inlined field functions, other register caps and inversion batch sizes).
Measured performance
| GPU | 0.5.5 | 0.5.6 |
|---|---|---|
| H100 SXM 80 GB (sm_90) | 19.8 MH/s | 21.2 MH/s |
| RTX PRO 6000 Blackwell Server (sm_120) | 41.6 MH/s | 43.0 MH/s |
| RTX A6000 (sm_86) | 11.6 MH/s | 12.0 MH/s |
Ada and consumer Blackwell cards get the same change; rates on RTX 5090 / 5080 / 3070 / CMP 170HX are noted in PLATFORMS.md as they are measured.
Downloads
| Platform | Asset |
|---|---|
| Linux / HiveOS / MMPOS / SMOS, NVIDIA + AMD | proxichorizo-0.5.6.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 (NVIDIA) | proxichorizo-0.5.6-windows-x86_64.zip |
The Linux tarball contains proxichorizo (CUDA) and proxichorizo-cl (OpenCL), h-run.sh, mmpos-run.sh, smos-run.sh, USAGE.md and a checksum manifest; external .sha256 files and SHA256SUMS cover the archives. Docker: ocminersupr/proxichorizo:0.5.6 and :latest (mirror ghcr.io/ocminer/proxichorizo), NVIDIA only.
Requirements and validation
Same requirements as 0.5.5 (driver for CUDA 12.9 on Linux and Windows). Every build passed the embedded self-test vectors and a 128,000-value random field test (--fetest) on sm_86, sm_90 and sm_120 before release.
Upgrading: recommended for all NVIDIA cards (+3–7 %); replace the binary, no option changes. AMD / OpenCL users gain nothing and can stay on 0.5.5.
ProxiChorizo 0.5.5
ProxiChorizo 0.5.5 is a license release: the first version published under the ProxiChorizo License 1.0. Kernels, options and rates are those of 0.5.4.
License
- Mining stays free. Run the miner on any hardware and any pool, for yourself or as a paid operation, no permission needed.
- Copy, study, modify and share it as before, with the source and under the same license, notices intact.
- New: taking the code or a substantial part of it (field and point arithmetic, hash-to-curve, VRF attempt, kernel designs, autotuning, pool protocol) into another miner that is commercial (sold, dev fee, paid service) or closed-source needs written permission from suprnova.cc, whether as source, PTX, SPIR-V or binary. Requests: open an issue on GitHub.
- Versions up to and including 0.5.4 keep the MIT-with-restriction license they were released under.
See LICENSE, NOTICE and the README.
Changes
- Version string 0.5.5; license notices in
LICENSE,NOTICE, the README and the main source files. No functional change.
Downloads
| Platform | Asset |
|---|---|
| Linux / HiveOS / MMPOS / SMOS, NVIDIA + AMD | proxichorizo-0.5.5.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 (NVIDIA) | proxichorizo-0.5.5-windows-x86_64.zip |
The Linux tarball contains proxichorizo (CUDA) and proxichorizo-cl (OpenCL), h-run.sh, mmpos-run.sh, smos-run.sh, USAGE.md and a checksum manifest; external .sha256 files and SHA256SUMS cover the archives. Docker: ocminersupr/proxichorizo:0.5.5 and :latest (mirror ghcr.io/ocminer/proxichorizo), NVIDIA only.
Upgrading: optional; replace the binary if you want the version to show the license it ships under. No option changes.
ProxiChorizo 0.5.4
ProxiChorizo 0.5.4 brings the 0.5.3 kernel improvements to AMD (+3.8 % on an RX 7900 XTX) and makes every card get a kernel chosen on itself.
Changes
- AMD / OpenCL: the scalar-multiplication loop has one doubling and one addition site (as the CUDA kernel since 0.5.3) and two points share one inversion. RX 7900 XTX: 10.72 → 11.13 MH/s in
--bench. - First-start tuning: GPU generations this build has no measurements for (Ada RTX 40xx, Turing, RDNA2/RDNA4, unknown) are measured on the card at the first start (two candidate kernels at two launch shapes, ~15 s) and the winner is kept in
proxichorizo-autotune.cachenext to the miner, keyed by card and version. Measured generations (RTX 30xx/50xx, RTX PRO 6000, A100/CMP 170HX, RX 7900 XTX, MI50) start immediately as before. The start-up line names the kernel, the launch shape and the reason;--autotune,--variant,--blocks,--itersoverride as before. - NVIDIA kernels unchanged from 0.5.3.
Downloads
| Platform | Asset |
|---|---|
| Linux / HiveOS / MMPOS / SMOS, NVIDIA + AMD | proxichorizo-0.5.4.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 (NVIDIA) | proxichorizo-0.5.4-windows-x86_64.zip |
The Linux tarball contains proxichorizo (CUDA) and proxichorizo-cl (OpenCL), h-run.sh, mmpos-run.sh, smos-run.sh, USAGE.md and a checksum manifest; external .sha256 files and SHA256SUMS cover the archives. Docker: ocminersupr/proxichorizo:0.5.4 and :latest (mirror ghcr.io/ocminer/proxichorizo), NVIDIA only.
Upgrading: replace the binary; no option changes.
ProxiChorizo 0.5.3
ProxiChorizo 0.5.3 mines 4–17 % faster on NVIDIA than 0.5.2 by making the scalar-multiplication loop fit the GPU's instruction cache and sharing one field inversion between two points.
Changes
- Smaller hot loop: the wNAF scalar multiplication now has one doubling site (the T coordinate computed only when an addition follows) and one addition site (the digit's sign is an argument), and the table loop is not unrolled. The loop body halves, no register spills remain, and the "no instruction" stalls Nsight Compute showed on Blackwell drop by half.
- Two points per inversion (
PX_INV_BATCH 2): the mult kernel multiplies two points, parks them and inverts once (Montgomery's trick). A loss in 0.5.0 because of the parked points, a gain now that the loop fits the cache. - GA100 (A100, CMP 170HX) switches to the wNAF variant with large launches: the old "4-bit window is faster on GA100" was an instruction-cache effect.
Measured (--bench, realistic scalar, defaults):
| GPU | 0.5.2 | 0.5.3 |
|---|---|---|
| RTX PRO 6000 Blackwell | 36.7 MH/s | 41.5 |
| RTX 5080 | 18.3 | 21.5 |
| RTX 3070 | 7.06 | 7.37 |
| CMP 170HX | 5.99 | 6.91 |
Also kept in the source, off by default: a 10×26-bit limb representation with 64-bit column products (PX_FE26, 1.4× the raw multiply rate but slower overall because of its carry pass) and an L1 prefetch of the next wNAF table entry (PX_PREFETCH, no effect). The AMD/OpenCL miner is unchanged apart from the version string.
Downloads
| Platform | Asset |
|---|---|
| Linux / HiveOS / MMPOS / SMOS, NVIDIA + AMD | proxichorizo-0.5.3.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 (NVIDIA) | proxichorizo-0.5.3-windows-x86_64.zip |
The Linux tarball contains proxichorizo (CUDA) and proxichorizo-cl (OpenCL), h-run.sh, mmpos-run.sh, smos-run.sh, USAGE.md and a checksum manifest; external .sha256 files and SHA256SUMS cover the archives. Docker: ocminersupr/proxichorizo:0.5.3 and :latest (mirror ghcr.io/ocminer/proxichorizo), NVIDIA only.
Upgrading from 0.5.2: replace the binary; no option changes.
ProxiChorizo 0.5.2
ProxiChorizo 0.5.2 stops idling at pool round boundaries (about +8 % effective hashrate for every pool miner), mines 5–13 % faster on NVIDIA through larger launches, shows GPU temperature, fan and power, and accepts -d for device selection. It replaces 0.5.2, which was tagged minutes earlier without the poller fix.
Changes
- No more idling between rounds: a pool retires its job for a few milliseconds at every round boundary (about once per slot); the poller used to sleep 500 ms before asking again, so every GPU sat idle ~5–9 % of the time (
idle: no jobin the 30-second line). It now asks again at once. Measured on an RTX PRO 6000: 33.7 → 36.5 MH/s effective at the same in-kernel rate. CUDA and OpenCL. - Larger launches (CUDA): the compacted pipeline runs its passes over the whole launch, so a launch of 128 blocks per multiprocessor with one nonce per thread amortises the per-pass overhead better than 8 blocks per SM looping over 4 nonces. New default for Blackwell, Ada, Ampere GA10x and Turing: +13 % on an RTX PRO 6000, +10 % on an RTX 5080, +4.5 % on an RTX 3070. GA100 (A100, CMP 170HX) keeps its previous geometry.
--autotunealso tries 64 and 128 blocks per SM;--blocksstill overrides. A launch is ~150–170 ms. - Sensors: every 30-second GPU line ends with temperature, fan and power (
| 64C, fan 45%, 318 W), and the stats API carriestemp,fanandpowerper GPU plustemp/fan/powerarrays in the mmpOS line. NVIDIA: NVML loaded at run time (Linux and Windows, no new dependency; passive server cards report no fan). AMD on Linux: the kernel's hwmon files. Without either the fields arenull/ omitted. -d 0,1,2(also--devices) selects GPUs like in other miners;--gpusstill works. CUDA and OpenCL.- Build:
-ldlon the Linux link lines (dlopen for NVML).
No change to the OpenCL kernels or the AMD defaults.
Measured performance
| GPU | Miner / variant | 0.5.0 | 0.5.2 |
|---|---|---|---|
| RTX PRO 6000 Blackwell | CUDA fe32_wnaf_lb2_c, 24064×256×1 | 32.4 | 36.7 MH/s |
| RTX 5080 | CUDA fe32_wnaf_lb2_c, 10752×256×1 | 17.4 | 19.1 |
| RTX 3070 | CUDA fe32_wnaf_lb2_c, 5888×256×1 | 6.8 | 7.1 |
| CMP 170HX | CUDA fe32_w4_lb2_c 256×2 (unchanged) | 4.6 – 6.3 | same |
| RX 7900 XTX (ROCm 7.1) | OpenCL fe29_wnaf_c ×8 (unchanged) | ≈ 10.5 | same |
Downloads
| Platform | Asset |
|---|---|
| Linux / HiveOS / MMPOS / SMOS, NVIDIA + AMD | proxichorizo-0.5.2.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 (NVIDIA) | proxichorizo-0.5.2-windows-x86_64.zip |
The Linux tarball contains proxichorizo (CUDA) and proxichorizo-cl (OpenCL), h-run.sh, mmpos-run.sh, smos-run.sh, USAGE.md and a checksum manifest; external .sha256 files and SHA256SUMS cover the archives. Docker: ocminersupr/proxichorizo:0.5.2 and :latest (mirror ghcr.io/ocminer/proxichorizo), NVIDIA only.
Upgrading from 0.5.0: replace the binary; no option changes needed. Pool miners need nothing for the Proxima library upgrade at slot 29000 (see README).
ProxiChorizo 0.5.1
ProxiChorizo 0.5.1 mines 5–13 % faster on NVIDIA through larger launches, shows GPU temperature, fan and power, and accepts -d for device selection.
Changes
- Larger launches (CUDA): the compacted pipeline runs its passes over the whole launch, so a launch of 128 blocks per multiprocessor with one nonce per thread amortises the per-pass overhead better than 8 blocks per SM looping over 4 nonces. New default for Blackwell, Ada, Ampere GA10x and Turing: +13 % on an RTX PRO 6000, +10 % on an RTX 5080, +4.5 % on an RTX 3070. GA100 (A100, CMP 170HX) keeps its previous geometry.
--autotunealso tries 64 and 128 blocks per SM;--blocksstill overrides. A launch is ~150–170 ms. - Sensors: every 30-second GPU line ends with temperature, fan and power (
| 64C, fan 45%, 318 W), and the stats API carriestemp,fanandpowerper GPU plustemp/fan/powerarrays in the mmpOS line. NVIDIA: NVML loaded at run time (Linux and Windows, no new dependency; passive server cards report no fan). AMD on Linux: the kernel's hwmon files. Without either the fields arenull/ omitted. -d 0,1,2(also--devices) selects GPUs like in other miners;--gpusstill works. CUDA and OpenCL.- Build:
-ldlon the Linux link lines (dlopen for NVML).
No change to the OpenCL kernels or the AMD defaults.
Measured performance
| GPU | Miner / variant | 0.5.0 | 0.5.1 |
|---|---|---|---|
| RTX PRO 6000 Blackwell | CUDA fe32_wnaf_lb2_c, 24064×256×1 | 32.4 | 36.7 MH/s |
| RTX 5080 | CUDA fe32_wnaf_lb2_c, 10752×256×1 | 17.4 | 19.1 |
| RTX 3070 | CUDA fe32_wnaf_lb2_c, 5888×256×1 | 6.8 | 7.1 |
| CMP 170HX | CUDA fe32_w4_lb2_c 256×2 (unchanged) | 4.6 – 6.3 | same |
| RX 7900 XTX (ROCm 7.1) | OpenCL fe29_wnaf_c ×8 (unchanged) | ≈ 10.5 | same |
Downloads
| Platform | Asset |
|---|---|
| Linux / HiveOS / MMPOS / SMOS, NVIDIA + AMD | proxichorizo-0.5.1.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 (NVIDIA) | proxichorizo-0.5.1-windows-x86_64.zip |
The Linux tarball contains proxichorizo (CUDA) and proxichorizo-cl (OpenCL), h-run.sh, mmpos-run.sh, smos-run.sh, USAGE.md and a checksum manifest; external .sha256 files and SHA256SUMS cover the archives. Docker: ocminersupr/proxichorizo:0.5.1 and :latest (mirror ghcr.io/ocminer/proxichorizo), NVIDIA only.
Upgrading from 0.5.0: replace the binary; no option changes needed. Pool miners need nothing for the Proxima library upgrade at slot 29000 (see README).
ProxiChorizo 0.5.0
ProxiChorizo 0.5.0 adds AMD GPUs. The OpenCL miner proxichorizo-cl ships in the Linux tarball next to the CUDA binary, with a new 9×29-bit field layout that doubled the AMD rate measured in 0.4.0's development builds.
Changes
- AMD / OpenCL miner (
opencl/, binaryproxichorizo-cl): the same algorithm in OpenCL C 1.2, compiled per GPU and variant by the installed driver at start-up (about 45 s per variant on ROCm) and validated against the embedded VRF test vectors before it is allowed to mine. Variantsfe29_*(9×29-bit limbs, the AMD default),fe32_*,fe51_*;--autotune,--list-devices,--groups,--kernel-file,--build-opts. Same pool/solo protocol, options and statistics API as the CUDA miner. - 9×29-bit field layout: every partial product of the schoolbook multiply is a single
v_mad_u64_u32into a 64-bit column, the 17 columns are folded once (2^261 ≡ 1216 mod p), subtraction adds 1024p limb-wise so lazily reduced operands never wrap. 2× on RDNA3, RDNA3 small and Vega 20. - The HiveOS, MMPOS and SMOS launchers start
proxichorizo-clautomatically when no NVIDIA driver is present (or whenMINER=clis set), so one package serves both vendors. - CPU reference build
opencl/hostref/: the unmodified kernel source compiled as C;make checkruns the field test and all vectors for the three layouts with limb-invariant assertions. Test and init kernels keep the per-lane code path (get_global_idmixed in). - CUDA miner unchanged apart from the version string.
Measured performance
| GPU | Miner / variant | MH/s |
|---|---|---|
| RTX 5080 | CUDA fe32_wnaf_lb2_c 256×4 | ≈ 17 |
| RTX 3070 | CUDA fe32_wnaf_lb2_c 256×4 | ≈ 6.9 |
| CMP 170HX | CUDA fe32_w4_lb2_c 256×2 | 4.6 – 6.3 |
| RX 7900 XTX (ROCm 7.1) | OpenCL fe29_wnaf_c ×8 | ≈ 10.5 (10.8 bench) |
| MI50 (ROCm 6.4) | OpenCL fe29_wnaf_c ×8 | ≈ 4.5 |
| RX 7600 XT (ROCm 6.4) | OpenCL fe29_wnaf_c ×8 | ≈ 3.6 |
Downloads
| Platform | Asset |
|---|---|
| Linux / HiveOS / MMPOS / SMOS, NVIDIA + AMD | proxichorizo-0.5.0.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 (NVIDIA) | proxichorizo-0.5.0-windows-x86_64.zip |
The Linux tarball contains proxichorizo (CUDA) and proxichorizo-cl (OpenCL), h-run.sh, mmpos-run.sh, smos-run.sh, USAGE.md and a checksum manifest; external .sha256 files and SHA256SUMS cover the archives. Docker: ocminersupr/proxichorizo:0.5.0 and :latest (mirror ghcr.io/ocminer/proxichorizo), NVIDIA only.
Requirements and validation
- NVIDIA: driver 550 or newer (CUDA 12.x). AMD: an OpenCL ICD with a working compiler for your card — ROCm 6.4 and 7.1 are tested (gfx906, gfx1100, gfx1102); the start-up validation refuses any variant your driver miscompiles and falls back to
fe32_wnaf_c. Linux packages need glibc 2.31 or newer; Windows 10/11 x64 (CUDA only — no OpenCL build for Windows yet). - Every build passes the self-test against the Proxima node's VRF test vectors, the randomized field-arithmetic test, the cross-variant hit check (
--verify) and, for OpenCL, the CPU reference harness. - Tested mining live on the Suprnova pool from NVIDIA and AMD rigs.
ProxiChorizo 0.4.0
ProxiChorizo 0.4.0 is the first packaged release of the Suprnova CUDA nonce seeker for Proxima (PROX): pool mining on proxi.suprnova.cc and solo mining with proxi node mine, on Linux, HiveOS, MMPOS, SMOS, Windows and Docker.
Changes
- One binary for Turing to Blackwell (sm_75, 80, 86, 89, 120 + PTX), kernel variant chosen per GPU generation or by
--autotune. - Field arithmetic in 8×32-bit limbs with PTX carry chains and a dedicated squaring, compacted hash-to-curve pipeline, width-5 wNAF scalar multiplication, T-skipping doublings.
- Pool support: per-user tokens and keys, vardiff shares, pool-assigned nonce ranges per worker and GPU (
nonce_base), long-poll job updates (new job within one launch of a new tip). - Solo support: the external-nonce-seeker protocol of
proxi node mine(verified live). --api-bind: JSON statistics (per-GPU hashrate with PCI bus numbers, shares, uptime) and the mmpOS stats line.- Windows build (MSVC) through a small POSIX/Winsock socket layer.
- Launchers for HiveOS (
h-run.sh), MMPOS (mmpos-run.sh, plus the mmp-* external-miner trio) and SMOS (smos-run.sh), Docker image with an environment-variable front end.
Measured performance
Platform defaults, one process per GPU, pool mining; rates vary with clocks and power limits.
| GPU | Variant | MH/s |
|---|---|---|
| RTX 5080 | fe32_wnaf_lb2_c 256×4 | ≈ 17 |
| RTX 3070 | fe32_wnaf_lb2_c 256×4 | ≈ 6.9 |
| CMP 170HX | fe32_w4_lb2_c 256×2 | 4.6 – 6.3 |
The reference CPU seeker does about 37 kH/s per core. The work is pure integer ALU; PCIe link width and memory bandwidth do not matter.
Downloads
| Platform | Asset |
|---|---|
| Linux / MMPOS / SMOS | proxichorizo-0.4.0.tar.gz |
| HiveOS custom miner | proxichorizo-hiveos.tar.gz |
| Native Windows x64 | proxichorizo-0.4.0-windows-x86_64.zip |
The Linux tarball includes h-run.sh, mmpos-run.sh, smos-run.sh and USAGE.md. The separate HiveOS archive uses the directory name required by its custom-miner installer. Every archive includes a file checksum manifest; external .sha256 files and SHA256SUMS verify the downloads.
Docker: ocminersupr/proxichorizo:0.4.0 and :latest (mirror ghcr.io/ocminer/proxichorizo).
Requirements and validation
- NVIDIA driver 550 or newer (CUDA 12.x); Linux packages need glibc 2.31 or newer (built on Ubuntu 20.04, so they run on HiveOS and MMPOS images); Windows 10/11 x64.
- Every build passes the self-test against the Proxima node's VRF test vectors, a randomized field-arithmetic test, and the cross-variant hit check (
--verify). - Linux packages are tested mining live on the Suprnova pool and solo against
proxi node mine. The hosted Windows runner has no GPU: Windows is validated by compiling, packaging and starting the executable.