mirror of
https://github.com/luxfi/precompile.git
synced 2026-09-24 00:26:21 +00:00
80 lines
2.8 KiB
Go
80 lines
2.8 KiB
Go
// Copyright (C) 2026, Lux Industries Inc. All rights reserved.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
// luts.go — FROZEN integer LUTs, byte-identical to the GPU/C++ kernels
|
|
// (ops/aivm/softmax_i8/cpu/exp_lut.h, swiglu_i8/cpu/silu_lut.h). Embedded as exact
|
|
// constants (NOT recomputed via Go math — that would diverge in the last ULP and
|
|
// break consensus). Regenerating must reproduce these exact values.
|
|
|
|
package inference
|
|
|
|
var aivmExpLUT = [256]int32{
|
|
65536, 62757, 60097, 57549, 55109, 52773, 50535, 48393,
|
|
46341, 44376, 42495, 40693, 38968, 37316, 35734, 34219,
|
|
32768, 31379, 30048, 28774, 27554, 26386, 25268, 24196,
|
|
23170, 22188, 21247, 20347, 19484, 18658, 17867, 17109,
|
|
16384, 15689, 15024, 14387, 13777, 13193, 12634, 12098,
|
|
11585, 11094, 10624, 10173, 9742, 9329, 8933, 8555,
|
|
8192, 7845, 7512, 7194, 6889, 6597, 6317, 6049,
|
|
5793, 5547, 5312, 5087, 4871, 4664, 4467, 4277,
|
|
4096, 3922, 3756, 3597, 3444, 3298, 3158, 3025,
|
|
2896, 2774, 2656, 2543, 2435, 2332, 2233, 2139,
|
|
2048, 1961, 1878, 1798, 1722, 1649, 1579, 1512,
|
|
1448, 1387, 1328, 1272, 1218, 1166, 1117, 1069,
|
|
1024, 981, 939, 899, 861, 825, 790, 756,
|
|
724, 693, 664, 636, 609, 583, 558, 535,
|
|
512, 490, 470, 450, 431, 412, 395, 378,
|
|
362, 347, 332, 318, 304, 292, 279, 267,
|
|
256, 245, 235, 225, 215, 206, 197, 189,
|
|
181, 173, 166, 159, 152, 146, 140, 134,
|
|
128, 123, 117, 112, 108, 103, 99, 95,
|
|
91, 87, 83, 79, 76, 73, 70, 67,
|
|
64, 61, 59, 56, 54, 52, 49, 47,
|
|
45, 43, 41, 40, 38, 36, 35, 33,
|
|
32, 31, 29, 28, 27, 26, 25, 24,
|
|
23, 22, 21, 20, 19, 18, 17, 17,
|
|
16, 15, 15, 14, 13, 13, 12, 12,
|
|
11, 11, 10, 10, 10, 9, 9, 8,
|
|
8, 8, 7, 7, 7, 6, 6, 6,
|
|
6, 5, 5, 5, 5, 5, 4, 4,
|
|
4, 4, 4, 4, 3, 3, 3, 3,
|
|
3, 3, 3, 2, 2, 2, 2, 2,
|
|
2, 2, 2, 2, 2, 2, 2, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1,
|
|
}
|
|
|
|
var aivmSiluLUT = [256]int32{
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -2, -2,
|
|
-2, -2, -2, -2, -2, -2, -2, -2,
|
|
-2, -2, -2, -3, -3, -3, -3, -3,
|
|
-3, -3, -3, -3, -3, -4, -4, -4,
|
|
-4, -4, -4, -4, -4, -4, -4, -4,
|
|
-4, -4, -4, -4, -4, -4, -4, -4,
|
|
-4, -4, -4, -4, -4, -4, -3, -3,
|
|
-3, -3, -2, -2, -2, -1, -1, 0,
|
|
0, 1, 1, 2, 2, 3, 4, 4,
|
|
5, 6, 7, 7, 8, 9, 10, 11,
|
|
12, 13, 14, 15, 16, 17, 18, 19,
|
|
20, 21, 22, 23, 24, 25, 26, 27,
|
|
28, 29, 30, 31, 33, 34, 35, 36,
|
|
37, 38, 39, 40, 41, 42, 44, 45,
|
|
46, 47, 48, 49, 50, 51, 52, 53,
|
|
54, 55, 56, 58, 59, 60, 61, 62,
|
|
63, 64, 65, 66, 67, 68, 69, 70,
|
|
71, 72, 73, 74, 75, 76, 77, 78,
|
|
79, 80, 82, 83, 84, 85, 86, 87,
|
|
88, 89, 90, 91, 92, 93, 94, 95,
|
|
96, 97, 98, 99, 100, 101, 102, 103,
|
|
104, 105, 106, 107, 108, 109, 110, 111,
|
|
112, 113, 114, 115, 116, 117, 118, 119,
|
|
120, 121, 122, 123, 124, 125, 126, 127,
|
|
}
|