Skip to content

v1.3.2-DIMEBAG

Choose a tag to compare

@github-actions github-actions released this 10 Nov 09:52

Release v1.3.2-DIMEBAG of midwimble.

NVIDIA GPUs that mine, and a faster CPU miner. No consensus change: this is
v1.3-DIMEBAG's chain, with Midstate Walk from block 37,300 and midstate's
from 371,500. Nodes that only follow the chain need not upgrade. Anyone
mining should, and anyone with an NVIDIA GPU must, to mine on it at all.

NVIDIA GPUs mine the Walk

v1.3.1-DIMEBAG's CUDA miner computed every walk wrong, on every NVIDIA GPU.
Its self-test caught it, so no GPU mined bad work: each one was refused with
"got a known answer wrong", and the node mined on its CPU alone.

The GPU code ships as PTX, compiled ahead of time with clang. Clang 18
compiled the walk's 64-bit rotate to two 64-bit shifts without first reducing
the amount mod 64, and PTX turns a shift of 64 or more into zero, so the
rotate came out 0 almost every time. This release carries midstate's fixed
PTX, which builds the rotate from 32-bit shifts. Midstate's CI now runs the
compiled PTX itself on a CPU, instruction by instruction, against the known
answers. The broken PTX gives exactly the wrong hash the first GPU reported,
and the fixed one gives every known answer.

On a Quadro M6000, the fixed miner does 819 attempts/s beside the CPU.

A faster CPU miner

A Walk step spends most of its time waiting for its read from the 256 KiB
pad. A CPU thread can step walks of other nonces in turn and fill those
waits, as long as their pads still fit the core's caches. Whether they do
depends on the CPU, so the miner measures it:

  • Before its first Walk job, the CPU miner times 1 to 4 walks per thread on
    all its threads (about 6 s, once per run). It checks the known answers that
    way, mines with the fastest, and logs the rates:
    Midstate Walk: attempts with 1 to 4 walks per thread on 12 threads: 1: 1630/s, 2: 1793/s, 3: 1645/s, 4: 1355/s; mining with 2
  • MINER_WALKS_PER_THREAD=1 to 4 sets it instead.
  • With one walk per thread, the step itself is written faster: about 5% on
    a Raspberry Pi 5 and on x86.
CPU Walks per thread chosen Against v1.3.1-DIMEBAG
Raspberry Pi 5, 4 threads 1 about +3.5% (1,490 to 1,542 attempts/s)
Xeon E5-1650 v3, 12 threads (256 KiB of L2 a core) 2 about +10% over one walk per thread
A 2-core cloud Xeon (2 MiB of L2 a core) 3 +89% (about 600 to 1,132 attempts/s)

The more cache a core has, the more it gains. Zen 4 and Zen 5 cores have
1 MiB of L2, and should gain too; none has been measured here yet.

Each hash is exactly its nonce's walk. Every way of writing the step, at 1 to
4 walks per thread, is tested against the known answers in every slot, and
against the reference step over 6,000 random programs.

The node's miner, pool-mine, merge-mine and the CUDA miner's CPU threads
all mine this way.

Upgrading

  • Miners with an NVIDIA GPU: upgrade to mine on it. midwimble gpu-info
    checks each card against the known answers.
  • Other miners: upgrade for the speed. Run --backend cpu or
    MINER_DISABLE_GPU=1 if the GPU also drives your display and mining makes
    the desktop stutter.
  • Everyone else: optional. v1.3-DIMEBAG and v1.3.1-DIMEBAG follow the same
    chain.

Built --release --features webrtc,gpu from commit 05f94ce25c407375537a18b22fd3b3628db45d4d. Each archive holds one midwimble binary — node, wallet, pool, merged miner and anchoring — with LICENSE and README.

Download Platform
midwimble-v1.3.2-DIMEBAG-x86_64-unknown-linux-gnu.tar.gz Linux x86-64
midwimble-v1.3.2-DIMEBAG-aarch64-unknown-linux-gnu.tar.gz Linux ARM64 — Raspberry Pi 3 / 4 / 5 on a 64-bit OS
midwimble-v1.3.2-DIMEBAG-x86_64-apple-darwin.tar.gz macOS (Intel)
midwimble-v1.3.2-DIMEBAG-aarch64-apple-darwin.tar.gz macOS (Apple Silicon)
midwimble-v1.3.2-DIMEBAG-x86_64-pc-windows-msvc.zip Windows x64
midwimble-v1.3.2-DIMEBAG-aarch64-pc-windows-msvc.zip Windows on ARM

Verify with sha256sum -c SHA256SUMS.txt (checksums attached).