@vune-ui/execution 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/index.d.ts +247 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +560 -0
- package/dist/index.js.map +1 -0
- package/dist/resident-wasm.d.ts +238 -0
- package/dist/resident-wasm.d.ts.map +1 -0
- package/dist/resident-wasm.js +578 -0
- package/dist/resident-wasm.js.map +1 -0
- package/dist/resident-worker.d.ts +145 -0
- package/dist/resident-worker.d.ts.map +1 -0
- package/dist/resident-worker.js +441 -0
- package/dist/resident-worker.js.map +1 -0
- package/dist/wasm/resident-kernel-scalar.wasm +0 -0
- package/dist/wasm/resident-kernel-shared-scalar.wasm +0 -0
- package/dist/wasm/resident-kernel-shared-simd.wasm +0 -0
- package/dist/wasm/resident-kernel-simd.wasm +0 -0
- package/dist/wasm/resident-worker.mjs +108 -0
- package/package.json +35 -0
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { ExecutionRegion, ExecutionTelemetry, type BufferLayout, type ExecutionAggregate, type WasmResidentBuffer } from "./index.js";
|
|
2
|
+
export declare const enum ResidentWasmOpcode {
|
|
3
|
+
End = 0,
|
|
4
|
+
Kernel = 1,
|
|
5
|
+
ConstF32 = 2,
|
|
6
|
+
LoadColumn = 3,
|
|
7
|
+
Index = 4,
|
|
8
|
+
Capture = 5,
|
|
9
|
+
Positive = 6,
|
|
10
|
+
Negative = 7,
|
|
11
|
+
Not = 8,
|
|
12
|
+
Add = 9,
|
|
13
|
+
Subtract = 10,
|
|
14
|
+
Multiply = 11,
|
|
15
|
+
Divide = 12,
|
|
16
|
+
LessThan = 13,
|
|
17
|
+
LessEqual = 14,
|
|
18
|
+
GreaterThan = 15,
|
|
19
|
+
GreaterEqual = 16,
|
|
20
|
+
Equal = 17,
|
|
21
|
+
NotEqual = 18,
|
|
22
|
+
And = 19,
|
|
23
|
+
Or = 20,
|
|
24
|
+
Select = 21,
|
|
25
|
+
StoreTemp = 22,
|
|
26
|
+
Commit = 23
|
|
27
|
+
}
|
|
28
|
+
export type ResidentWasmVariant = "simd" | "scalar";
|
|
29
|
+
export type ResidentNativeRejectionReason = "single-use-region" | "object-materialization" | "readback-required" | "storage-not-wasm-resident" | "storage-not-authoritative" | "storage-epoch-changed" | "layout-not-dense-f32" | "wasm-unavailable" | "packed-js-baseline-required" | "insufficient-measured-samples" | "no-measured-win" | "worker-frame-pressure-required" | "shared-memory-unavailable" | "worker-control-payload-invalid" | "experimental-disabled";
|
|
30
|
+
export type ResidentNativeDecisionReason = ResidentNativeRejectionReason | "measured-win" | "predicted-win" | "learned-win" | "crossover-calibration";
|
|
31
|
+
export interface ResidentWasmCostProfile {
|
|
32
|
+
readonly loadOpsPerItem: number;
|
|
33
|
+
readonly storeOpsPerItem: number;
|
|
34
|
+
readonly scalarValueOpsPerItem: number;
|
|
35
|
+
readonly arithmeticOpsPerItem: number;
|
|
36
|
+
readonly divisionOpsPerItem: number;
|
|
37
|
+
readonly comparisonOpsPerItem: number;
|
|
38
|
+
readonly selectOpsPerItem: number;
|
|
39
|
+
readonly weightedOpsPerItem: number;
|
|
40
|
+
readonly simdSuitability: number;
|
|
41
|
+
readonly branchPressure: number;
|
|
42
|
+
}
|
|
43
|
+
export interface ResidentWasmProgram {
|
|
44
|
+
readonly version: 1;
|
|
45
|
+
readonly regionId: string;
|
|
46
|
+
readonly words: Uint32Array;
|
|
47
|
+
readonly fieldNames: readonly string[];
|
|
48
|
+
readonly captureNames: readonly string[];
|
|
49
|
+
readonly operationCount: number;
|
|
50
|
+
readonly maxStackDepth: number;
|
|
51
|
+
readonly costProfile?: ResidentWasmCostProfile;
|
|
52
|
+
readonly directModuleBytes?: Uint8Array;
|
|
53
|
+
readonly directEntrypoint?: "resident_execute_direct";
|
|
54
|
+
readonly directSimdModuleBytes?: Uint8Array;
|
|
55
|
+
readonly directSimdEntrypoint?: "resident_execute_direct_simd";
|
|
56
|
+
readonly directSharedSimdModuleBytes?: Uint8Array;
|
|
57
|
+
readonly directSharedSimdEntrypoint?: "resident_execute_direct_simd";
|
|
58
|
+
}
|
|
59
|
+
export type ResidentWasmBackend = "wasm-aot-simd" | "wasm-aot-scalar" | "wasm-simd" | "wasm-scalar";
|
|
60
|
+
type ResidentDirectWasmExecute = (columnPointersPointer: number, rangesPointer: number, rangeCount: number, capturesPointer: number) => number;
|
|
61
|
+
interface ResidentWasmExports extends WebAssembly.Exports {
|
|
62
|
+
resident_alloc(bytes: number, alignment: number): number;
|
|
63
|
+
resident_reset_allocator(): void;
|
|
64
|
+
resident_simd_enabled(): number;
|
|
65
|
+
resident_execute(programPointer: number, programWords: number, columnPointersPointer: number, columnCount: number, rangesPointer: number, rangeCount: number, capturesPointer: number, captureCount: number): number;
|
|
66
|
+
}
|
|
67
|
+
export interface ResidentWasmRuntime {
|
|
68
|
+
readonly memory: WebAssembly.Memory;
|
|
69
|
+
readonly instance: WebAssembly.Instance;
|
|
70
|
+
readonly exports: ResidentWasmExports;
|
|
71
|
+
readonly variant: ResidentWasmVariant;
|
|
72
|
+
readonly shared: boolean;
|
|
73
|
+
readonly fixedByteLength: number;
|
|
74
|
+
readonly sealed: boolean;
|
|
75
|
+
allocate(bytes: number, alignment?: number): number;
|
|
76
|
+
seal(): void;
|
|
77
|
+
}
|
|
78
|
+
export interface ResidentWasmBinding {
|
|
79
|
+
readonly runtime: ResidentWasmRuntime;
|
|
80
|
+
readonly program: ResidentWasmProgram;
|
|
81
|
+
readonly buffer: WasmResidentBuffer;
|
|
82
|
+
readonly length: number;
|
|
83
|
+
readonly programPointer: number;
|
|
84
|
+
readonly columnPointersPointer: number;
|
|
85
|
+
readonly columnPointers: Uint32Array;
|
|
86
|
+
readonly rangesPointer: number;
|
|
87
|
+
readonly ranges: Uint32Array;
|
|
88
|
+
readonly capturesPointer: number;
|
|
89
|
+
readonly captures: Float32Array;
|
|
90
|
+
readonly controlPointer: number;
|
|
91
|
+
readonly control: Int32Array;
|
|
92
|
+
/** Region-specialized direct executor. Shared-memory Workers keep the generic ABI. */
|
|
93
|
+
readonly directExecute?: ResidentDirectWasmExecute;
|
|
94
|
+
readonly directBackend?: Extract<ResidentWasmBackend, "wasm-aot-simd" | "wasm-aot-scalar">;
|
|
95
|
+
readonly boundStorageEpoch: number;
|
|
96
|
+
readonly boundMemoryBuffer: ArrayBufferLike;
|
|
97
|
+
}
|
|
98
|
+
export interface ResidentWasmExecutionMetrics {
|
|
99
|
+
readonly backend: ResidentWasmBackend;
|
|
100
|
+
readonly computeMs: number;
|
|
101
|
+
readonly transferBytes: 0;
|
|
102
|
+
readonly transferMs: 0;
|
|
103
|
+
readonly materializationBytes: 0;
|
|
104
|
+
readonly materializationMs: 0;
|
|
105
|
+
readonly readbackBytes: 0;
|
|
106
|
+
readonly readbackMs: 0;
|
|
107
|
+
readonly synchronizationBytes: number;
|
|
108
|
+
readonly synchronizationMs: number;
|
|
109
|
+
readonly totalMs: number;
|
|
110
|
+
readonly wasmCalls: 1;
|
|
111
|
+
readonly storageEpoch: number;
|
|
112
|
+
readonly contentVersion: number;
|
|
113
|
+
}
|
|
114
|
+
export interface ResidentWasmExecutionOptions {
|
|
115
|
+
readonly ranges?: readonly Readonly<{
|
|
116
|
+
start: number;
|
|
117
|
+
end: number;
|
|
118
|
+
}>[];
|
|
119
|
+
readonly captures?: Float32Array;
|
|
120
|
+
}
|
|
121
|
+
export type ResidentAdaptiveBackendChoice = "packed-js" | "wasm" | "calibrate";
|
|
122
|
+
export interface ResidentAdaptiveSchedulerSnapshot {
|
|
123
|
+
readonly choice: ResidentAdaptiveBackendChoice;
|
|
124
|
+
readonly activeRows: number;
|
|
125
|
+
readonly weightedWork: number;
|
|
126
|
+
readonly predictedJsMs: number | null;
|
|
127
|
+
readonly predictedWasmMs: number | null;
|
|
128
|
+
readonly jsSamples: number;
|
|
129
|
+
readonly wasmSamples: number;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Predict JS vs AOT SIMD from compiler-known kernel cost and the actual dirty
|
|
133
|
+
* row count. Only the uncertain crossover band is benchmarked. Measured
|
|
134
|
+
* samples continuously replace the conservative bootstrap thresholds with a
|
|
135
|
+
* per-region linear cost model.
|
|
136
|
+
*/
|
|
137
|
+
export declare class ResidentAdaptiveNativeScheduler {
|
|
138
|
+
#private;
|
|
139
|
+
readonly lowWorkThreshold: number;
|
|
140
|
+
readonly highWorkThreshold: number;
|
|
141
|
+
readonly minimumPredictionMargin: number;
|
|
142
|
+
readonly sampleCapacity: number;
|
|
143
|
+
constructor(options?: Readonly<{
|
|
144
|
+
lowWorkThreshold?: number;
|
|
145
|
+
highWorkThreshold?: number;
|
|
146
|
+
minimumPredictionMargin?: number;
|
|
147
|
+
sampleCapacity?: number;
|
|
148
|
+
}>);
|
|
149
|
+
work(binding: ResidentWasmBinding, options?: ResidentWasmExecutionOptions): Readonly<{
|
|
150
|
+
activeRows: number;
|
|
151
|
+
weightedWork: number;
|
|
152
|
+
}>;
|
|
153
|
+
choose(binding: ResidentWasmBinding, options?: ResidentWasmExecutionOptions): ResidentAdaptiveBackendChoice;
|
|
154
|
+
record(backend: "packed-js" | "wasm", binding: ResidentWasmBinding, options: ResidentWasmExecutionOptions, totalMs: number): void;
|
|
155
|
+
snapshot(): ResidentAdaptiveSchedulerSnapshot;
|
|
156
|
+
}
|
|
157
|
+
/** A fixed-size memory cannot detach resident views through `memory.grow()`. */
|
|
158
|
+
export declare function createResidentWasmMemory(byteLength: number, shared?: boolean): WebAssembly.Memory;
|
|
159
|
+
/**
|
|
160
|
+
* Instantiate SIMD when the engine validates it, otherwise use the checked-in
|
|
161
|
+
* scalar module. Both variants import the caller's already-resident memory.
|
|
162
|
+
*/
|
|
163
|
+
export declare function instantiateResidentWasmRuntime(options: Readonly<{
|
|
164
|
+
memory: WebAssembly.Memory;
|
|
165
|
+
simdBytes: Uint8Array | ArrayBuffer;
|
|
166
|
+
scalarBytes: Uint8Array | ArrayBuffer;
|
|
167
|
+
preferSimd?: boolean;
|
|
168
|
+
}>): Promise<ResidentWasmRuntime>;
|
|
169
|
+
export type ResidentWasmAssetReader = (url: string) => Promise<Uint8Array | ArrayBuffer>;
|
|
170
|
+
export declare function defaultResidentWasmAssetReader(url: string): Promise<Uint8Array | ArrayBuffer>;
|
|
171
|
+
/** Load the copied package assets without making every consumer inject bytes. */
|
|
172
|
+
export declare function loadDefaultResidentWasmRuntime(options: Readonly<{
|
|
173
|
+
memory: WebAssembly.Memory;
|
|
174
|
+
preferSimd?: boolean;
|
|
175
|
+
assetReader?: ResidentWasmAssetReader;
|
|
176
|
+
}>): Promise<ResidentWasmRuntime>;
|
|
177
|
+
/** Allocate the authoritative columns and all fixed ABI metadata in one memory. */
|
|
178
|
+
export declare function bindResidentWasmRegion(runtime: ResidentWasmRuntime, layout: BufferLayout, program: ResidentWasmProgram, options?: Readonly<{
|
|
179
|
+
maxRanges?: number;
|
|
180
|
+
}>): ResidentWasmBinding;
|
|
181
|
+
export declare function prepareResidentWasmExecution(binding: ResidentWasmBinding, options: ResidentWasmExecutionOptions): Readonly<{
|
|
182
|
+
rangeCount: number;
|
|
183
|
+
synchronizationBytes: number;
|
|
184
|
+
synchronizationMs: number;
|
|
185
|
+
}>;
|
|
186
|
+
/** Convert logical row ranges to byte ranges for every resident SoA column. */
|
|
187
|
+
export declare function markResidentWasmRanges(binding: ResidentWasmBinding, ranges?: readonly Readonly<{
|
|
188
|
+
start: number;
|
|
189
|
+
end: number;
|
|
190
|
+
}>[]): number;
|
|
191
|
+
/** Execute one fused program call without packing rows or reconstructing objects. */
|
|
192
|
+
export declare function executeResidentWasm(binding: ResidentWasmBinding, options?: ResidentWasmExecutionOptions): ResidentWasmExecutionMetrics;
|
|
193
|
+
export type ResidentWasmPromotionDecision = "benchmarking" | "wasm" | "packed-js" | "rejected";
|
|
194
|
+
export interface ResidentWasmPromotionSnapshot {
|
|
195
|
+
readonly decision: ResidentWasmPromotionDecision;
|
|
196
|
+
readonly reason: ResidentNativeDecisionReason;
|
|
197
|
+
readonly variant: ResidentWasmVariant;
|
|
198
|
+
readonly backend: ResidentWasmBackend;
|
|
199
|
+
readonly baseline: ExecutionAggregate | null;
|
|
200
|
+
readonly candidate: ExecutionAggregate | null;
|
|
201
|
+
readonly measuredRatio: number | null;
|
|
202
|
+
readonly executions: number;
|
|
203
|
+
readonly scheduler: ResidentAdaptiveSchedulerSnapshot;
|
|
204
|
+
readonly transferBytes: 0;
|
|
205
|
+
readonly materializationBytes: 0;
|
|
206
|
+
readonly readbackBytes: 0;
|
|
207
|
+
readonly synchronizationBytes: number;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Alternate the mandatory packed-JS and WASM executors over the same
|
|
211
|
+
* authoritative TypedArrays, then cache promotion only after a measured win.
|
|
212
|
+
*/
|
|
213
|
+
export declare class ResidentWasmPromotion {
|
|
214
|
+
#private;
|
|
215
|
+
readonly telemetry: ExecutionTelemetry;
|
|
216
|
+
readonly binding: ResidentWasmBinding;
|
|
217
|
+
readonly region: ExecutionRegion;
|
|
218
|
+
readonly packedJs: () => void;
|
|
219
|
+
readonly minimumSamples: number;
|
|
220
|
+
readonly minimumMargin: number;
|
|
221
|
+
readonly experimental: boolean;
|
|
222
|
+
readonly scheduler: ResidentAdaptiveNativeScheduler;
|
|
223
|
+
constructor(options: Readonly<{
|
|
224
|
+
binding: ResidentWasmBinding;
|
|
225
|
+
region: ExecutionRegion;
|
|
226
|
+
packedJs: () => void;
|
|
227
|
+
telemetry?: ExecutionTelemetry;
|
|
228
|
+
minimumSamples?: number;
|
|
229
|
+
minimumMargin?: number;
|
|
230
|
+
scheduler?: ResidentAdaptiveNativeScheduler;
|
|
231
|
+
/** Explicit opt-in; omitted means this experimental backend is disabled. */
|
|
232
|
+
experimental?: boolean;
|
|
233
|
+
}>);
|
|
234
|
+
execute(options?: ResidentWasmExecutionOptions): "packed-js" | ResidentWasmBackend;
|
|
235
|
+
snapshot(): ResidentWasmPromotionSnapshot;
|
|
236
|
+
}
|
|
237
|
+
export {};
|
|
238
|
+
//# sourceMappingURL=resident-wasm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resident-wasm.d.ts","sourceRoot":"","sources":["../src/resident-wasm.ts"],"names":[],"mappings":"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"}
|