igneum/proto-cuda/packs/igneum-genesis/vectors.h
igneum-labs 660f0eb16c proto-opencl: OpenCL path for AMD, proven on Apple OpenCL, pocl and a wave64 CPU emulator
Exporter writes kernel.cl next to kernel.cu (same instruction list; memory-hard core emitted in a third, OpenCL C
dialect with the same literals as memhard.h). Pack headers are now C99-safe so a plain C host can include them.

proto-opencl/host.c: C99 + OpenCL 1.2 API, device list, runtime build, cache fill and FNV check, dataset build and
self-test, 3 vector warps standalone and in batch, bench and sweep as host.cu, whole-batch fingerprint. The 32-lane
exchange is sub_group_shuffle_xor only when the queried sub-group size for a 32-item work-group is exactly 32;
otherwise a local-memory exchange with one barrier per exchange, so wave64 hardware cannot change the hash
(WAVEFRONT.md). build.sh (macOS, Linux), build.bat (MSVC), README with the exact AMD-rig commands.

Proven without AMD silicon: Apple OpenCL 1.2 on the M5 Max 96/96 on all three packs (45.0 Mhash/s at 1 GiB, Apple
number, not AMD); pocl 7.2 CPU device 96/96 on both exchange paths including the real sub_group_shuffle_xor text;
CPU emulator 7 configurations incl. 64-wide sub-groups, identical fingerprint f99fb375b3abeaf5 everywhere.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 16:52:24 +00:00

47 lines
5 KiB
C++

// Generated by proto-metal/igneum-bench --export-pack for seed "igneum-genesis". Do not edit by hand.
// Expected outputs: proto-metal CPU interpreter (cpuWarp, closed-form dataset) on Apple M5 Max; Metal GPU cross-check PASS 3/3 warps
#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
0x2941e93c76cb1910ull, 0xc0099c34df8280aeull, 0xe61da8a237797181ull, 0xfb944794eaa8ea1dull, 0x0093934e41befb07ull, 0xd4ba2031c0385915ull, 0x75a8a43902cee166ull, 0xb4ce2d6829aaa27cull,
0x478095c2e9911e5dull, 0x595c8107b2792a66ull, 0x21b1b582752cc1d2ull, 0x16e746aa4d9532b8ull, 0x35129dbb17efe2e4ull, 0x926e0b679bf37640ull, 0xb2701dd71a189e19ull, 0x100e94f487022795ull,
0x2b9bc5aa1452be87ull, 0x8dabbbe8b909130bull, 0x93a2cd4cba088297ull, 0x662c3e253432099eull, 0xf489da4c9c770867ull, 0xe37864f932e97adfull, 0x3ddf029de9b3c1edull, 0x9059da45130736acull,
0x1a667325a17e0016ull, 0x74723d71ab69828aull, 0x121026c2f14795c1ull, 0x4989e1480c662cc8ull, 0xac3b8fd5307c0ab4ull, 0xdc3fc0bb843e84e8ull, 0xfa86df690d119639ull, 0x453388e1be04e25full
},
{ // base nonce 4096
0x198f269c663acaf6ull, 0x6c125dcda3cade45ull, 0x0ae4eba3f2a0cdecull, 0xc112952633d9477cull, 0x2dfc52ebb7281f9eull, 0x70b0e04375823959ull, 0x699e78e051dfaa76ull, 0xd91ae88bc2eba03full,
0x928b2939d0b23e68ull, 0x0e5feb811f4dd40bull, 0xd0e4ce74e6693b53ull, 0xbd8ac2d12ea0ea1bull, 0xa39bcd116eec4f88ull, 0xdd07f4f6a5a07514ull, 0xdc1cf8b4615b8842ull, 0xde0fb1599057c2ddull,
0x56edb1995f7c341eull, 0x02782ce22dd25939ull, 0x150b52d7b4b87319ull, 0xd5c89a9a6c2786c3ull, 0x8aef759270e00bbaull, 0xf9f26409968ea1eaull, 0x2013ae93398863f0ull, 0x863877ca875900deull,
0x6e05e03111bf02a3ull, 0x21ec57017818f221ull, 0x62b33a3456032a3bull, 0x5bc24dc2bf442511ull, 0xb97041874e099be7ull, 0x2d9f09fb5d11fa13ull, 0x43f3f83f764ea247ull, 0xa3ec25a3072b734cull
},
{ // base nonce 1000000
0xa63f6d32a9dc2bacull, 0x3263d16a85274409ull, 0xca7b34b1061437c7ull, 0xaf24083fbe9a33acull, 0x68c42544f8798a73ull, 0x5ba44c42278e0d0aull, 0x12b31f0da8ea79e3ull, 0xa4a6186f5f5b7280ull,
0x1534d7e10b3f87aeull, 0xb04618c9238e7436ull, 0x28be2d38f9db17d7ull, 0xebed3a6006a491d1ull, 0x23d50e8d3518ee39ull, 0xd75fac65bc8d1975ull, 0x3fd5c0a165c0669bull, 0x882720cae6122082ull,
0xc107a8305a1f009dull, 0xa58cc24784025f2cull, 0x7ee69d59a87a92ebull, 0x46009435f6f19482ull, 0xf50c2623a7f856acull, 0x1cc0ddf7b3dc20faull, 0xcbc7f0bb8cd2ec14ull, 0x119c2409ce2462baull,
0x1b544f117b80334cull, 0xdb47d6cdd3cf93fcull, 0xdb8c149c9914ddaeull, 0xc6c5e4b5ea412748ull, 0x4437723f548837ffull, 0x1fc1eb1bda8e067cull, 0x786dfa4dc7a84237ull, 0x1fc0ac22d46fb45dull
}
};
// Dataset self-test: dataset[0..15] and dataset[IGNEUM_MASK] (268435455).
static const uint32_t IGNEUM_DS_HEAD[16] = {
0x82174c0fu, 0x577bdb9cu, 0x111053bfu, 0x2bb85514u, 0xd83e190fu, 0x8ccd9427u, 0x3f69d5e4u, 0xf3bbe1dcu,
0xb3aa7e90u, 0xc33f5f73u, 0xb83a2b10u, 0xc4d7c8ffu, 0xefa6d1a8u, 0x7029b116u, 0x5e48fab0u, 0x0ef66e40u
};
static const uint32_t IGNEUM_DS_LAST_INDEX = 268435455u;
static const uint32_t IGNEUM_DS_LAST = 0xf78c84a4u;
// 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] = {
0x3ef2f18du, 0xed632a6bu, 0x2daad897u, 0x1201639fu, 0x8e79ca54u, 0x488d4f3du, 0x5206fa5cu, 0xf60c5f15u, 0x5af790f7u, 0xdb48b2cau, 0x2b55a0e4u, 0xc8c5100fu, 0xe4afb4a4u, 0x35a42586u, 0xff4cb6d1u, 0x1d6cac9fu, 0x889230c1u, 0x95316e2au, 0x61b099e9u, 0x97b89bb2u, 0x05171be5u, 0x7f0157abu, 0x13825368u, 0x562ab1bfu, 0x6e3b06b8u, 0xc9b51434u, 0xc994b628u, 0x26643aa8u, 0x56ae558cu, 0xdc8fdaaau, 0x2ed21c3fu, 0x3a29b91bu, 0xfd98ca1eu, 0x44c7dd8au, 0xaab155c8u, 0x0db02165u, 0x637c813au, 0x5648617eu, 0x3e163337u, 0x64bf0ad7u, 0x43381384u, 0x824dca58u, 0xab7bf62eu, 0x10880075u, 0x292498dau, 0x925fea4du, 0x606466a0u, 0x37923fc4u, 0x3544915bu, 0x742b205du, 0x3228e7adu, 0x1ce5ec92u, 0xd7857a5cu, 0x200a560bu, 0xc29076c7u, 0x886a1a06u, 0x1f415038u, 0x60fa6028u, 0x1fb1d0f9u, 0xee203b87u, 0xa12f7ea5u, 0x6ecd91dcu, 0x260e00b4u, 0xef4a4067u
};