@graphty/webgpu-graph-algorithms 0.2.1 → 0.4.0
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/README.md +50 -39
- package/dist/browser.js +1 -1
- package/dist/chunks/{context-E6iKaeuJ.js → context-CRbw2Wyo.js} +178 -19
- package/dist/chunks/{context-E6iKaeuJ.js.map → context-CRbw2Wyo.js.map} +1 -1
- package/dist/node.js +1 -1
- package/dist/src/accelerator.d.ts +12 -7
- package/dist/src/accelerator.d.ts.map +1 -1
- package/dist/src/accelerator.js +88 -7
- package/dist/src/accelerator.js.map +1 -1
- package/dist/src/algorithms/components.d.ts +30 -0
- package/dist/src/algorithms/components.d.ts.map +1 -0
- package/dist/src/algorithms/components.js +300 -0
- package/dist/src/algorithms/components.js.map +1 -0
- package/dist/src/algorithms/pagerank.d.ts +39 -0
- package/dist/src/algorithms/pagerank.d.ts.map +1 -0
- package/dist/src/algorithms/pagerank.js +298 -0
- package/dist/src/algorithms/pagerank.js.map +1 -0
- package/dist/src/algorithms/power-iteration.d.ts +109 -0
- package/dist/src/algorithms/power-iteration.d.ts.map +1 -0
- package/dist/src/algorithms/power-iteration.js +206 -0
- package/dist/src/algorithms/power-iteration.js.map +1 -0
- package/dist/src/algorithms/scope.d.ts +26 -0
- package/dist/src/algorithms/scope.d.ts.map +1 -0
- package/dist/src/algorithms/scope.js +41 -0
- package/dist/src/algorithms/scope.js.map +1 -0
- package/dist/src/algorithms/spectral.d.ts +50 -0
- package/dist/src/algorithms/spectral.d.ts.map +1 -0
- package/dist/src/algorithms/spectral.js +247 -0
- package/dist/src/algorithms/spectral.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/dispatch.d.ts +4 -1
- package/dist/src/kernel/dispatch.d.ts.map +1 -1
- package/dist/src/kernel/dispatch.js +12 -5
- package/dist/src/kernel/dispatch.js.map +1 -1
- package/dist/src/kernels.d.ts +20 -4
- package/dist/src/kernels.d.ts.map +1 -1
- package/dist/src/kernels.js +172 -2
- package/dist/src/kernels.js.map +1 -1
- package/dist/src/layouts/seed.d.ts +3 -1
- package/dist/src/layouts/seed.d.ts.map +1 -1
- package/dist/src/layouts/seed.js +3 -1
- package/dist/src/layouts/seed.js.map +1 -1
- package/dist/src/memory/residency.d.ts.map +1 -1
- package/dist/src/memory/residency.js +164 -11
- package/dist/src/memory/residency.js.map +1 -1
- package/dist/src/primitives/core-shape.d.ts +41 -0
- package/dist/src/primitives/core-shape.d.ts.map +1 -0
- package/dist/src/primitives/core-shape.js +89 -0
- package/dist/src/primitives/core-shape.js.map +1 -0
- package/dist/src/primitives/segmented-reduce.d.ts.map +1 -1
- package/dist/src/primitives/segmented-reduce.js +4 -30
- package/dist/src/primitives/segmented-reduce.js.map +1 -1
- package/dist/src/primitives/spmv.d.ts +56 -0
- package/dist/src/primitives/spmv.d.ts.map +1 -0
- package/dist/src/primitives/spmv.js +101 -0
- package/dist/src/primitives/spmv.js.map +1 -0
- package/dist/src/types/accelerator.d.ts +24 -31
- package/dist/src/types/accelerator.d.ts.map +1 -1
- package/dist/src/types/accelerator.js +5 -4
- package/dist/src/types/accelerator.js.map +1 -1
- package/dist/src/types/algorithms.d.ts +74 -0
- package/dist/src/types/algorithms.d.ts.map +1 -0
- package/dist/src/types/algorithms.js +18 -0
- package/dist/src/types/algorithms.js.map +1 -0
- package/dist/src/types/layout.d.ts +2 -2
- package/dist/src/types/layout.d.ts.map +1 -1
- package/dist/src/types/layout.js +1 -1
- package/dist/src/types/options.d.ts +8 -49
- package/dist/src/types/options.d.ts.map +1 -1
- package/dist/src/types/options.js +5 -3
- package/dist/src/types/options.js.map +1 -1
- package/dist/src/wgsl/pr-finalize.wgsl.d.ts +11 -0
- package/dist/src/wgsl/pr-finalize.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/pr-finalize.wgsl.js +36 -0
- package/dist/src/wgsl/pr-finalize.wgsl.js.map +1 -0
- package/dist/src/wgsl/pr-scale.wgsl.d.ts +14 -0
- package/dist/src/wgsl/pr-scale.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/pr-scale.wgsl.js +48 -0
- package/dist/src/wgsl/pr-scale.wgsl.js.map +1 -0
- package/dist/src/wgsl/spmv-pull.wgsl.d.ts +15 -0
- package/dist/src/wgsl/spmv-pull.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/spmv-pull.wgsl.js +47 -0
- package/dist/src/wgsl/spmv-pull.wgsl.js.map +1 -0
- package/dist/src/wgsl/wcc-compress.wgsl.d.ts +9 -0
- package/dist/src/wgsl/wcc-compress.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/wcc-compress.wgsl.js +26 -0
- package/dist/src/wgsl/wcc-compress.wgsl.js.map +1 -0
- package/dist/src/wgsl/wcc-link-edges.wgsl.d.ts +13 -0
- package/dist/src/wgsl/wcc-link-edges.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/wcc-link-edges.wgsl.js +46 -0
- package/dist/src/wgsl/wcc-link-edges.wgsl.js.map +1 -0
- package/dist/src/wgsl/wcc-link-sample.wgsl.d.ts +11 -0
- package/dist/src/wgsl/wcc-link-sample.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/wcc-link-sample.wgsl.js +45 -0
- package/dist/src/wgsl/wcc-link-sample.wgsl.js.map +1 -0
- package/dist/src/wgsl/wcc-sample.wgsl.d.ts +10 -0
- package/dist/src/wgsl/wcc-sample.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/wcc-sample.wgsl.js +18 -0
- package/dist/src/wgsl/wcc-sample.wgsl.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/webgpu-graph-algorithms.js +1550 -29
- package/dist/webgpu-graph-algorithms.js.map +1 -1
- package/package.json +5 -4
- package/src/accelerator.ts +104 -8
- package/src/algorithms/components.ts +348 -0
- package/src/algorithms/pagerank.ts +343 -0
- package/src/algorithms/power-iteration.ts +278 -0
- package/src/algorithms/scope.ts +52 -0
- package/src/algorithms/spectral.ts +300 -0
- package/src/index.ts +20 -1
- package/src/kernel/dispatch.ts +12 -5
- package/src/kernels.ts +206 -5
- package/src/layouts/seed.ts +3 -1
- package/src/memory/residency.ts +200 -11
- package/src/primitives/core-shape.ts +103 -0
- package/src/primitives/segmented-reduce.ts +4 -36
- package/src/primitives/spmv.ts +155 -0
- package/src/types/accelerator.ts +40 -32
- package/src/types/algorithms.ts +83 -0
- package/src/types/layout.ts +2 -2
- package/src/types/options.ts +22 -53
- package/src/wgsl/pr-finalize.wgsl.ts +36 -0
- package/src/wgsl/pr-scale.wgsl.ts +48 -0
- package/src/wgsl/spmv-pull.wgsl.ts +47 -0
- package/src/wgsl/wcc-compress.wgsl.ts +26 -0
- package/src/wgsl/wcc-link-edges.wgsl.ts +46 -0
- package/src/wgsl/wcc-link-sample.wgsl.ts +45 -0
- package/src/wgsl/wcc-sample.wgsl.ts +18 -0
package/dist/src/kernels.js
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
* test and PipelineCache.warm() iterate this table. P1-T4 lands degree, reduce, fill, fa2-repulsion-exact (K3)
|
|
7
7
|
* and fa2-speed-finalize (K4) together with every generated block of contract 3.10.2; P2-T2 lands
|
|
8
8
|
* segmented-reduce; P3-T2 adds fa2-stats-finalize (K1), fa2-attraction (K2), fa2-integrate (K5) and
|
|
9
|
-
* fa2-to-scene
|
|
9
|
+
* fa2-to-scene; M8b-T3 adds the seven P7 entries: spmv-pull, pr-scale, pr-finalize, wcc-link-sample,
|
|
10
|
+
* wcc-link-edges, wcc-compress and wcc-sample. This file is the only importer of src/wgsl/** (spec 3.2;
|
|
11
|
+
* test/layers.test.ts).
|
|
10
12
|
*/
|
|
11
13
|
import { STATE_HEADER_BYTES } from "./constants.js";
|
|
12
14
|
import { WebGpuGraphError } from "./errors.js";
|
|
@@ -19,8 +21,15 @@ import { fa2SpeedFinalizeWgsl } from "./wgsl/fa2-speed-finalize.wgsl.js";
|
|
|
19
21
|
import { fa2StatsFinalizeWgsl } from "./wgsl/fa2-stats-finalize.wgsl.js";
|
|
20
22
|
import { fa2ToSceneWgsl } from "./wgsl/fa2-to-scene.wgsl.js";
|
|
21
23
|
import { fillWgsl } from "./wgsl/fill.wgsl.js";
|
|
24
|
+
import { prFinalizeWgsl } from "./wgsl/pr-finalize.wgsl.js";
|
|
25
|
+
import { prScaleWgsl } from "./wgsl/pr-scale.wgsl.js";
|
|
22
26
|
import { reduceWgsl } from "./wgsl/reduce.wgsl.js";
|
|
23
27
|
import { segmentedReduceWgsl } from "./wgsl/segmented-reduce.wgsl.js";
|
|
28
|
+
import { spmvPullWgsl } from "./wgsl/spmv-pull.wgsl.js";
|
|
29
|
+
import { wccCompressWgsl } from "./wgsl/wcc-compress.wgsl.js";
|
|
30
|
+
import { wccLinkEdgesWgsl } from "./wgsl/wcc-link-edges.wgsl.js";
|
|
31
|
+
import { wccLinkSampleWgsl } from "./wgsl/wcc-link-sample.wgsl.js";
|
|
32
|
+
import { wccSampleWgsl } from "./wgsl/wcc-sample.wgsl.js";
|
|
24
33
|
// ---- the generated blocks (spec 5.3; contract 3.10.2): field order = byte order, offsets in the JSDoc
|
|
25
34
|
/** `RangeParams` (uniform, 32 B): rows `[start, end)` @0 / @4 of the dispatch, the bound arc window `[arcBase, arcEnd)` @8 / @12 (0 and arcCount when not windowed), `accumulate` @16 (1 combines into `out[i]` instead of overwriting: the P4 windowed loop), `n` @20 (the node count that bounds neighbour indices), `pad0` @24, `pad1` @28. */
|
|
26
35
|
export const RANGE_PARAMS = UniformBlock.define("RangeParams", [
|
|
@@ -115,6 +124,56 @@ export const FA2_PARTIAL = UniformBlock.define("Fa2Partial", [
|
|
|
115
124
|
["swingTraction", "vec2f"],
|
|
116
125
|
["dispFree", "vec2f"],
|
|
117
126
|
], { layout: "storage" });
|
|
127
|
+
/** `SpmvParams` (uniform, 32 B; spec 8.2): `n` @0 rows of the pull, the bound arc window `[arcBase, arcEnd)` @4 / @8 (0 and arcCount when not windowed), the grid-stride step `stride` @12, `alpha` @16, `beta` @20 (the `1 - alpha` term), `uniformP` @24 (the uniform personalization mass `1 / n`, 0 for a pure SpMV), `pad0` @28. */
|
|
128
|
+
export const SPMV_PARAMS = UniformBlock.define("SpmvParams", [
|
|
129
|
+
["n", "u32"],
|
|
130
|
+
["arcBase", "u32"],
|
|
131
|
+
["arcEnd", "u32"],
|
|
132
|
+
["stride", "u32"],
|
|
133
|
+
["alpha", "f32"],
|
|
134
|
+
["beta", "f32"],
|
|
135
|
+
["uniformP", "f32"],
|
|
136
|
+
["pad0", "u32"],
|
|
137
|
+
]);
|
|
138
|
+
/** `PrParams` (uniform, 32 B; spec 8.2): `n` @0, `groups` @4 (the per-workgroup partial count the finalize folds), `iteration` @8 (1-based), `trackConvergence` @12 (1 records firstConverged), `convergeThreshold` @16 (`tolerance * n`, the design's `delta < tol * n`), `pad0` @20, `pad1` @24, `pad2` @28. */
|
|
139
|
+
export const PR_PARAMS = UniformBlock.define("PrParams", [
|
|
140
|
+
["n", "u32"],
|
|
141
|
+
["groups", "u32"],
|
|
142
|
+
["iteration", "u32"],
|
|
143
|
+
["trackConvergence", "u32"],
|
|
144
|
+
["convergeThreshold", "f32"],
|
|
145
|
+
["pad0", "u32"],
|
|
146
|
+
["pad1", "u32"],
|
|
147
|
+
["pad2", "u32"],
|
|
148
|
+
]);
|
|
149
|
+
/**
|
|
150
|
+
* `PrPartial` (storage record, 32 B; spec 8.2). Element 0 is the HEADER, whose first 16 bytes are exactly the four
|
|
151
|
+
* fields the design names -- `danglingMass` @0, `delta` @4, `firstConvergedIteration` @8, `iteration` @12 -- plus
|
|
152
|
+
* `norm` @16, which M8b adds so HITS / eigenvector / Katz keep their normaliser on the device (PD-10). Element
|
|
153
|
+
* `1 + g` is workgroup g's partial: it uses `danglingMass`, `delta` and `norm` as three sums and leaves the two u32
|
|
154
|
+
* fields zero.
|
|
155
|
+
*/
|
|
156
|
+
export const PR_PARTIAL = UniformBlock.define("PrPartial", [
|
|
157
|
+
["danglingMass", "f32"],
|
|
158
|
+
["delta", "f32"],
|
|
159
|
+
["firstConverged", "u32"],
|
|
160
|
+
["iteration", "u32"],
|
|
161
|
+
["norm", "f32"],
|
|
162
|
+
["pad0", "f32"],
|
|
163
|
+
["pad1", "f32"],
|
|
164
|
+
["pad2", "f32"],
|
|
165
|
+
], { layout: "storage" });
|
|
166
|
+
/** `WccParams` (uniform, 32 B; spec 8.3): `n` @0, `items` @4 (rows for a sample round, edges for an edge round, 1024 for the sampler), `stride` @8, `r` @12 (the neighbour index of the sampled round, and the sampler's seed), `flagIndex` @16 (the changed word inside `comp`, PD-4), `giant` @20 (`U32_MAX` before the sample), `maxSteps` @24, `pad0` @28. */
|
|
167
|
+
export const WCC_PARAMS = UniformBlock.define("WccParams", [
|
|
168
|
+
["n", "u32"],
|
|
169
|
+
["items", "u32"],
|
|
170
|
+
["stride", "u32"],
|
|
171
|
+
["r", "u32"],
|
|
172
|
+
["flagIndex", "u32"],
|
|
173
|
+
["giant", "u32"],
|
|
174
|
+
["maxSteps", "u32"],
|
|
175
|
+
["pad0", "u32"],
|
|
176
|
+
]);
|
|
118
177
|
// ---- the entries (contract 3.10.1; group 0 = graph, 1 = state, 2 = params, 3 = cold)
|
|
119
178
|
/**
|
|
120
179
|
* One binding declaration of contract 3.9, so the tables below read like the rows of 3.10.1.
|
|
@@ -304,13 +363,117 @@ const FA2_TO_SCENE = {
|
|
|
304
363
|
snippetSlots: [],
|
|
305
364
|
phase: "P3",
|
|
306
365
|
};
|
|
366
|
+
/** `spmv-pull` (spec 8.10): the grid-stride pull SpMV over the reverse adjacency; HAS_PERSONALIZATION / USE_DANGLING plus the standard USE_PERM / HAS_WEIGHTS; 8 storage bindings (the design's count). */
|
|
367
|
+
const SPMV_PULL = {
|
|
368
|
+
id: "spmv-pull",
|
|
369
|
+
body: spmvPullWgsl,
|
|
370
|
+
entryPoint: "spmv_pull",
|
|
371
|
+
bindings: GRAPH_SLOTS.concat(decl(1, 0, "xNorm", "storage-ro", "array<f32>"), decl(1, 1, "rankOut", "storage", "array<f32>"), decl(1, 2, "personalization", "storage-ro", "array<f32>"), decl(1, 3, "partials", "storage-ro", "array<PrPartial>"), decl(2, 0, "P", "uniform", "SpmvParams")),
|
|
372
|
+
overrideDecls: [
|
|
373
|
+
{ name: "HAS_PERSONALIZATION", type: "bool", default: false },
|
|
374
|
+
{ name: "USE_DANGLING", type: "bool", default: false },
|
|
375
|
+
],
|
|
376
|
+
uniforms: [SPMV_PARAMS, PR_PARTIAL],
|
|
377
|
+
needs: [],
|
|
378
|
+
snippetSlots: [],
|
|
379
|
+
phase: "P7",
|
|
380
|
+
};
|
|
381
|
+
/** `pr-scale` (spec 8.2 dispatch (a), 8.10): the per-node normaliser and the per-workgroup partials; NORM_MODE 0 PageRank / 1 L1 pass / 2 L2 pass / 3 scale / 4 identity; 5 storage bindings; calls the reduction helpers. */
|
|
382
|
+
const PR_SCALE = {
|
|
383
|
+
id: "pr-scale",
|
|
384
|
+
body: prScaleWgsl,
|
|
385
|
+
entryPoint: "pr_scale",
|
|
386
|
+
bindings: [
|
|
387
|
+
decl(1, 0, "rankIn", "storage-ro", "array<f32>"),
|
|
388
|
+
decl(1, 1, "rankPrev", "storage-ro", "array<f32>"),
|
|
389
|
+
decl(1, 2, "outWeightSum", "storage-ro", "array<f32>"),
|
|
390
|
+
decl(1, 3, "xNorm", "storage", "array<f32>"),
|
|
391
|
+
decl(1, 4, "partials", "storage", "array<PrPartial>"),
|
|
392
|
+
decl(2, 0, "P", "uniform", "PrParams"),
|
|
393
|
+
],
|
|
394
|
+
overrideDecls: [{ name: "NORM_MODE", type: "u32", default: 0 }],
|
|
395
|
+
uniforms: [PR_PARAMS, PR_PARTIAL],
|
|
396
|
+
needs: ["subgroups"],
|
|
397
|
+
snippetSlots: [],
|
|
398
|
+
phase: "P7",
|
|
399
|
+
};
|
|
400
|
+
/** `pr-finalize` (spec 8.2 dispatch (b), 8.10): the one-workgroup fold of the partials into the header at partials[0] and the firstConverged record; NORM_MODE 2 takes the square root; 1 storage binding; calls the reduction helpers. */
|
|
401
|
+
const PR_FINALIZE = {
|
|
402
|
+
id: "pr-finalize",
|
|
403
|
+
body: prFinalizeWgsl,
|
|
404
|
+
entryPoint: "pr_finalize",
|
|
405
|
+
bindings: [decl(1, 0, "partials", "storage", "array<PrPartial>"), decl(2, 0, "P", "uniform", "PrParams")],
|
|
406
|
+
overrideDecls: [{ name: "NORM_MODE", type: "u32", default: 0 }],
|
|
407
|
+
uniforms: [PR_PARAMS, PR_PARTIAL],
|
|
408
|
+
needs: ["subgroups"],
|
|
409
|
+
snippetSlots: [],
|
|
410
|
+
phase: "P7",
|
|
411
|
+
};
|
|
412
|
+
/** `wcc-link-sample` (spec 8.3): Afforest's sampled link round over the CSR rows (every vertex links its r-th neighbour); the standard USE_PERM / HAS_WEIGHTS only; 5 storage bindings (the four graph slots and the atomic `comp`, whose word at P.flagIndex is the changed flag, PD-4). */
|
|
413
|
+
const WCC_LINK_SAMPLE = {
|
|
414
|
+
id: "wcc-link-sample",
|
|
415
|
+
body: wccLinkSampleWgsl,
|
|
416
|
+
entryPoint: "wcc_link_sample",
|
|
417
|
+
bindings: GRAPH_SLOTS.concat(decl(1, 0, "comp", "storage", "array<atomic<u32>>"), decl(2, 0, "P", "uniform", "WccParams")),
|
|
418
|
+
overrideDecls: [],
|
|
419
|
+
uniforms: [WCC_PARAMS],
|
|
420
|
+
needs: [],
|
|
421
|
+
snippetSlots: [],
|
|
422
|
+
phase: "P7",
|
|
423
|
+
};
|
|
424
|
+
/** `wcc-link-edges` (spec 8.3, 8.10): Afforest's each-edge-once link round over the edge list; no overrides; 3 storage bindings (the design's count: edgeSrc, edgeDst and the atomic `comp` carrying the changed flag). */
|
|
425
|
+
const WCC_LINK_EDGES = {
|
|
426
|
+
id: "wcc-link-edges",
|
|
427
|
+
body: wccLinkEdgesWgsl,
|
|
428
|
+
entryPoint: "wcc_link_edges",
|
|
429
|
+
bindings: [
|
|
430
|
+
decl(1, 0, "edgeSrc", "storage-ro", "array<u32>"),
|
|
431
|
+
decl(1, 1, "edgeDst", "storage-ro", "array<u32>"),
|
|
432
|
+
decl(1, 2, "comp", "storage", "array<atomic<u32>>"),
|
|
433
|
+
decl(2, 0, "P", "uniform", "WccParams"),
|
|
434
|
+
],
|
|
435
|
+
overrideDecls: [],
|
|
436
|
+
uniforms: [WCC_PARAMS],
|
|
437
|
+
needs: [],
|
|
438
|
+
snippetSlots: [],
|
|
439
|
+
phase: "P7",
|
|
440
|
+
};
|
|
441
|
+
/** `wcc-compress` (spec 8.3, 8.10): Afforest's bounded pointer-jumping compress; no overrides; 1 storage binding. */
|
|
442
|
+
const WCC_COMPRESS = {
|
|
443
|
+
id: "wcc-compress",
|
|
444
|
+
body: wccCompressWgsl,
|
|
445
|
+
entryPoint: "wcc_compress",
|
|
446
|
+
bindings: [decl(1, 0, "comp", "storage", "array<atomic<u32>>"), decl(2, 0, "P", "uniform", "WccParams")],
|
|
447
|
+
overrideDecls: [],
|
|
448
|
+
uniforms: [WCC_PARAMS],
|
|
449
|
+
needs: [],
|
|
450
|
+
snippetSlots: [],
|
|
451
|
+
phase: "P7",
|
|
452
|
+
};
|
|
453
|
+
/** `wcc-sample` (spec 8.3, 8.10): the component-label sample of P.items pseudo-random vertices the host takes the mode of (PD-12); no overrides; 2 storage bindings. */
|
|
454
|
+
const WCC_SAMPLE = {
|
|
455
|
+
id: "wcc-sample",
|
|
456
|
+
body: wccSampleWgsl,
|
|
457
|
+
entryPoint: "wcc_sample",
|
|
458
|
+
bindings: [
|
|
459
|
+
decl(1, 0, "comp", "storage", "array<atomic<u32>>"),
|
|
460
|
+
decl(1, 1, "hist", "storage", "array<u32>"),
|
|
461
|
+
decl(2, 0, "P", "uniform", "WccParams"),
|
|
462
|
+
],
|
|
463
|
+
overrideDecls: [],
|
|
464
|
+
uniforms: [WCC_PARAMS],
|
|
465
|
+
needs: [],
|
|
466
|
+
snippetSlots: [],
|
|
467
|
+
phase: "P7",
|
|
468
|
+
};
|
|
307
469
|
/**
|
|
308
470
|
* The entries by id, in dispatch order. PLAN DECISION: `KernelId` is declared in full (contract 3.10) while the
|
|
309
471
|
* entries landed phase by phase, so the table is built as a Partial record and exported below through the
|
|
310
472
|
* contract's `Readonly<Record<KernelId, KernelEntry>>` type by one assertion; the runtime membership check of
|
|
311
473
|
* `entryOf` is the E_INVALID_ARGUMENT the contract documents for a JS caller's unknown id. P1-T4 landed the five
|
|
312
474
|
* P1 entries, P2-T2 `"segmented-reduce"`, and P3-T2 `"fa2-stats-finalize"`, `"fa2-attraction"`, `"fa2-integrate"`
|
|
313
|
-
* and `"fa2-to-scene"
|
|
475
|
+
* and `"fa2-to-scene"`; M8b-T3 landed the seven P7 entries, so every member of `KernelId` is present and the
|
|
476
|
+
* assertion is exact.
|
|
314
477
|
*/
|
|
315
478
|
const REGISTRY = Object.freeze({
|
|
316
479
|
degree: DEGREE,
|
|
@@ -323,6 +486,13 @@ const REGISTRY = Object.freeze({
|
|
|
323
486
|
"fa2-speed-finalize": FA2_SPEED_FINALIZE,
|
|
324
487
|
"fa2-integrate": FA2_INTEGRATE,
|
|
325
488
|
"fa2-to-scene": FA2_TO_SCENE,
|
|
489
|
+
"spmv-pull": SPMV_PULL,
|
|
490
|
+
"pr-scale": PR_SCALE,
|
|
491
|
+
"pr-finalize": PR_FINALIZE,
|
|
492
|
+
"wcc-link-sample": WCC_LINK_SAMPLE,
|
|
493
|
+
"wcc-link-edges": WCC_LINK_EDGES,
|
|
494
|
+
"wcc-compress": WCC_COMPRESS,
|
|
495
|
+
"wcc-sample": WCC_SAMPLE,
|
|
326
496
|
});
|
|
327
497
|
/** THE registry (spec 3.5): every entry, keyed by id. */
|
|
328
498
|
export const KERNELS = REGISTRY;
|
package/dist/src/kernels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernels.js","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kernels.js","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* The CPU port's random number generator, bit for bit, and the NaN-row seeding both paths share (spec 7.2 "Initial
|
|
3
3
|
* positions", 9.3 seedPositions, 7.14 `pos`, 7.19 topology change): a seed gives the same start on the CPU and the
|
|
4
4
|
* GPU because both write the same f32 values in index order. The package carries its own copy of the LCG for its
|
|
5
|
-
* whole life (D27: it cannot import @graphty/layout
|
|
5
|
+
* whole life (D27: it cannot import @graphty/layout at runtime). The CANONICAL copy is
|
|
6
|
+
* layout/src/simulation/seed.ts; this one is cross-tested against it, bit for bit, by
|
|
7
|
+
* test/layouts/seed-cross.test.ts (W1b, Task M5b-T3).
|
|
6
8
|
*/
|
|
7
9
|
import type { F32, GraphSnapshot } from "@graphty/graph-format";
|
|
8
10
|
/** The CPU port's LCG constants (layout/src/utils/random.ts): m = 2^35 - 31, a = 185852, c = 1. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/layouts/seed.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/layouts/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAIhE,mGAAmG;AACnG,eAAO,MAAM,KAAK,cAAc,CAAC;AACjC,0CAA0C;AAC1C,eAAO,MAAM,KAAK,SAAS,CAAC;AAC5B,yCAAyC;AACzC,eAAO,MAAM,KAAK,IAAI,CAAC;AAEvB;;;;GAIG;AACH,qBAAa,GAAG;IACZ,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,KAAK,CAAS;IAEtB;;;OAGG;gBACS,IAAI,EAAE,MAAM,GAAG,IAAI;IAK/B;;;OAGG;IACH,IAAI,IAAI,MAAM;CAIjB;AA0BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CACzB,CAAC,EAAE,aAAa,EAChB,SAAS,EAAE,GAAG,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,GAAG,EAAE,CAAC,GAAG,CAAC,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,EAChC,KAAK,EAAE,KAAK,GAAG,IAAI,GACpB,IAAI,CAgGN"}
|
package/dist/src/layouts/seed.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* The CPU port's random number generator, bit for bit, and the NaN-row seeding both paths share (spec 7.2 "Initial
|
|
3
3
|
* positions", 9.3 seedPositions, 7.14 `pos`, 7.19 topology change): a seed gives the same start on the CPU and the
|
|
4
4
|
* GPU because both write the same f32 values in index order. The package carries its own copy of the LCG for its
|
|
5
|
-
* whole life (D27: it cannot import @graphty/layout
|
|
5
|
+
* whole life (D27: it cannot import @graphty/layout at runtime). The CANONICAL copy is
|
|
6
|
+
* layout/src/simulation/seed.ts; this one is cross-tested against it, bit for bit, by
|
|
7
|
+
* test/layouts/seed-cross.test.ts (W1b, Task M5b-T3).
|
|
6
8
|
*/
|
|
7
9
|
import { WebGpuGraphError } from "../errors.js";
|
|
8
10
|
/** The CPU port's LCG constants (layout/src/utils/random.ts): m = 2^35 - 31, a = 185852, c = 1. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/layouts/seed.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/layouts/seed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"residency.d.ts","sourceRoot":"","sources":["../../../src/memory/residency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEH,KAAK,MAAM,EAEX,KAAK,cAAc,EACnB,KAAK,aAAa,EAErB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"residency.d.ts","sourceRoot":"","sources":["../../../src/memory/residency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEH,KAAK,MAAM,EAEX,KAAK,cAAc,EACnB,KAAK,aAAa,EAErB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAYlE;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EACT,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,oBAAoB,GAAG,MAAM,CAAC;IAC9G,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC5B,EAAE,CAAC;CACP"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* decided from counts and flags, and the arcToEdge / edgeToArc getters are read only when a segment exists. Nothing
|
|
11
11
|
* is freed by garbage collection; the once-only warning above warnUnreleasedSnapshots names the missing release.
|
|
12
12
|
*/
|
|
13
|
+
import { STORAGE_ALIGN } from "../constants.js";
|
|
13
14
|
import { BufferUsage } from "../device/webgpu-constants.js";
|
|
14
15
|
import { WebGpuGraphError } from "../errors.js";
|
|
15
16
|
import { planUpload } from "./upload-plan.js";
|
|
@@ -194,22 +195,38 @@ export class GraphResidency {
|
|
|
194
195
|
});
|
|
195
196
|
}
|
|
196
197
|
/**
|
|
197
|
-
* Uploads (or finds) a view
|
|
198
|
-
*
|
|
199
|
-
*
|
|
198
|
+
* Uploads (or finds) a view: outDegree / inDegree / degreeOrder / reverseDegreeOrder upload one array each;
|
|
199
|
+
* reverse and edgeList (P7) upload their arrays perArray, never into the arena, and are memoised per record so
|
|
200
|
+
* a second call uploads nothing (spec 4.3). coo and mate -> E_UNSUPPORTED until P11. packViews concatenates a
|
|
201
|
+
* reverse or edgeList view into ONE buffer at STORAGE_ALIGN offsets; on any other view `true` is E_UNSUPPORTED
|
|
202
|
+
* { option: "packViews" }.
|
|
200
203
|
* @param s - the snapshot
|
|
201
204
|
* @param name - the view
|
|
202
205
|
* @param options - view options
|
|
203
|
-
* @param options.packViews -
|
|
206
|
+
* @param options.packViews - pack the reverse / edgeList arrays into one buffer (a no-op on an undirected reverse)
|
|
204
207
|
* @returns the view binding
|
|
205
208
|
*/
|
|
206
209
|
view(s, name, options) {
|
|
207
210
|
this.assertLive();
|
|
208
211
|
assertAttached(s);
|
|
209
|
-
|
|
210
|
-
|
|
212
|
+
const packed = options?.packViews === true;
|
|
213
|
+
if (name === "reverse" || name === "edgeList") {
|
|
214
|
+
this.assertNotReleased(s);
|
|
215
|
+
this.assertNonEmpty(s);
|
|
216
|
+
const memoKey = packed ? `${name}:packed` : name;
|
|
217
|
+
const record = this.ensureRecord(s);
|
|
218
|
+
const memo = record.views.get(memoKey);
|
|
219
|
+
if (memo !== undefined) {
|
|
220
|
+
return memo;
|
|
221
|
+
}
|
|
222
|
+
const built = name === "reverse" ? this.buildReverse(s, record, packed) : this.buildEdgeList(s, record, packed);
|
|
223
|
+
record.views.set(memoKey, built);
|
|
224
|
+
return built;
|
|
225
|
+
}
|
|
226
|
+
if (packed) {
|
|
227
|
+
throw new WebGpuGraphError("E_UNSUPPORTED", "packViews applies to the reverse and edgeList views only", {
|
|
211
228
|
option: "packViews",
|
|
212
|
-
hint:
|
|
229
|
+
hint: `the ${name} view uploads one array`,
|
|
213
230
|
});
|
|
214
231
|
}
|
|
215
232
|
let array;
|
|
@@ -246,13 +263,11 @@ export class GraphResidency {
|
|
|
246
263
|
scalars = { segmentOffsets: Array.from(order.segmentOffsets) };
|
|
247
264
|
break;
|
|
248
265
|
}
|
|
249
|
-
case "reverse":
|
|
250
266
|
case "coo":
|
|
251
|
-
case "edgeList":
|
|
252
267
|
case "mate":
|
|
253
|
-
throw new WebGpuGraphError("E_UNSUPPORTED", `the ${name} view is not uploaded before
|
|
268
|
+
throw new WebGpuGraphError("E_UNSUPPORTED", `the ${name} view is not uploaded before P11`, {
|
|
254
269
|
feature: `view:${name}`,
|
|
255
|
-
hint: "
|
|
270
|
+
hint: "outDegree, inDegree, degreeOrder, reverseDegreeOrder, reverse and edgeList are uploaded",
|
|
256
271
|
});
|
|
257
272
|
default:
|
|
258
273
|
throw invalid("name", name, "a view name");
|
|
@@ -266,6 +281,140 @@ export class GraphResidency {
|
|
|
266
281
|
scalars: Object.freeze(scalars),
|
|
267
282
|
});
|
|
268
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* The reverse adjacency's bindings. On an UNDIRECTED snapshot graph-format invariant I7 makes reverse() return
|
|
286
|
+
* the FORWARD arrays, so the core bindings ARE the reverse bindings and nothing is uploaded -- delegating to
|
|
287
|
+
* core() rather than re-uploading the arrays is what makes that true on the arena plan as well, where the
|
|
288
|
+
* per-array WeakMap key resolves to the whole-arena resident (spec 4.3 lines 1182-1186). `fwdArc` is never
|
|
289
|
+
* uploaded (spec 13 row P7). `packed` is ignored when undirected: there is nothing to pack.
|
|
290
|
+
* @param s - the snapshot
|
|
291
|
+
* @param record - its residency record
|
|
292
|
+
* @param packed - concatenate the arrays into one buffer (directed only)
|
|
293
|
+
* @returns the view binding
|
|
294
|
+
*/
|
|
295
|
+
buildReverse(s, record, packed) {
|
|
296
|
+
const rev = s.reverse();
|
|
297
|
+
if (!s.directed) {
|
|
298
|
+
const core = this.core(s, ["rowPtr", "colIdx", "weights"]);
|
|
299
|
+
const bindings = { rowPtr: core.rowPtr };
|
|
300
|
+
if (core.colIdx !== null) {
|
|
301
|
+
bindings.colIdx = core.colIdx;
|
|
302
|
+
}
|
|
303
|
+
if (core.weights !== null) {
|
|
304
|
+
bindings.weights = core.weights;
|
|
305
|
+
}
|
|
306
|
+
return Object.freeze({
|
|
307
|
+
view: "reverse",
|
|
308
|
+
bindings: Object.freeze(bindings),
|
|
309
|
+
scalars: Object.freeze({ arcCount: [rev.arcCount], directed: [0] }),
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
const arrays = [
|
|
313
|
+
["rowPtr", rev.rowPtr],
|
|
314
|
+
["colIdx", rev.colIdx],
|
|
315
|
+
];
|
|
316
|
+
if (rev.weights !== null) {
|
|
317
|
+
arrays.push(["weights", rev.weights]);
|
|
318
|
+
}
|
|
319
|
+
const bindings = packed
|
|
320
|
+
? this.packArrays(record, arrays, this.packKey(record, "reverse:packed"), `residency:view:${record.serial}:reverse:packed`)
|
|
321
|
+
: this.separateArrays(record, arrays, `residency:view:${record.serial}:reverse`);
|
|
322
|
+
return Object.freeze({
|
|
323
|
+
view: "reverse",
|
|
324
|
+
bindings,
|
|
325
|
+
scalars: Object.freeze({ arcCount: [rev.arcCount], directed: [1] }),
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* The each-edge-once binding an edge-parallel kernel uses on directed and undirected snapshots alike (spec 8.1
|
|
330
|
+
* row 2); `arc` is not uploaded (no kernel of P7 reads it).
|
|
331
|
+
* @param s - the snapshot
|
|
332
|
+
* @param record - its residency record
|
|
333
|
+
* @param packed - concatenate into one buffer
|
|
334
|
+
* @returns the view binding
|
|
335
|
+
*/
|
|
336
|
+
buildEdgeList(s, record, packed) {
|
|
337
|
+
const list = s.edgeList();
|
|
338
|
+
const arrays = [
|
|
339
|
+
["src", list.src],
|
|
340
|
+
["dst", list.dst],
|
|
341
|
+
];
|
|
342
|
+
if (list.weights !== null) {
|
|
343
|
+
arrays.push(["weights", list.weights]);
|
|
344
|
+
}
|
|
345
|
+
const bindings = packed
|
|
346
|
+
? this.packArrays(record, arrays, this.packKey(record, "edgeList:packed"), `residency:view:${record.serial}:edgeList:packed`)
|
|
347
|
+
: this.separateArrays(record, arrays, `residency:view:${record.serial}:edgeList`);
|
|
348
|
+
return Object.freeze({
|
|
349
|
+
view: "edgeList",
|
|
350
|
+
bindings,
|
|
351
|
+
scalars: Object.freeze({ edgeCount: [s.edgeCount] }),
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* One resident per array (spec 4.3: views upload in perArray mode, never into the arena).
|
|
356
|
+
* @param record - the owning record
|
|
357
|
+
* @param arrays - the named arrays
|
|
358
|
+
* @param label - the buffer label prefix
|
|
359
|
+
* @returns the bindings by name
|
|
360
|
+
*/
|
|
361
|
+
separateArrays(record, arrays, label) {
|
|
362
|
+
const bindings = {};
|
|
363
|
+
for (const [name, array] of arrays) {
|
|
364
|
+
const resident = this.upload(record, array, array, `${label}:${name}`);
|
|
365
|
+
bindings[name] = { buffer: resident.buffer, offset: 0, size: resident.byteLength, window: null };
|
|
366
|
+
}
|
|
367
|
+
return Object.freeze(bindings);
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* The arrays concatenated into ONE buffer at STORAGE_ALIGN-aligned offsets (spec 4.3 packViews): one
|
|
371
|
+
* createBuffer and one writeBuffer instead of three of each, which is what the option buys. The resident is
|
|
372
|
+
* keyed on `key`, a marker object owned by the record (packKey), NOT on one of the snapshot's arrays: upload()
|
|
373
|
+
* returns an existing resident whenever the key matches and the serial matches, without comparing byte
|
|
374
|
+
* lengths, so keying the packed buffer on `rev.rowPtr` would make the packed and the unpacked view of one
|
|
375
|
+
* snapshot collide -- whichever was built second would get the other's buffer. The record still owns the
|
|
376
|
+
* resident, so release(s) destroys it with the rest. Offsets are STORAGE_ALIGN-aligned because Kernel.bind
|
|
377
|
+
* rejects any other offset synchronously (E_INVALID_ARGUMENT { argument: "offset" }).
|
|
378
|
+
* @param record - the owning record
|
|
379
|
+
* @param arrays - the named arrays, in buffer order
|
|
380
|
+
* @param key - the marker object the resident is keyed on
|
|
381
|
+
* @param label - the buffer label
|
|
382
|
+
* @returns the bindings by name, all into the one buffer
|
|
383
|
+
*/
|
|
384
|
+
packArrays(record, arrays, key, label) {
|
|
385
|
+
const offsets = [];
|
|
386
|
+
let total = 0;
|
|
387
|
+
for (const [, array] of arrays) {
|
|
388
|
+
offsets.push(total);
|
|
389
|
+
total += Math.ceil(array.byteLength / STORAGE_ALIGN) * STORAGE_ALIGN;
|
|
390
|
+
}
|
|
391
|
+
const staging = new Uint8Array(total);
|
|
392
|
+
arrays.forEach(([, array], i) => {
|
|
393
|
+
staging.set(new Uint8Array(array.buffer, array.byteOffset, array.byteLength), offsets[i]);
|
|
394
|
+
});
|
|
395
|
+
const resident = this.upload(record, key, staging, label);
|
|
396
|
+
const bindings = {};
|
|
397
|
+
arrays.forEach(([name, array], i) => {
|
|
398
|
+
bindings[name] = { buffer: resident.buffer, offset: offsets[i], size: array.byteLength, window: null };
|
|
399
|
+
});
|
|
400
|
+
return Object.freeze(bindings);
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* The upload key of a packed view: a marker object allocated once per record and memo name, never one of the
|
|
404
|
+
* snapshot's arrays.
|
|
405
|
+
* @param record - the owning record
|
|
406
|
+
* @param memoKey - the `views` memo key of this packed view
|
|
407
|
+
* @returns the stable marker object
|
|
408
|
+
*/
|
|
409
|
+
packKey(record, memoKey) {
|
|
410
|
+
const existing = record.packKeys.get(memoKey);
|
|
411
|
+
if (existing !== undefined) {
|
|
412
|
+
return existing;
|
|
413
|
+
}
|
|
414
|
+
const created = {};
|
|
415
|
+
record.packKeys.set(memoKey, created);
|
|
416
|
+
return created;
|
|
417
|
+
}
|
|
269
418
|
/**
|
|
270
419
|
* gpuView(name) + column.version; re-uploads in place when the version changed and the byte length did not
|
|
271
420
|
* (spec 4.3). CONTRACT DECISION: `owner` is required so release(owner) can find the buffer (a table has no
|
|
@@ -508,6 +657,8 @@ export class GraphResidency {
|
|
|
508
657
|
forget(record) {
|
|
509
658
|
record.released = true;
|
|
510
659
|
record.bindings.clear();
|
|
660
|
+
record.views.clear();
|
|
661
|
+
record.packKeys.clear();
|
|
511
662
|
record.arena = null;
|
|
512
663
|
record.plan = null;
|
|
513
664
|
this.bySerial.delete(record.serial);
|
|
@@ -533,6 +684,8 @@ export class GraphResidency {
|
|
|
533
684
|
plan: null,
|
|
534
685
|
arena: null,
|
|
535
686
|
bindings: new Map(),
|
|
687
|
+
views: new Map(),
|
|
688
|
+
packKeys: new Map(),
|
|
536
689
|
released: false,
|
|
537
690
|
};
|
|
538
691
|
this.bySerial.set(s.serial, record);
|