A shadow block of S ALU instructions run R times at the end of every iteration, drawn from the program stream after the 64 base instructions, behind LoadClass::shadow: v2 and v3 draw nothing and emit nothing (the pinned packs are byte-identical, cargo test 54 + 4 + 19 + 7 green). The interpreter, the three kernel dialects (both kernels each), program.h and program.json carry it; the acceptance rule interprets the base program only. Packs for seed igneum-genesis over class mx8 at 4,096 to 180,224 shadow instructions per hash (proto-cuda/packs-ca3-shadow), and the PC 2 bench playbook tools/ca3-shadow/pc2-shadow-bench.ps1 (passes the publisher's three checks). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
57 lines
5.7 KiB
C++
57 lines
5.7 KiB
C++
// Generated by igneum-pow export (generator v2) for seed "igneum-genesis". Do not edit by hand.
|
|
// Expected outputs: igneum-pow (Rust) CPU interpreter, generator v2, memory-hard dataset
|
|
#pragma once
|
|
#ifdef __cplusplus
|
|
#include <cstdint>
|
|
#else
|
|
#include <stdint.h>
|
|
#endif
|
|
|
|
#define IGNEUM_VEC_WARPS 3
|
|
static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u };
|
|
static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = {
|
|
{ // base nonce 0
|
|
0x04e491e95153d0c0ull, 0x4c42169e1e0b8105ull, 0x0d90a3f13ae112f5ull, 0x7655b613a9d5c4a1ull, 0x175f062319f0c695ull, 0x03353125cf0b0b99ull, 0xf7b735876b46c7c6ull, 0x8237cad948b448ffull,
|
|
0x7e3457c2012f86a1ull, 0xd263e7d83b4bcf46ull, 0x59a40a1e54938c0dull, 0x1b9d1ce89913ead7ull, 0xfb61039aba89f77cull, 0x72e74850db581418ull, 0x3b3ba880375afd7bull, 0xa272b7c295b800d6ull,
|
|
0xe5170a8eb49dc9a4ull, 0x9a09fef0590c4f68ull, 0xe339e58d335c62b1ull, 0xbbe4dcd67ef024e4ull, 0xb58d47107235fc41ull, 0x74fb7ba7185593c2ull, 0xc748f87aa4be1db6ull, 0xd3145c4e1af3852cull,
|
|
0x2dc5b295462aa440ull, 0xd4c1f90dd516b1deull, 0xdf3749272aaa156bull, 0x5b975060e5e9ee08ull, 0x19aa57c02ff889d2ull, 0x86bf447f041aa78bull, 0x51a9bf4b0e40016aull, 0xf4cc02d0f2be1e30ull
|
|
},
|
|
{ // base nonce 4096
|
|
0xfa09e795bcf4cc16ull, 0x74a0400fc0d4dd31ull, 0x18aca4406173e8b4ull, 0x3a20caf44908e583ull, 0x6fdfd9cf0198f91aull, 0x96d3c284b0e23363ull, 0x2d0237e263af2f32ull, 0xc44c5d56ddb5492eull,
|
|
0xf862e9bb6fb96d29ull, 0x1679aa2bf73dd7f6ull, 0x123bd29e9e98b2a7ull, 0x7a2bf08712d1f05aull, 0x13eef78a31863d73ull, 0xb2c3d02ef4751a6full, 0x264c88bd8165d431ull, 0x9a1c44a5dd2f4a5dull,
|
|
0xb2d647e692987978ull, 0x8f7fe312b703f739ull, 0x359ea150a66f254cull, 0x7432685b3fa426f6ull, 0x9fbf8c15aff45253ull, 0x30a58e634bd3e321ull, 0x68b90886acfd416cull, 0xe3bcbe6f0477291bull,
|
|
0x33d0e37352364c88ull, 0xa69355a1e959fab7ull, 0x1f4da9c95e497dcfull, 0x66d1a41ad8b76ed9ull, 0x888cfa862362596cull, 0xdf64b72bd1469706ull, 0x29aebe5f9290a5afull, 0x426640cc3a300384ull
|
|
},
|
|
{ // base nonce 1000000
|
|
0x3085acf29175f955ull, 0x71fce956fef7c0dcull, 0xd65f7f4f7b5da589ull, 0xf453369353c73bb8ull, 0x28e13e24ae8d9f89ull, 0xd7a3594113498879ull, 0x8f1f8db45dd80ee6ull, 0x847d40b7357ca8ebull,
|
|
0xa199177bc3f7f7a3ull, 0x26e92f6b2077b4d4ull, 0x24f9f1863917dcbcull, 0x1a030d008b777b08ull, 0xebcc0cc9db7c412eull, 0xebb9e3bfa513b0c0ull, 0x5acf6325ac29d53bull, 0xc36c4c199faf1234ull,
|
|
0xacff161df7f202a1ull, 0x2805c39d5bbfb402ull, 0xc3b49f0eda801af6ull, 0x669fa3adaf9cecfeull, 0x9d2b9f502941f5a6ull, 0x18f6d5ad37784f60ull, 0x4cc22b6763f00357ull, 0x9a600deb62c80c0aull,
|
|
0x9ee7ff942eb3d51full, 0x465c74e3f9c48c0eull, 0xa3e54e42f498cfe7ull, 0x3e2ed6c098a6fd94ull, 0x3a3116c0b3eda0b6ull, 0x39b64b349ca5f65eull, 0x4529d689581f15e5ull, 0x4a000068b04c79c2ull
|
|
}
|
|
};
|
|
|
|
// Dataset self-test: dataset[0..15] and dataset[IGNEUM_MASK] (268435455).
|
|
static const uint32_t IGNEUM_DS_HEAD[16] = {
|
|
0xfdad4319u, 0x1a7b68e1u, 0xde6db608u, 0x13d73892u, 0xd17f447au, 0xb2221ccfu, 0x9db004bdu, 0x57d7d367u,
|
|
0xdbc4cf34u, 0x697c009au, 0xc43af1d4u, 0x97f12b2eu, 0x74c37cd0u, 0xc651ea15u, 0x665a6d29u, 0x22330a2du
|
|
};
|
|
static const uint32_t IGNEUM_DS_LAST_INDEX = 268435455u;
|
|
static const uint32_t IGNEUM_DS_LAST = 0xa83e7aa6u;
|
|
// 64 sampled dataset words (index, value) computed on the Mac.
|
|
#define IGNEUM_DS_SAMPLES 64
|
|
static const uint32_t IGNEUM_DS_SAMPLE_INDEX[IGNEUM_DS_SAMPLES] = {
|
|
59471966u, 217795994u, 208353206u, 42483309u, 172547758u, 148076330u, 183853158u, 214389424u, 267488061u, 169781097u, 184093494u, 153880993u, 84977930u, 46426879u, 3093825u, 225364072u, 44593546u, 260713159u, 168250303u, 52384140u, 223401610u, 45554030u, 95410555u, 175039924u, 79171087u, 267580473u, 24168642u, 37981670u, 171551130u, 195559979u, 204611762u, 140997658u, 138925853u, 86637313u, 20736778u, 219665210u, 160430336u, 264654675u, 8013395u, 228945585u, 213884386u, 104419827u, 44185464u, 142737231u, 99284897u, 132475900u, 61861762u, 132056166u, 262388043u, 91878046u, 117353561u, 124768597u, 71352993u, 190698941u, 46055428u, 55281366u, 165145231u, 106810753u, 171985651u, 232085256u, 159510492u, 40072060u, 209107596u, 39023794u
|
|
};
|
|
static const uint32_t IGNEUM_DS_SAMPLE_VALUE[IGNEUM_DS_SAMPLES] = {
|
|
0x3230bc7bu, 0x7fbfe2c9u, 0xb2690991u, 0x1745c7c5u, 0x0ab0ccafu, 0x1bf87d6bu, 0x160139fdu, 0x719817acu, 0x0155df4bu, 0xbe1e86c3u, 0x680bcd6cu, 0x79c3dc6cu, 0x181e7e5fu, 0x0713a109u, 0xc705dd9fu, 0x3933b7a8u, 0xdd1c0431u, 0x50522b30u, 0xa0020b38u, 0xbff39e96u, 0x21b67e18u, 0x740f8db3u, 0x2baba568u, 0x2c9bef83u, 0x0ad9b671u, 0xc4327869u, 0x7b4fd7d0u, 0x2c29965fu, 0xec56f15fu, 0x61111746u, 0x303a1d6eu, 0xbddcfd1au, 0xf829a355u, 0x6d5df2a9u, 0x01ab8e44u, 0x06d13507u, 0xda8dcfc6u, 0x01a703e1u, 0xafe7d2c1u, 0xc091c3a2u, 0xac1814feu, 0x6e6ff62au, 0x8fdf01bau, 0xdd3f7159u, 0xdfa0d75cu, 0x26684c35u, 0x7f441e63u, 0x88df2570u, 0x8aa4d5ebu, 0xcc816c05u, 0x434df890u, 0xcd392ad6u, 0x1ab4cb63u, 0x595926fau, 0x7cd76b41u, 0x20cb95c4u, 0x13cf823fu, 0xf9daf901u, 0xff9af40au, 0x2c7dfa51u, 0x871206dbu, 0x938c116cu, 0xb64bf199u, 0x5751f874u
|
|
};
|
|
// Cache self-test (memory-hard mode): cache[0..15], the last 16 words, and FNV-1a 64 over all 2^26 words.
|
|
static const uint32_t IGNEUM_CACHE_HEAD[16] = {
|
|
0x355a86d2u, 0x7957db1cu, 0xd21772afu, 0x6fc1e09bu, 0xd55ce61du, 0x6e6a278bu, 0xd3f543ceu, 0x223d8e82u,
|
|
0x143ab337u, 0x2e9f05bdu, 0x2eb389bfu, 0x0c6e449eu, 0x5cfa4222u, 0xba6560feu, 0x8e3e1aa4u, 0xdbcc1d53u
|
|
};
|
|
static const uint32_t IGNEUM_CACHE_LAST[16] = {
|
|
0x41190d91u, 0xbd277957u, 0x22ddbb49u, 0x6986f207u, 0xdf69a4d6u, 0x26401a3au, 0x818230fbu, 0xc417122du,
|
|
0x3597b211u, 0xb553ce55u, 0xcf39cc0du, 0x3b7fc43au, 0x3fd43b00u, 0x67e1c80eu, 0xffa7ea7du, 0xca2960abu
|
|
};
|
|
static const uint64_t IGNEUM_CACHE_FNV64 = 0x48c4f5bf24166b2eull;
|