Move the repository to the igneum-network organisation and let the chain scene finish its story on phones
The chain animation scales its proving tempo to the canvas width, so a block is mined, proven and locked before it leaves a phone screen. Opening frame seeds proven and locked blocks on narrow canvases too. Repository links point at github.com/igneum-network/igneum. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
a4b4c51be4
commit
afacca3810
6 changed files with 41 additions and 15 deletions
|
|
@ -684,7 +684,7 @@ Evidence: design doc "The first six months".
|
|||
## 8. Launch and community
|
||||
|
||||
### X1. "Reproducible from the repository" and the repository is private
|
||||
"Your site links to github.com/[second-owner-login]/igneum. It 404s. 'Every number above is measured, published, and reproducible from the repository' is false today."
|
||||
"Your site links to github.com/igneum-network/igneum. It 404s. 'Every number above is measured, published, and reproducible from the repository' is false today."
|
||||
|
||||
Status: Conceded, fix now.
|
||||
|
||||
|
|
|
|||
|
|
@ -37,11 +37,11 @@ footer{border-top:1px solid var(--line);padding-block:24px 48px;font-size:13px;c
|
|||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
<header><a class="brand" href="/"><svg viewBox="0 0 100 100" width="26" height="26" aria-hidden="true"><polygon points="50,4 74,34 67,58 80,54 61,96 39,96 20,54 33,58 26,34" fill="#F2541B"></polygon><polygon points="50,42 59,58 50,82 41,58" fill="#0C0C0E"></polygon></svg><b>IGNEUM</b></a><nav><a href="/">Home</a><a href="/litepaper">Litepaper</a><a href="/bench">Engineering log</a><a href="/ledger">FUD ledger</a><a href="https://github.com/[second-owner-login]/igneum" rel="noopener">GitHub</a></nav></header>
|
||||
<header><a class="brand" href="/"><svg viewBox="0 0 100 100" width="26" height="26" aria-hidden="true"><polygon points="50,4 74,34 67,58 80,54 61,96 39,96 20,54 33,58 26,34" fill="#F2541B"></polygon><polygon points="50,42 59,58 50,82 41,58" fill="#0C0C0E"></polygon></svg><b>IGNEUM</b></a><nav><a href="/">Home</a><a href="/litepaper">Litepaper</a><a href="/bench">Engineering log</a><a href="/ledger">FUD ledger</a><a href="https://github.com/igneum-network/igneum" rel="noopener">GitHub</a></nav></header>
|
||||
<h1>Engineering log</h1>
|
||||
<p class="note">Every measurement the project has made, newest at the bottom, written by the people and agents who ran it, with the commands and hardware. Prototype numbers are not mining numbers and say so.</p>
|
||||
<div class="layout">
|
||||
<nav class="toc" aria-label="Contents"><ol><li><a href="#2026-10-03-proto-metal-igneum-bench-first-run">2026-10-03 proto-metal / igneum-bench, first run</a></li><li><a href="#2026-10-03-proto-cuda-program-pack-export-mac-side-only-rtx-5090-run-pending">2026-10-03 proto-cuda / program pack export (Mac side only; RTX 5090 run pending)</a></li><li><a href="#2026-10-03-sim-finality-sim-py-sustained-mining-finality-vote-weight-model-not-hardware">2026-10-03 sim/finality_sim.py, sustained-mining finality vote weight (model, not hardware)</a></li><li><a href="#2026-10-03-proto-metal-hardening-tests-correctness-and-soundness-of-the-lottery-hash-metal-only">2026-10-03 proto-metal hardening tests (correctness and soundness of the lottery hash, Metal only)</a></li><li><a href="#3-october-2026-rtx-5090-first-run-[user]-s-pc-windows-cuda-12-8-runtime-driver-13-4-visual-studio-2026-with-the-14-30-toolset-selected-via-vcvarsall-vcvars-ver-14-30">3 October 2026, RTX 5090 first run (the project lead's PC, Windows, CUDA 12.8 runtime, driver 13.4, Visual Studio 2026 with the 14.30 toolset selected via vcvarsall -vcvars_ver=14.30)</a></li><li><a href="#2026-10-03-sim-finality-v2-py-finality-rule-v2-with-latency-partitions-and-eclipses-model-not-hardware">2026-10-03 sim/finality_v2.py, finality rule V2 with latency, partitions and eclipses (model, not hardware)</a></li><li><a href="#2026-10-03-proto-metal-memory-hard-dataset-cache-8-dependent-reads-metal-only-cuda-pack-emulated">2026-10-03 proto-metal memory-hard dataset (cache + 8 dependent reads), Metal only; CUDA pack emulated</a></li><li><a href="#2026-10-03-rusty-kaspa-base-build-and-3-node-devnet-on-the-mac-consensus-engineer-pre-fork-proof">2026-10-03 rusty-kaspa base build and 3-node devnet on the Mac (consensus-engineer, pre-fork proof)</a></li><li><a href="#3-october-2026-rtx-5090-memory-hard-dataset-pack-igneum-genesis-mh">3 October 2026, RTX 5090, memory-hard dataset (pack igneum-genesis-mh)</a></li></ol></nav>
|
||||
<nav class="toc" aria-label="Contents"><ol><li><a href="#2026-10-03-proto-metal-igneum-bench-first-run">2026-10-03 proto-metal / igneum-bench, first run</a></li><li><a href="#2026-10-03-proto-cuda-program-pack-export-mac-side-only-rtx-5090-run-pending">2026-10-03 proto-cuda / program pack export (Mac side only; RTX 5090 run pending)</a></li><li><a href="#2026-10-03-sim-finality-sim-py-sustained-mining-finality-vote-weight-model-not-hardware">2026-10-03 sim/finality_sim.py, sustained-mining finality vote weight (model, not hardware)</a></li><li><a href="#2026-10-03-proto-metal-hardening-tests-correctness-and-soundness-of-the-lottery-hash-metal-only">2026-10-03 proto-metal hardening tests (correctness and soundness of the lottery hash, Metal only)</a></li><li><a href="#3-october-2026-rtx-5090-first-run-[user]-s-pc-windows-cuda-12-8-runtime-driver-13-4-visual-studio-2026-with-the-14-30-toolset-selected-via-vcvarsall-vcvars-ver-14-30">3 October 2026, RTX 5090 first run (the project lead's PC, Windows, CUDA 12.8 runtime, driver 13.4, Visual Studio 2026 with the 14.30 toolset selected via vcvarsall -vcvars_ver=14.30)</a></li><li><a href="#2026-10-03-sim-finality-v2-py-finality-rule-v2-with-latency-partitions-and-eclipses-model-not-hardware">2026-10-03 sim/finality_v2.py, finality rule V2 with latency, partitions and eclipses (model, not hardware)</a></li><li><a href="#2026-10-03-proto-metal-memory-hard-dataset-cache-8-dependent-reads-metal-only-cuda-pack-emulated">2026-10-03 proto-metal memory-hard dataset (cache + 8 dependent reads), Metal only; CUDA pack emulated</a></li><li><a href="#2026-10-03-rusty-kaspa-base-build-and-3-node-devnet-on-the-mac-consensus-engineer-pre-fork-proof">2026-10-03 rusty-kaspa base build and 3-node devnet on the Mac (consensus-engineer, pre-fork proof)</a></li><li><a href="#3-october-2026-rtx-5090-memory-hard-dataset-pack-igneum-genesis-mh">3 October 2026, RTX 5090, memory-hard dataset (pack igneum-genesis-mh)</a></li><li><a href="#2026-10-03-proto-vdf-wesolowski-vdf-between-the-certified-checkpoint-and-the-program-seed-epoch-10-min-era-1-h">2026-10-03 proto-vdf, Wesolowski VDF between the certified checkpoint and the program seed (epoch 10 min, era 1 h)</a></li><li><a href="#2026-10-03-igneum-pow-rust-crate-bit-exact-with-proto-metal-consensus-engineer">2026-10-03 igneum-pow: Rust crate bit-exact with proto-metal (consensus-engineer)</a></li><li><a href="#3-october-2026-proto-opencl-opencl-path-built-and-proven-without-amd-silicon-apple-opencl-1-2-pocl-cpu-emulator">3 October 2026, proto-opencl: OpenCL path built and proven without AMD silicon (Apple OpenCL 1.2, pocl, CPU emulator)</a></li><li><a href="#3-october-2026-amd-gfx1036-ryzen-7-9800x3d-integrated-rdna-2-graphics-1-compute-unit-amd-opencl-2-1-driver-3652-0">3 October 2026, AMD gfx1036 (Ryzen 7 9800X3D integrated RDNA 2 graphics, 1 compute unit), AMD OpenCL 2.1 driver 3652.0</a></li><li><a href="#3-october-2026-rtx-5090-through-nvidia-opencl-fourth-compiler-path-on-the-same-card">3 October 2026, RTX 5090 through NVIDIA OpenCL (fourth compiler path on the same card)</a></li></ol></nav>
|
||||
<article><h1 id="igneum-bench-log">Igneum bench log</h1>
|
||||
<p>Append-only. Every number here was measured on the machine named, on the date given.</p>
|
||||
<h2 id="2026-10-03-proto-metal-igneum-bench-first-run">2026-10-03 proto-metal / igneum-bench, first run</h2>
|
||||
|
|
@ -73,7 +73,21 @@ footer{border-top:1px solid var(--line);padding-block:24px 48px;font-size:13px;c
|
|||
<p>Machine: Apple M5 Max (18 CPU cores), 64 GB, macOS 26.6.2. Toolchain: Homebrew rust 1.69.0 was too old (repo needs 1.91.0), so rustup 1.29.1 was installed non-interactively and gives rustc 1.99.0 and cargo 1.99.0; protobuf 36.2 added via <code>brew install protobuf</code> (protoc was missing); Apple clang 14.0.3 already present. Nothing else was needed. Source: <code>vendor/rusty-kaspa</code> at commit <code>01b532e8b553523216471682649693af92f0fd16</code> (v2.1.0, 2026-09-22). <code>cargo build --release --bin kaspad</code>: 2 min 36 s cold, binary 35,405,104 bytes (34 MB), 131 compiler warnings, zero errors. Devnet: three <code>kaspad --devnet --nodnsseed --disable-upnp --enable-unsynced-mining --yes --loglevel=info</code> nodes, separate <code>--appdir</code>, P2P 16611/16621/16631, gRPC 16610/16620/16630, nodes 2 and 3 <code>--connect</code> to node 1 (node 3 to node 2 never came up because both started at once, so the topology was a star through node 1). Network params: 10 BPS (100 ms blocks), GHOSTDAG k 124, merge depth 36,000 blocks, finality depth 432,000, pruning depth 1,080,000, DAA window 661 samples x 40 blocks, genesis bits 0x1e21bc1c (about 248,663 hashes per block). Miner: kaspad ships none, so a 150-line CPU miner on <code>kaspa-pow::State</code> (real kHeavyHash, 16 threads, 300 ms template refresh) submitted to node 1 only: 27.2 MH/s sustained, 5,718 blocks in 180 s, 0 rejected. Blocks per second over the 180 s run: 31.76 on all three nodes (1,691 to 7,409 blocks each). Two phases: 56 to 62 blocks/s while difficulty sat at genesis (first 6,000 blocks, min window 150 samples), then the DAA raised difficulty to 1.12 M at block 6,018 and the rate fell to 14 to 15 blocks/s, still converging toward the 10 BPS target when the run ended. Propagation: block counts, DAA scores and sink hash were identical on all three nodes at 18 of 19 ten-second samples; the one miss was node 2 trailing by a single block for one sample. Tips stayed at 1 because a single serial miner never produced parallel blocks, so GHOSTDAG k was not exercised; a second miner is the next step for that. Earlier 30 s warm-up run: 1,690 blocks, 56.3 blocks/s on all three nodes, 28.1 MH/s. Fork points mapped with line numbers in <code>docs/fork-map.md</code> (hash, coinbase, DAA, header, depth constants, BPS and k). All nodes stopped at the end. Miner source kept outside the repo (scratchpad); re-create from <code>testing/integration/src/common/utils.rs:271</code> if needed.</p>
|
||||
<h2 id="3-october-2026-rtx-5090-memory-hard-dataset-pack-igneum-genesis-mh">3 October 2026, RTX 5090, memory-hard dataset (pack igneum-genesis-mh)</h2>
|
||||
<div class="tbl"><table><thead><tr><th>Check</th><th>Result</th></tr></thead><tbody><tr><td>256 MiB cache, GPU vs host, all 67,108,864 words</td><td>PASS, FNV-1a 48c4f5bf24166b2e matches the Mac</td></tr><tr><td>Cache fill</td><td>0.67 ms GPU, 223 ms one host thread</td></tr><tr><td>Dataset build from the cache, 1 GiB</td><td>13.4 ms, 1,253 M items/s</td></tr><tr><td>Vectors, 3 warps, standalone and in batch</td><td>96/96 PASS</td></tr><tr><td>Hash rate at 1 GiB</td><td>228.95 Mhash/s, 95.2 GB/s useful, 23.8 G random loads/s</td></tr></tbody></table></div>
|
||||
<p>Reading: the memory-hard construction is now bit-exact across Apple Metal, NVIDIA CUDA and the CPU reference, cache and dataset included. Hash rate is unchanged from the closed-form dataset on both vendors, as expected, since the hash kernel only loads; what changed is that computing items on the fly is now slower than loading them (4.8x slower measured on Apple, not yet measured on NVIDIA). Still unmeasured: the inline shortcut ratio on NVIDIA, and AMD on any dataset.</p></article>
|
||||
<p>Reading: the memory-hard construction is now bit-exact across Apple Metal, NVIDIA CUDA and the CPU reference, cache and dataset included. Hash rate is unchanged from the closed-form dataset on both vendors, as expected, since the hash kernel only loads; what changed is that computing items on the fly is now slower than loading them (4.8x slower measured on Apple, not yet measured on NVIDIA). Still unmeasured: the inline shortcut ratio on NVIDIA, and AMD on any dataset.</p>
|
||||
<h2 id="2026-10-03-proto-vdf-wesolowski-vdf-between-the-certified-checkpoint-and-the-program-seed-epoch-10-min-era-1-h">2026-10-03 proto-vdf, Wesolowski VDF between the certified checkpoint and the program seed (epoch 10 min, era 1 h)</h2>
|
||||
<p>Machine: Apple M5 Max (18 logical cores), rustc 1.69.0, GMP 6.3.0 via rug 1.19. Source <code>proto-vdf/</code>, details in <code>proto-vdf/README.md</code>. Single core sequential squaring unless stated. Rates: class group 1024-bit prime discriminant (production choice, chiavdf construction, NUDUPL/NUCOMP ported from vendor/chiavdf) 163,000 sq/s; class group 2048-bit 83,500 sq/s; RSA-2048 trusted-setup stand-in (public trapdoor, timing only) 1,257,000 sq/s. T for 10 min / 60 min on this core: class 1024: 98.0 M / 588 M; class 2048: 50.1 M / 301 M; RSA-2048: 754 M / 4.53 G. Full 10-min runs: RSA T=756,516,411 eval 607.1 s (1,246,000 sq/s), prove 9.0 s on 12 threads (71.2 s on 1), verify 0.88 ms, proof 512 bytes. Class 1024 T=97,126,043 eval 585.4 s (165,900 sq/s, the RSA run sharing the chip ended midway), prove 9.1 s on 12 threads (56.8 s on 1), verify 4.47 ms, proof 516 bytes. Prover costs 12 to 13 percent of eval single-threaded (12-bit digits, at most 65,536 checkpoints, 17 MB) and parallelises over residue classes; verify is two 256-bit exponentiations, 4.5 ms class 1024 (12.6 ms including deriving D from the checkpoint hash), 1.4 ms RSA. Seed pipeline: epoch_seed(checkpoint) -> (seed, proof) and verify_epoch_seed; the same checkpoint hash gave the same seed and identical proof bytes in two separate processes at T=1,000,000; wrong checkpoint, flipped seed bit and T+1 all rejected. Attacker speed: delay must only exceed the 2 s publish-or-lose window; margin is 300x at the epoch and 1,800x at the era, so a 2x (or 10x, or 100x) faster evaluator leaves grinding impossible. Requirement: the checkpoint hash must commit to full block hashes incl. nonce. Grinding model (3,600 blocks/epoch, advantage uniform 0 to 15%, keep top quartile, one block burned per withheld candidate), gain per epoch in blocks, no delay vs with delay: s=0.1 +0.40 vs 0; s=0.2 +1.66 vs 0; s=0.3 +3.62 (+0.32%, 13.5:1 on burned blocks) vs 0; s=0.4 +6.06 vs 0. Monte Carlo over 2,000,000 epochs agrees to 0.03 blocks. Correctness: NUDUPL, NUCOMP and the Lehmer partial xgcd agree with Cohen 5.4.7 / plain duplication / plain-division xgcd on 15,000 random cases; block prover equals the naive O(T) prover at T = 37, 5,000 and 100,000 in both groups; 216 associativity triples; 3 tamper cases rejected per size. Recommend: class group 1024-bit D from the checkpoint hash, epoch T = 600 x r_ref and era T = 3,600 x r_ref with r_ref the fastest honest single-core rate measured on the devnet (98 M and 588 M on this Mac), fixed at genesis, 20 min lead time for the epoch seed and 2 h for the era draw, 256-bit Fiat-Shamir prime. Open: external review of classgroup.rs against chiavdf, reference core choice, fallback rule for a node without the seed at epoch start, carry D in the proof.</p>
|
||||
<h2 id="2026-10-03-igneum-pow-rust-crate-bit-exact-with-proto-metal-consensus-engineer">2026-10-03 igneum-pow: Rust crate bit-exact with proto-metal (consensus-engineer)</h2>
|
||||
<p>Machine: Apple M5 Max, one performance core, rustc 1.99.0 (rustup), release build with LTO. Crate at <code>igneum-pow/</code> (seed, generator, memhard, verify, emit; CLI <code>bench</code>, <code>export</code>, <code>hash</code>), standard library only, serde_json as a dev-dependency for the pack tests. Agreement with the Swift through <code>proto-cuda/packs/</code>: program.json instruction by instruction for igneum-genesis, igneum-genesis-mh and igneum-hourly (3 x 64 match); mixer rot/mul/rc match; cache head, last line and FNV-1a 64 <code>48c4f5bf24166b2e</code> match; dataset head, <code>[MASK]</code> and 64 sampled words match in all three packs; hash vectors 96/96 for igneum-genesis-mh (memory-hard) and 96/96 each for the two closed-form packs. 23 tests, all pass. Emitted sources: kernel.cu, program.metal, kernel.cl and program.h byte-identical for all three packs, memhard.h and memhard.metal byte-identical for igneum-genesis-mh; <code>igneum-pow export</code> then <code>diff -r</code> against the packs differs only in the provenance string of vectors.json/vectors.h. Found: <code>proto-cuda/packs/igneum-genesis-mh/program.json</code> is not valid JSON (main.swift line 1291 writes <code>jhex(cacheLineMask)</code> inside the <code>"item"</code> string). The Rust emitter writes the mask bare and the test normalises that line; fix pending in the Swift. Cache fill, 256 MiB on one core: 175 to 181 ms in Rust (5 runs) against 184.5 to 190.6 ms Swift and 161.5 ms C++ host reference. CPU verify per 32-lane warp, avg of 20, 1 GiB dataset: igneum-genesis 0.441 ms (Swift 0.649), /epoch1 0.411 (0.631), /epoch2 0.488 (0.701), igneum-second-seed 0.482 (0.801), igneum-second-seed/epoch1 at 144 loads and 4,608 items 0.579 (1.205). Cold single warps 0.41 to 0.87 ms (Swift 1.16 to 2.11). Closed form 0.002 ms (Swift 0.017). Reading: Rust is 1.4x to 2.1x faster than the Swift verifier per warp with the same algorithm (register-major lanes, 32-lane interleaved item derivation); 10 ms gate margin about 17x steady, 11x on the worst cold warp. Cache fill is within 5 percent of the Swift and 10 percent slower than clang C++. API for the fork: <code>Epoch::memory_hard(seed, day)</code> once per epoch (fills the cache), then <code>epoch.hash(nonce)</code>, <code>epoch.hash_warp(base)</code>, <code>epoch.verify_block(nonce, target)</code>; <code>emit::export_pack(&epoch, day, source)</code> for miner programs. <code>seed::seed_words_from_bytes</code> is the boundary for the VDF output. Not done: no GPU run from Rust; the 256-bit target mapping stays in the fork; the seed is still a string.</p>
|
||||
<h2 id="3-october-2026-proto-opencl-opencl-path-built-and-proven-without-amd-silicon-apple-opencl-1-2-pocl-cpu-emulator">3 October 2026, proto-opencl: OpenCL path built and proven without AMD silicon (Apple OpenCL 1.2, pocl, CPU emulator)</h2>
|
||||
<p>Machine: the same Apple M5 Max. New: <code>proto-opencl/host.c</code> (C99, OpenCL 1.2 API), <code>kernel.cl</code> in every pack from <code>--export-pack</code> (same emitter, OpenCL C dialect; memory-hard core emitted in three dialects), <code>WAVEFRONT.md</code>, CPU emulator with a 32- or 64-wide sub-group. The AMD rig has not arrived; no AMD compiler or device has touched this code. Exchange rule: <code>sub_group_shuffle_xor</code> only when the device lists <code>cl_khr_subgroup_shuffle</code>, the work-group is exactly 32 and the queried sub-group size for a 32-item work-group is exactly 32; otherwise a <code>__local</code> memory exchange with one barrier per exchange (two alternating buffers). Wave64 hardware (GCN, CDNA, RDNA in wave64) therefore takes the local-memory path and the hash never depends on the wave width. Apple OpenCL 1.2 runtime, Apple M5 Max (40 CUs, OpenCL C 1.2, no sub-group extension, local-memory path): cache check PASS (all 2^26 words, FNV-1a 64 48c4f5bf24166b2e = Mac), dataset self-test PASS, 96/96 vectors standalone and in batch for igneum-genesis-mh; also 96/96 at <code>--exchange local --group-warps 2</code> and <code>--group-warps 4</code>; closed-form packs igneum-genesis 96/96 and igneum-hourly 96/96. Apple OpenCL hash rate (wall time; Apple's event timestamps are unusable), pack igneum-genesis-mh, 1 GiB, 5 x 2^24: 45.03 Mhash/s, 18.73 GB/s useful (repeat run 44.58). igneum-genesis 45.17, igneum-hourly 36.33 (128 loads). Metal on the same chip: 45.2. This is Apple's deprecated OpenCL on the M5 Max, NOT an AMD number. Apple OpenCL sweep (3 batches): 4 MiB 573.7 Mhash/s, 64 MiB 178.9, 256 MiB 94.3, 512 MiB 68.8, 1024 MiB 45.0 (Metal sweep shape reproduced). pocl 7.2 CPU device (OpenCL 3.0, LLVM 23, Khronos ICD loader, <code>brew install pocl</code>, needs SDKROOT): <code>--exchange auto</code> and <code>--exchange subgroup</code> built with <code>-cl-std=CL3.0 -D IGNEUM_EXCHANGE=1</code> and ran the real <code>sub_group_shuffle_xor</code> text: cache FNV = Mac, 96/96 PASS. pocl's <code>clGetKernelSubGroupInfoKHR</code> returns CL_INVALID_OPERATION, so the new probe kernel (<code>igneum_probe_subgroup</code>, reports get_sub_group_size() 32) decided; <code>--exchange local</code> also 96/96. CPU emulator (<code>proto-opencl/emu</code>, kernel.cl compiled as C++, 1 GiB dataset built on 256 host threads): 7 configurations all PASS with the identical batch fingerprint f99fb375b3abeaf5 over 2^13 outputs: exchange 0 with work-group 32/sub-group 32, 64/64, 32/64; exchange 1 (sub-group shuffles) with 32/32, 32/64, 64/64 (wave64 carrying two 32-lane units in one shuffle domain), 64/32. Cross-implementation fingerprint at <code>--batch-log2 13</code>, base nonce 0, igneum-genesis-mh: Apple OpenCL f99fb375b3abeaf5, pocl sub-group f99fb375b3abeaf5, pocl local f99fb375b3abeaf5, emulator f99fb375b3abeaf5 (all 7). At 2^24 Apple OpenCL prints 98af644e993239e2 (reference for the AMD run). proto-cuda emulator re-run after the header changes (program.h, vectors.h, memhard.h now C99-safe): PASS. Not demonstrated: any AMD compile or run, any AMD hash rate, the cost of the local-memory exchange on AMD, whether RDNA compiles igneum_hash as wave32 or wave64. Next: run the seven commands in <code>proto-opencl/README.md</code> on the AMD rig and paste the logs.</p>
|
||||
<h2 id="3-october-2026-amd-gfx1036-ryzen-7-9800x3d-integrated-rdna-2-graphics-1-compute-unit-amd-opencl-2-1-driver-3652-0">3 October 2026, AMD gfx1036 (Ryzen 7 9800X3D integrated RDNA 2 graphics, 1 compute unit), AMD OpenCL 2.1 driver 3652.0</h2>
|
||||
<p>Pack igneum-genesis-mh, memory-hard dataset, 1024 MiB, exchange via local memory (the driver lists no sub-group shuffle extension), wavefront 32.</p>
|
||||
<div class="tbl"><table><thead><tr><th>Check</th><th>Result</th></tr></thead><tbody><tr><td>256 MiB cache, device vs host vs Mac</td><td>PASS, 17.5 ms device fill</td></tr><tr><td>Dataset build from the cache, 1 GiB</td><td>392 ms, 42.8 M items/s</td></tr><tr><td>Dataset self-test, 4 checks</td><td>PASS</td></tr><tr><td>Vectors, 3 warps, standalone and in batch</td><td>96/96 PASS</td></tr><tr><td>Hash rate</td><td>4.38 Mhash/s on one compute unit, 1.82 GB/s useful</td></tr></tbody></table></div>
|
||||
<p>Reading: the third GPU vendor. The same memory-hard program now produces identical hashes on Apple Metal, NVIDIA CUDA, Apple OpenCL and AMD OpenCL, cache and dataset included. The AMD number is from a two-CU integrated chip sharing system memory and is a correctness result only; the discrete AMD card is still to come. The local-memory exchange path, which wave64 cards will also use, is now proven on AMD silicon.</p>
|
||||
<h2 id="3-october-2026-rtx-5090-through-nvidia-opencl-fourth-compiler-path-on-the-same-card">3 October 2026, RTX 5090 through NVIDIA OpenCL (fourth compiler path on the same card)</h2>
|
||||
<p>Pack igneum-genesis-mh, 1024 MiB, local-memory exchange (NVIDIA's OpenCL lists no sub-group shuffle extension).</p>
|
||||
<div class="tbl"><table><thead><tr><th>Check</th><th>Result</th></tr></thead><tbody><tr><td>Cache check and dataset self-test</td><td>PASS</td></tr><tr><td>Vectors</td><td>96/96 PASS, batch fingerprint 98af644e993239e2, identical to the AMD gfx1036 run</td></tr><tr><td>Hash rate</td><td>219.6 Mhash/s via OpenCL against 229.0 via CUDA, about 4% apart, approximate</td></tr></tbody></table></div>
|
||||
<p>Reading: NVIDIA's OpenCL compiler and NVIDIA's CUDA compiler agree with each other, with AMD's OpenCL, with Apple's Metal and OpenCL, and with the CPU reference. The batch fingerprint over 16.7 million consecutive nonces is identical on the AMD integrated chip and the 5090, which is a far stronger statement than the 96 vectors alone. The local-memory exchange costs about 4% against CUDA's warp shuffle on this card, approximate.</p></article>
|
||||
</div>
|
||||
<footer>© 2026 Igneum. Generated from the repository at build time. Nothing on this page is an offer to sell anything.</footer>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ footer{border-top:1px solid var(--line);padding-block:24px 48px;font-size:13px;c
|
|||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
<header><a class="brand" href="/">${mark}<b>IGNEUM</b></a><nav><a href="/">Home</a><a href="/litepaper">Litepaper</a><a href="/bench">Engineering log</a><a href="/ledger">FUD ledger</a><a href="https://github.com/[second-owner-login]/igneum" rel="noopener">GitHub</a></nav></header>
|
||||
<header><a class="brand" href="/">${mark}<b>IGNEUM</b></a><nav><a href="/">Home</a><a href="/litepaper">Litepaper</a><a href="/bench">Engineering log</a><a href="/ledger">FUD ledger</a><a href="https://github.com/igneum-network/igneum" rel="noopener">GitHub</a></nav></header>
|
||||
<h1>${esc(title)}</h1>
|
||||
<p class="note">${note}</p>
|
||||
<div class="layout">
|
||||
|
|
|
|||
|
|
@ -420,7 +420,7 @@ footer .wrap{padding-block:48px 32px}
|
|||
<nav class="foot-col" aria-label="Follow">
|
||||
<div class="eyebrow">Follow</div>
|
||||
<a href="#journey">Journey</a>
|
||||
<a href="https://github.com/[second-owner-login]/igneum" rel="noopener" style="display:inline-flex;align-items:center;gap:6px"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"/></svg>GitHub</a>
|
||||
<a href="https://github.com/igneum-network/igneum" rel="noopener" style="display:inline-flex;align-items:center;gap:6px"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .5C5.7.5.5 5.7.5 12c0 5.1 3.3 9.4 7.9 10.9.6.1.8-.3.8-.6v-2.1c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.7 1.3 3.4 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.2-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.2c0 .3.2.7.8.6 4.6-1.5 7.9-5.8 7.9-10.9C23.5 5.7 18.3.5 12 .5z"/></svg>GitHub</a>
|
||||
<a href="#mine">Get the miner</a>
|
||||
</nav>
|
||||
</div>
|
||||
|
|
@ -477,9 +477,9 @@ footer .wrap{padding-block:48px 32px}
|
|||
|
||||
// chain scene: blocks stream in, miners fly in to prove shards, locks ripple
|
||||
(function(){
|
||||
var c=document.getElementById('chain'),x=c.getContext('2d'),W,H,blocks=[],sparks=[],ripples=[],n=0,proven=0,locked=0,lanes=5,S,GAP,speed;
|
||||
var c=document.getElementById('chain'),x=c.getContext('2d'),W,H,blocks=[],sparks=[],ripples=[],n=0,proven=0,locked=0,lanes=5,S,GAP,speed,k=1;
|
||||
var cb=document.getElementById('c-blocks'),cp=document.getElementById('c-proven'),cl=document.getElementById('c-locked');
|
||||
function size(){W=c.clientWidth;H=c.clientHeight;c.width=W*dpr;c.height=H*dpr;x.setTransform(dpr,0,0,dpr,0,0);S=W<600?18:26;GAP=W<600?S*2.5:S*3.1;speed=GAP/1000;}
|
||||
function size(){W=c.clientWidth;H=c.clientHeight;c.width=W*dpr;c.height=H*dpr;x.setTransform(dpr,0,0,dpr,0,0);S=W<600?18:26;GAP=W<600?S*2.5:S*3.1;speed=GAP/1000;k=Math.max(0.22,Math.min(1,(W/speed)/22000));}
|
||||
size();window.addEventListener('resize',size);
|
||||
function laneY(l){return H*0.14+l*(H*0.72/(lanes-1));}
|
||||
function spawn(px){n++;var lane=Math.floor(Math.random()*lanes);var b={id:n,x:px,y:laneY(lane),born:performance.now(),shards:[0,0,0,0],claimed:[false,false,false,false],state:'mined',cp:n%6===0,parents:[],glow:0,flash:0};
|
||||
|
|
@ -492,11 +492,11 @@ footer .wrap{padding-block:48px 32px}
|
|||
if(t-last>1000){spawn(W+S);last=t;}
|
||||
var dt=16;
|
||||
blocks.forEach(function(b){b.x-=speed*dt;var age=t-b.born;
|
||||
if(b.state==='mined'&&age>1200)b.state='proving';
|
||||
if(b.state==='proving'){for(var i=0;i<4;i++){if(!b.claimed[i]&&Math.random()<0.012){b.claimed[i]=true;var fromTop=Math.random()<0.5;sparks.push({x:Math.random()*W,y:fromTop?-6:H+6,tx:b.x,ty:b.y,b:b,i:i,p:0});}}
|
||||
if(b.shards.every(function(v){return v>=1;})){b.state='proven';b.glow=1;proven++;cp.textContent=proven;if(b.cp)setTimeout(function(){b.locked=true;locked++;cl.textContent=locked;ripples.push({x:b.x,y:b.y,r:S,a:1});ripples.push({x:b.x,y:b.y,r:S*0.5,a:1});},1800);}}
|
||||
if(b.state==='mined'&&age>1200*k)b.state='proving';
|
||||
if(b.state==='proving'){for(var i=0;i<4;i++){if(!b.claimed[i]&&Math.random()<0.012/k){b.claimed[i]=true;var fromTop=Math.random()<0.5;sparks.push({x:Math.random()*W,y:fromTop?-6:H+6,tx:b.x,ty:b.y,b:b,i:i,p:0});}}
|
||||
if(b.shards.every(function(v){return v>=1;})){b.state='proven';b.glow=1;proven++;cp.textContent=proven;if(b.cp)setTimeout(function(){b.locked=true;locked++;cl.textContent=locked;ripples.push({x:b.x,y:b.y,r:S,a:1});ripples.push({x:b.x,y:b.y,r:S*0.5,a:1});},1800*k);}}
|
||||
if(b.glow>0)b.glow-=0.02;});
|
||||
sparks.forEach(function(sp){sp.p+=0.035;sp.tx=sp.b.x;sp.ty=sp.b.y;if(sp.p>=1){sp.done=true;sp.b.shards[sp.i]=1;}});
|
||||
sparks.forEach(function(sp){sp.p+=Math.min(0.08,0.035/k);sp.tx=sp.b.x;sp.ty=sp.b.y;if(sp.p>=1){sp.done=true;sp.b.shards[sp.i]=1;}});
|
||||
sparks=sparks.filter(function(sp){return !sp.done;});
|
||||
ripples.forEach(function(r){r.r+=2.2;r.a-=0.012;r.x-=speed*dt;});ripples=ripples.filter(function(r){return r.a>0;});
|
||||
x.clearRect(0,0,W,H);
|
||||
|
|
@ -520,7 +520,7 @@ footer .wrap{padding-block:48px 32px}
|
|||
ripples.forEach(function(r){x.strokeStyle='rgba(242,84,27,'+r.a+')';x.lineWidth=1.5;x.beginPath();x.arc(r.x,r.y,r.r,0,Math.PI*2);x.stroke();});
|
||||
if(!reduce)requestAnimationFrame(frame);
|
||||
}
|
||||
for(var i=0;i<Math.ceil(W/GAP)+1;i++){spawn(W-i*GAP);var b=blocks[blocks.length-1];b.born=performance.now()-i*1000;if(i>5){b.state='proven';b.shards=[1,1,1,1];b.claimed=[true,true,true,true];proven++;if(b.cp&&i>5){b.locked=true;locked++;}}else if(i>1){b.state='proving';b.claimed=[true,true,false,false];b.shards=[1,1,0,0];}}
|
||||
var seedN=Math.ceil(W/GAP)+1,pv=Math.min(5,Math.max(2,Math.floor(seedN*0.45)));for(var i=0;i<seedN;i++){spawn(W-i*GAP);var b=blocks[blocks.length-1];b.born=performance.now()-i*1000;if(i>pv){b.state='proven';b.shards=[1,1,1,1];b.claimed=[true,true,true,true];proven++;if(b.cp){b.locked=true;locked++;}}else if(i>1){b.state='proving';b.claimed=[true,true,false,false];b.shards=[1,1,0,0];}}
|
||||
cb.textContent=n;cp.textContent=proven;cl.textContent=locked;
|
||||
requestAnimationFrame(frame);
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -50,6 +50,18 @@
|
|||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"date": "2026-10-03",
|
||||
"text": "Proto-opencl: OpenCL path built and proven without AMD silicon"
|
||||
},
|
||||
{
|
||||
"date": "2026-10-03",
|
||||
"text": "AMD gfx1036 , AMD OpenCL 2.1 driver 3652.0"
|
||||
},
|
||||
{
|
||||
"date": "2026-10-03",
|
||||
"text": "RTX 5090 through NVIDIA OpenCL"
|
||||
},
|
||||
{
|
||||
"date": "2026-10-03",
|
||||
"text": "RTX 5090 first run"
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ footer{border-top:1px solid var(--line);padding-block:24px 48px;font-size:13px;c
|
|||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
<header><a class="brand" href="/"><svg viewBox="0 0 100 100" width="26" height="26" aria-hidden="true"><polygon points="50,4 74,34 67,58 80,54 61,96 39,96 20,54 33,58 26,34" fill="#F2541B"></polygon><polygon points="50,42 59,58 50,82 41,58" fill="#0C0C0E"></polygon></svg><b>IGNEUM</b></a><nav><a href="/">Home</a><a href="/litepaper">Litepaper</a><a href="/bench">Engineering log</a><a href="/ledger">FUD ledger</a><a href="https://github.com/[second-owner-login]/igneum" rel="noopener">GitHub</a></nav></header>
|
||||
<header><a class="brand" href="/"><svg viewBox="0 0 100 100" width="26" height="26" aria-hidden="true"><polygon points="50,4 74,34 67,58 80,54 61,96 39,96 20,54 33,58 26,34" fill="#F2541B"></polygon><polygon points="50,42 59,58 50,82 41,58" fill="#0C0C0E"></polygon></svg><b>IGNEUM</b></a><nav><a href="/">Home</a><a href="/litepaper">Litepaper</a><a href="/bench">Engineering log</a><a href="/ledger">FUD ledger</a><a href="https://github.com/igneum-network/igneum" rel="noopener">GitHub</a></nav></header>
|
||||
<h1>FUD ledger</h1>
|
||||
<p class="note">Every criticism a serious person would make, written before they make it, with the answer, the evidence, or the admission that it is open and the experiment that settles it. Overclaims found in our own text are listed too. Submissions are welcome and will be added with the same honesty.</p>
|
||||
<div class="layout">
|
||||
|
|
@ -418,7 +418,7 @@ footer{border-top:1px solid var(--line);padding-block:24px 48px;font-size:13px;c
|
|||
<p>---</p>
|
||||
<h2 id="8-launch-and-community">8. Launch and community</h2>
|
||||
<h3 id="x1-reproducible-from-the-repository-and-the-repository-is-private">X1. "Reproducible from the repository" and the repository is private</h3>
|
||||
<p>"Your site links to github.com/[second-owner-login]/igneum. It 404s. 'Every number above is measured, published, and reproducible from the repository' is false today."</p>
|
||||
<p>"Your site links to github.com/igneum-network/igneum. It 404s. 'Every number above is measured, published, and reproducible from the repository' is false today."</p>
|
||||
<p>Status: Conceded, fix now.</p>
|
||||
<p>Answer: Correct. Either the repository goes public with the litepaper or the sentence and the GitHub link come off the site until January 2027. Publishing the bench logs, the simulator and the test report with the litepaper is the cheaper fix and the honest one.</p>
|
||||
<p>Evidence: <code>site/index.html</code> footer link; CLAUDE.md says private. Fix: overclaims list, item 22.</p>
|
||||
|
|
|
|||
Loading…
Reference in a new issue