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
|
|
0xb359d110ac143375ull, 0x748fb5308223a682ull, 0x2a809644b94a8216ull, 0x18548dad2999d526ull, 0xb793809331b0a189ull, 0x55b034de97b5dcfdull, 0x9506b188c1becd3cull, 0x6f2a3986cb1967b3ull,
|
|
0x376f13355e35e6c4ull, 0x35db684678b0567bull, 0xfec8f41452c07083ull, 0x324ad57e71b201e5ull, 0x1f5def2519b0dff9ull, 0x07e54a4494f2283dull, 0xc698336cb18b866cull, 0xc9808c2475fe8d66ull,
|
|
0x82021978b9d61925ull, 0x0ef2fa3310887ec6ull, 0xdb17534bb857c9ccull, 0x5203cbc6bdb4bbb2ull, 0xb0b2b24438cf1cc0ull, 0xcb1fa6bf5e701935ull, 0x3dca8b3408c4a3f7ull, 0xd7610b168cf2943cull,
|
|
0xcfe566147a489c75ull, 0x6294533ee65da77dull, 0x2e0774f316868b26ull, 0xd2a10f4303777610ull, 0x2e3a4b91c8962246ull, 0x00063a312aa1f50bull, 0x003794aceed11052ull, 0xcc181405cd575561ull
|
|
},
|
|
{ // base nonce 4096
|
|
0x382ff31a848c87ceull, 0x9f83773ad5a14bf6ull, 0xb256ecebb8fcf4dcull, 0x000c632632ea0cedull, 0xcaf1f89dc457ab50ull, 0x6a3b9f2156b7b00dull, 0x9b428f619265dcfcull, 0x907f65c3591b88c6ull,
|
|
0x0f225df3fbfb67e2ull, 0x29614e20ca52a926ull, 0x4655beaea3ad2759ull, 0xf995b623fcc6644dull, 0xce65301573c94490ull, 0xc7870bc7e5052ee9ull, 0xf7b89744f3b0b132ull, 0x80351dd1981ed5e3ull,
|
|
0xa878aa51b297dcfcull, 0x001a834e5e050e8eull, 0xca2c133d9937349dull, 0x82d3b88dddc886bfull, 0x7ae69bce58a3da0cull, 0x4561f608a0e10777ull, 0x86a12f3d2bb459c9ull, 0x860f5151394991f8ull,
|
|
0xe55b559c5c954cb8ull, 0x4bcbcdbefcaf412dull, 0x1e74dbd57413e73dull, 0x03d197ea39c77502ull, 0xfdff34586270344aull, 0x7e1ff6220cbc0124ull, 0xba28400b90b409d8ull, 0x592cd3eb57e1d660ull
|
|
},
|
|
{ // base nonce 1000000
|
|
0x99769bd9e253e017ull, 0xda7db4183c7fb68bull, 0xff5782631ce7fa14ull, 0x5c6494df049901faull, 0x3d49b9a6b55f9ee6ull, 0xa7f999e4384da8dbull, 0xd1312b67803a0c72ull, 0x85f5d8f8bb33dc9full,
|
|
0x63664a37b11f311aull, 0x28a4b561cf2f7b36ull, 0x7674177403abf2c8ull, 0xf6ef2c094f5cb4afull, 0xbdc4a803a2e91ff4ull, 0x4459a81585f5f6e0ull, 0xb4098eb87a7489feull, 0x60d9b048e1bbefdeull,
|
|
0xd0aec740e4aba722ull, 0x69d9e3e9c99c5391ull, 0x040fe663cbcbfdc2ull, 0x38e3b8eab6a7b6b4ull, 0x8a606e5c69c02b3full, 0xe1dd929d4296cde3ull, 0x2ad80e84d9072b65ull, 0xa1f34ff68012fd66ull,
|
|
0xa2351892f47fbd27ull, 0xd88d059c58979055ull, 0x0c5d59a61c9c5b0bull, 0xd16f446ddd7119c7ull, 0x47aa1f6c4b48d944ull, 0xf6164e14d2937532ull, 0xd344f8977fd2d100ull, 0xf76f271447d7d772ull
|
|
}
|
|
};
|
|
|
|
// 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;
|