@graphty/webgpu-graph-algorithms 0.6.26 → 0.6.28
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 +56 -6
- package/dist/acquire.d.ts +2 -0
- package/dist/browser.js +18 -1
- package/dist/browser.js.map +1 -1
- package/dist/chunks/accelerator-B-FjQwaA.js +19173 -0
- package/dist/chunks/accelerator-B-FjQwaA.js.map +1 -0
- package/dist/chunks/managed-D_GdQtnu.js +98 -0
- package/dist/chunks/managed-D_GdQtnu.js.map +1 -0
- package/dist/node.js +18 -1
- package/dist/node.js.map +1 -1
- package/dist/src/accelerator.d.ts.map +1 -1
- package/dist/src/accelerator.js +5 -3
- package/dist/src/accelerator.js.map +1 -1
- package/dist/src/algorithms/all-pairs.d.ts.map +1 -1
- package/dist/src/algorithms/all-pairs.js +72 -47
- package/dist/src/algorithms/all-pairs.js.map +1 -1
- package/dist/src/algorithms/betweenness.d.ts +1 -1
- package/dist/src/algorithms/betweenness.js +2 -2
- package/dist/src/algorithms/closeness.d.ts +45 -42
- package/dist/src/algorithms/closeness.d.ts.map +1 -1
- package/dist/src/algorithms/closeness.js +295 -226
- package/dist/src/algorithms/closeness.js.map +1 -1
- package/dist/src/browser/index.d.ts +10 -0
- package/dist/src/browser/index.d.ts.map +1 -1
- package/dist/src/browser/index.js +22 -0
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/constants.d.ts +13 -3
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +13 -3
- package/dist/src/constants.js.map +1 -1
- package/dist/src/kernels.d.ts +14 -4
- package/dist/src/kernels.d.ts.map +1 -1
- package/dist/src/kernels.js +62 -28
- package/dist/src/kernels.js.map +1 -1
- package/dist/src/layouts/force-simulation.d.ts.map +1 -1
- package/dist/src/layouts/force-simulation.js +0 -1
- package/dist/src/layouts/force-simulation.js.map +1 -1
- package/dist/src/layouts/forceatlas2.d.ts.map +1 -1
- package/dist/src/layouts/forceatlas2.js +0 -1
- package/dist/src/layouts/forceatlas2.js.map +1 -1
- package/dist/src/layouts/fruchterman-reingold.d.ts.map +1 -1
- package/dist/src/layouts/fruchterman-reingold.js +0 -1
- package/dist/src/layouts/fruchterman-reingold.js.map +1 -1
- package/dist/src/layouts/repulsion-grid.d.ts +1 -3
- package/dist/src/layouts/repulsion-grid.d.ts.map +1 -1
- package/dist/src/layouts/repulsion-grid.js +1 -6
- package/dist/src/layouts/repulsion-grid.js.map +1 -1
- package/dist/src/layouts/spring-electrical.d.ts.map +1 -1
- package/dist/src/layouts/spring-electrical.js +0 -1
- package/dist/src/layouts/spring-electrical.js.map +1 -1
- package/dist/src/managed.d.ts +11 -0
- package/dist/src/managed.d.ts.map +1 -0
- package/dist/src/managed.js +129 -0
- package/dist/src/managed.js.map +1 -0
- package/dist/src/node/index.d.ts +11 -0
- package/dist/src/node/index.d.ts.map +1 -1
- package/dist/src/node/index.js +21 -0
- package/dist/src/node/index.js.map +1 -1
- package/dist/src/primitives/grid-pyramid.d.ts +16 -15
- package/dist/src/primitives/grid-pyramid.d.ts.map +1 -1
- package/dist/src/primitives/grid-pyramid.js +20 -28
- package/dist/src/primitives/grid-pyramid.js.map +1 -1
- package/dist/src/types/accelerator.d.ts +2 -0
- package/dist/src/types/accelerator.d.ts.map +1 -1
- package/dist/src/types/managed.d.ts +81 -0
- package/dist/src/types/managed.d.ts.map +1 -0
- package/dist/src/types/managed.js +7 -0
- package/dist/src/types/managed.js.map +1 -0
- package/dist/src/wgsl/bc-forward.wgsl.d.ts +1 -1
- package/dist/src/wgsl/bc-forward.wgsl.js +1 -1
- package/dist/src/wgsl/closeness-level.wgsl.d.ts +37 -0
- package/dist/src/wgsl/closeness-level.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/closeness-level.wgsl.js +204 -0
- package/dist/src/wgsl/closeness-level.wgsl.js.map +1 -0
- package/dist/src/wgsl/closeness-rowsum.wgsl.d.ts +11 -0
- package/dist/src/wgsl/closeness-rowsum.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/closeness-rowsum.wgsl.js +42 -0
- package/dist/src/wgsl/closeness-rowsum.wgsl.js.map +1 -0
- package/dist/src/wgsl/grid-centroid-hub.wgsl.d.ts +2 -2
- package/dist/src/wgsl/grid-centroid-hub.wgsl.js +2 -2
- package/dist/webgpu-graph-algorithms.js +142 -15586
- package/dist/webgpu-graph-algorithms.js.map +1 -1
- package/package.json +10 -4
- package/src/accelerator.ts +5 -3
- package/src/algorithms/all-pairs.ts +86 -56
- package/src/algorithms/betweenness.ts +2 -2
- package/src/algorithms/closeness.ts +353 -256
- package/src/browser/index.ts +37 -0
- package/src/constants.ts +13 -3
- package/src/kernels.ts +65 -36
- package/src/layouts/force-simulation.ts +0 -1
- package/src/layouts/forceatlas2.ts +0 -1
- package/src/layouts/fruchterman-reingold.ts +0 -1
- package/src/layouts/repulsion-grid.ts +2 -7
- package/src/layouts/spring-electrical.ts +0 -1
- package/src/managed.ts +172 -0
- package/src/node/index.ts +36 -0
- package/src/primitives/grid-pyramid.ts +29 -41
- package/src/types/accelerator.ts +2 -0
- package/src/types/managed.ts +86 -0
- package/src/wgsl/bc-forward.wgsl.ts +1 -1
- package/src/wgsl/closeness-level.wgsl.ts +203 -0
- package/src/wgsl/closeness-rowsum.wgsl.ts +41 -0
- package/src/wgsl/grid-centroid-hub.wgsl.ts +2 -2
- package/dist/chunks/context-BZY6SMsM.js +0 -3615
- package/dist/chunks/context-BZY6SMsM.js.map +0 -1
- package/dist/src/wgsl/closeness-reduce.wgsl.d.ts +0 -20
- package/dist/src/wgsl/closeness-reduce.wgsl.d.ts.map +0 -1
- package/dist/src/wgsl/closeness-reduce.wgsl.js +0 -69
- package/dist/src/wgsl/closeness-reduce.wgsl.js.map +0 -1
- package/dist/src/wgsl/closeness-sweep.wgsl.d.ts +0 -22
- package/dist/src/wgsl/closeness-sweep.wgsl.d.ts.map +0 -1
- package/dist/src/wgsl/closeness-sweep.wgsl.js +0 -106
- package/dist/src/wgsl/closeness-sweep.wgsl.js.map +0 -1
- package/src/wgsl/closeness-reduce.wgsl.ts +0 -68
- package/src/wgsl/closeness-sweep.wgsl.ts +0 -105
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeness.js","sourceRoot":"","sources":["../../../src/algorithms/closeness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"closeness.js","sourceRoot":"","sources":["../../../src/algorithms/closeness.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
/// <reference types="@webgpu/types" preserve="true" />
|
|
6
6
|
import { GpuContext } from "../context.js";
|
|
7
7
|
import type { GpuContextOptions, ProbeResult } from "../types/context.js";
|
|
8
|
+
import type { AcquireAcceleratorOptions, ManagedAccelerator } from "../types/managed.js";
|
|
9
|
+
export type { AcceleratorDeclined, AcceleratorReady, AcquireAcceleratorOptions, AcquireResult, ManagedAccelerator, } from "../types/managed.js";
|
|
8
10
|
/** Options of the browser helpers (spec 3.4); a type alias, not an empty `extends` interface, which strictTypeChecked's no-empty-object-type (allowInterfaces "never") reports. */
|
|
9
11
|
export type BrowserGpuOptions = Omit<GpuContextOptions, "gpu" | "device" | "runtime">;
|
|
10
12
|
/**
|
|
@@ -20,4 +22,12 @@ export declare function probeBrowserWebGpu(options?: BrowserGpuOptions): Promise
|
|
|
20
22
|
* @returns the context
|
|
21
23
|
*/
|
|
22
24
|
export declare function requestGpuContext(options?: BrowserGpuOptions): Promise<GpuContext>;
|
|
25
|
+
/**
|
|
26
|
+
* The managed accelerator on navigator.gpu: probe, context, device self-check and accelerator on the first
|
|
27
|
+
* `current()`, a new device after a loss, disposal by `dispose()`. A software adapter is declined unless
|
|
28
|
+
* `acceptSoftware` is set. The same function as the `./acquire` subpath resolves to in a browser.
|
|
29
|
+
* @param options - see AcquireAcceleratorOptions; `adapter` is ignored here
|
|
30
|
+
* @returns the handle; nothing is probed until `current()` is called
|
|
31
|
+
*/
|
|
32
|
+
export declare function acquireAccelerator(options?: AcquireAcceleratorOptions): ManagedAccelerator;
|
|
23
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AACA;;;GAGG;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AACA;;;GAGG;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,YAAY,EACR,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,mLAAmL;AACnL,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;AAetF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAMpF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAWlF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CAkB1F"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { GpuContext } from "../context.js";
|
|
7
7
|
import { WebGpuGraphError } from "../errors.js";
|
|
8
|
+
import { manageAccelerator } from "../managed.js";
|
|
8
9
|
/**
|
|
9
10
|
* navigator.gpu, or undefined when the runtime has no navigator or no WebGPU (Node 22 has a navigator
|
|
10
11
|
* without gpu; browsers without WebGPU have navigator.gpu undefined).
|
|
@@ -45,4 +46,25 @@ export function requestGpuContext(options) {
|
|
|
45
46
|
}
|
|
46
47
|
return GpuContext.create({ powerPreference: "high-performance", ...options, gpu, runtime: "browser" });
|
|
47
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* The managed accelerator on navigator.gpu: probe, context, device self-check and accelerator on the first
|
|
51
|
+
* `current()`, a new device after a loss, disposal by `dispose()`. A software adapter is declined unless
|
|
52
|
+
* `acceptSoftware` is set. The same function as the `./acquire` subpath resolves to in a browser.
|
|
53
|
+
* @param options - see AcquireAcceleratorOptions; `adapter` is ignored here
|
|
54
|
+
* @returns the handle; nothing is probed until `current()` is called
|
|
55
|
+
*/
|
|
56
|
+
export function acquireAccelerator(options) {
|
|
57
|
+
return manageAccelerator({
|
|
58
|
+
probe: (o, rejectSoftware) => probeBrowserWebGpu({ powerPreference: o.powerPreference, rejectSoftware }),
|
|
59
|
+
open: (o, probe, rejectSoftware) => requestGpuContext({
|
|
60
|
+
adapter: probe.adapter ?? undefined,
|
|
61
|
+
powerPreference: o.powerPreference,
|
|
62
|
+
rejectSoftware,
|
|
63
|
+
warnUnreleasedSnapshots: o.warnUnreleasedSnapshots,
|
|
64
|
+
}),
|
|
65
|
+
noWebGpuFix: () => globalThis.isSecureContext === false
|
|
66
|
+
? "serve the page over https or from localhost: WebGPU needs a secure context"
|
|
67
|
+
: null,
|
|
68
|
+
}, options);
|
|
69
|
+
}
|
|
48
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAelD;;;;GAIG;AACH,SAAS,YAAY;IACjB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,GAAuC,SAAS,CAAC;IAChE,OAAO,SAAS,CAAC,GAAG,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA2B;IAC1D,OAAO,UAAU,CAAC,KAAK,CAAC;QACpB,GAAG,EAAE,YAAY,EAAE;QACnB,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,kBAAkB;QAC/D,cAAc,EAAE,OAAO,EAAE,cAAc;KAC1C,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IACzD,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC,MAAM,CACjB,IAAI,gBAAgB,CAAC,aAAa,EAAE,mEAAmE,EAAE;YACrG,MAAM,EAAE,4BAA4B;YACpC,IAAI,EAAE,6EAA6E;SACtF,CAAC,CACL,CAAC;IACN,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3G,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAmC;IAClE,OAAO,iBAAiB,CACpB;QACI,KAAK,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,cAAc,EAAE,CAAC;QACxG,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAC/B,iBAAiB,CAAC;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS;YACnC,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,cAAc;YACd,uBAAuB,EAAE,CAAC,CAAC,uBAAuB;SACrD,CAAC;QACN,WAAW,EAAE,GAAG,EAAE,CACb,UAA4C,CAAC,eAAe,KAAK,KAAK;YACnE,CAAC,CAAC,4EAA4E;YAC9E,CAAC,CAAC,IAAI;KACjB,EACD,OAAO,CACV,CAAC;AACN,CAAC"}
|
package/dist/src/constants.d.ts
CHANGED
|
@@ -42,7 +42,9 @@ export declare const UNIFORM_SLOT_BYTES = 256;
|
|
|
42
42
|
* unbiasedness item) the same day by its re-scope to the whole-field ratio, and the far field's accuracy on those
|
|
43
43
|
* fixtures is the follow-up -- because "auto" is the default every consumer sees and the exact tier is the accurate
|
|
44
44
|
* one; the rule's answer on the dev box (1024) is recorded, not shipped, until that work closes and the value is
|
|
45
|
-
* re-fixed.
|
|
45
|
+
* re-fixed. Re-measured on 2026-10-02 after the grid tier's hub-cell centroid became a direct dispatch (issue #732):
|
|
46
|
+
* the rule still answers 1024 (exact 0.26 against grid 0.18 ms per iteration at 4,096 nodes), because the indirect
|
|
47
|
+
* dispatch's cost was Dawn's validation pass, which the profiler's per-pass times never included. A
|
|
46
48
|
* consumer whose GPU differs (integrated, Apple, T4) passes its own value through
|
|
47
49
|
* createAccelerator(ctx, { layout: { exactMaxNodes } }); calibrateLayout(ctx) measures it.
|
|
48
50
|
*/
|
|
@@ -211,8 +213,16 @@ export declare const SSSP_DELTA_FACTOR = 32;
|
|
|
211
213
|
export declare const F32_INF_BITS = 2139095040;
|
|
212
214
|
/** Design 8.4 "k planned from maxBufferSize and a 25% budget": the share of `maxBufferSize` one betweenness source batch may hold. WebGPU exposes no device memory size, so this is a fraction of the largest buffer, not a memory measurement. */
|
|
213
215
|
export declare const BC_BATCH_BUDGET_FRACTION = 0.25;
|
|
214
|
-
/**
|
|
215
|
-
|
|
216
|
+
/**
|
|
217
|
+
* The most sources one betweenness batch runs together. 256 rather than design 10.1's 64 (issue #733): a batch's
|
|
218
|
+
* cost is dominated by its per-level submits and readbacks, not by its width, so a quarter of the batches runs an
|
|
219
|
+
* exact call on random graphs of 1k / 2k / 4k nodes (4 edges per node, RTX 4070 SUPER) 2.8x / 2.5x / 1.8x faster
|
|
220
|
+
* with the frontier forward form and 1.9x / 1.6x / 1.5x with the per-batch choice, with bit-identical vertex and
|
|
221
|
+
* edge scores (the gathers add every source's dependency in source order whatever the batching). The memory budget
|
|
222
|
+
* still decides k above about 16k nodes at default limits, so large graphs are unchanged. Forward levels per submit
|
|
223
|
+
* stay at `MAX_LEVELS_PER_SUBMIT`: the parameter ring is sized for it.
|
|
224
|
+
*/
|
|
225
|
+
export declare const BC_MAX_BATCH = 256;
|
|
216
226
|
/** Design 8.4 (McLaughlin-Bader): a betweenness batch runs the edge-parallel forward pass when the previous batch's level count is below `BC_EDGE_PARALLEL_GAMMA * log2(n)`. The design names the rule and no value; 2 is unmeasured and a benchmark run re-fixes it. */
|
|
217
227
|
export declare const BC_EDGE_PARALLEL_GAMMA = 2;
|
|
218
228
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0IAA0I;AAC1I,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,4HAA4H;AAC5H,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,sGAAsG;AACtG,eAAO,MAAM,YAAY,QAA0C,CAAC;AACpE,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,aAAa,CAAC;AAClC,qMAAqM;AACrM,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,qHAAqH;AACrH,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,8HAA8H;AAC9H,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0IAA0I;AAC1I,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,4HAA4H;AAC5H,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,sGAAsG;AACtG,eAAO,MAAM,YAAY,QAA0C,CAAC;AACpE,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,aAAa,CAAC;AAClC,qMAAqM;AACrM,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,qHAAqH;AACrH,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,8HAA8H;AAC9H,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,yGAAyG;AACzG,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,gGAAgG;AAChG,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAC1D,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,QAAW,CAAC;AAC7C,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAC1D,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AACvD,yDAAyD;AACzD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,yKAAyK;AACzK,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,gEAAgE;AAChE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,wOAAwO;AACxO,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,2EAA2E;AAC3E,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,oDAAoD;AACpD,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;IACb,eAAe,EAAE,CAAC,CAAC;IACnB,YAAY,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE,CAAC,CAAC;IACX,aAAa,EAAE,KAAK,CAAC;IACrB,iBAAiB,EAAE,KAAK,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC;IACd,YAAY,EAAE,KAAK,CAAC;IACpB,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,CAAC,CAAC;IACT,eAAe,EAAE,KAAK,CAAC;IACvB,YAAY,EAAE,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC;CAClB,CAeC,CAAC;AACH,kMAAkM;AAClM,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,EAAE,CAAC;IACZ,aAAa,EAAE,IAAI,CAAC;IACpB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,CAAC,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACnB,CASC,CAAC;AACH,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,wCAAwC;AACxC,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAC5C,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,8CAA8C;AAC9C,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,8JAA8J;AAC9J,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,4HAA4H;AAC5H,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,gHAAgH;AAChH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,kLAAkL;AAClL,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,6JAA6J;AAC7J,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,0JAA0J;AAC1J,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC;IAC/B,CAAC,EAAE,IAAI,CAAC;IACR,UAAU,EAAE,EAAE,CAAC;IACf,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,CAAC,CAAC;IACT,eAAe,EAAE,KAAK,CAAC;IACvB,YAAY,EAAE,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC;CACrB,CAWC,CAAC;AACH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,wNAAwN;AACxN,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC;IAC/B,YAAY,EAAE,EAAE,CAAC;IACjB,iBAAiB,EAAE,GAAG,CAAC;IACvB,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,eAAe,EAAE,GAAG,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC;IACd,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,CAAC,CAAC;IACT,eAAe,EAAE,KAAK,CAAC;IACvB,YAAY,EAAE,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC;CAClB,CAYC,CAAC;AACH;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAKrG,CAAC;AACF;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,OAAO,CAAC;AACjD,2HAA2H;AAC3H,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAC1D,wHAAwH;AACxH,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,gHAAgH;AAChH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,sJAAsJ;AACtJ,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,yHAAyH;AACzH,eAAO,MAAM,iBAAiB,WAAO,CAAC;AACtC,6GAA6G;AAC7G,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,kNAAkN;AAClN,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,+IAA+I;AAC/I,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,wNAAwN;AACxN,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,iNAAiN;AACjN,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,+JAA+J;AAC/J,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,8JAA8J;AAC9J,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,mPAAmP;AACnP,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,yQAAyQ;AACzQ,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,+RAA+R;AAC/R,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,2IAA2I;AAC3I,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD;;;;GAIG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C;;;GAGG;AACH,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,sLAAsL;AACtL,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,wMAAwM;AACxM,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAC3C,sIAAsI;AACtI,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,kMAAkM;AAClM,eAAO,MAAM,4BAA4B,KAAK,CAAC"}
|
package/dist/src/constants.js
CHANGED
|
@@ -42,7 +42,9 @@ export const UNIFORM_SLOT_BYTES = 256;
|
|
|
42
42
|
* unbiasedness item) the same day by its re-scope to the whole-field ratio, and the far field's accuracy on those
|
|
43
43
|
* fixtures is the follow-up -- because "auto" is the default every consumer sees and the exact tier is the accurate
|
|
44
44
|
* one; the rule's answer on the dev box (1024) is recorded, not shipped, until that work closes and the value is
|
|
45
|
-
* re-fixed.
|
|
45
|
+
* re-fixed. Re-measured on 2026-10-02 after the grid tier's hub-cell centroid became a direct dispatch (issue #732):
|
|
46
|
+
* the rule still answers 1024 (exact 0.26 against grid 0.18 ms per iteration at 4,096 nodes), because the indirect
|
|
47
|
+
* dispatch's cost was Dawn's validation pass, which the profiler's per-pass times never included. A
|
|
46
48
|
* consumer whose GPU differs (integrated, Apple, T4) passes its own value through
|
|
47
49
|
* createAccelerator(ctx, { layout: { exactMaxNodes } }); calibrateLayout(ctx) measures it.
|
|
48
50
|
*/
|
|
@@ -211,8 +213,16 @@ export const SSSP_DELTA_FACTOR = 32;
|
|
|
211
213
|
export const F32_INF_BITS = 0x7f800000;
|
|
212
214
|
/** Design 8.4 "k planned from maxBufferSize and a 25% budget": the share of `maxBufferSize` one betweenness source batch may hold. WebGPU exposes no device memory size, so this is a fraction of the largest buffer, not a memory measurement. */
|
|
213
215
|
export const BC_BATCH_BUDGET_FRACTION = 0.25;
|
|
214
|
-
/**
|
|
215
|
-
|
|
216
|
+
/**
|
|
217
|
+
* The most sources one betweenness batch runs together. 256 rather than design 10.1's 64 (issue #733): a batch's
|
|
218
|
+
* cost is dominated by its per-level submits and readbacks, not by its width, so a quarter of the batches runs an
|
|
219
|
+
* exact call on random graphs of 1k / 2k / 4k nodes (4 edges per node, RTX 4070 SUPER) 2.8x / 2.5x / 1.8x faster
|
|
220
|
+
* with the frontier forward form and 1.9x / 1.6x / 1.5x with the per-batch choice, with bit-identical vertex and
|
|
221
|
+
* edge scores (the gathers add every source's dependency in source order whatever the batching). The memory budget
|
|
222
|
+
* still decides k above about 16k nodes at default limits, so large graphs are unchanged. Forward levels per submit
|
|
223
|
+
* stay at `MAX_LEVELS_PER_SUBMIT`: the parameter ring is sized for it.
|
|
224
|
+
*/
|
|
225
|
+
export const BC_MAX_BATCH = 256;
|
|
216
226
|
/** Design 8.4 (McLaughlin-Bader): a betweenness batch runs the edge-parallel forward pass when the previous batch's level count is below `BC_EDGE_PARALLEL_GAMMA * log2(n)`. The design names the rule and no value; 2 is unmeasured and a benchmark run re-fixes it. */
|
|
217
227
|
export const BC_EDGE_PARALLEL_GAMMA = 2;
|
|
218
228
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0IAA0I;AAC1I,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,4HAA4H;AAC5H,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAC5C,sGAAsG;AACtG,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,GAAG,cAAc,CAAC;AACpE,sJAAsJ;AACtJ,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;AAClC,qMAAqM;AACrM,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,qHAAqH;AACrH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,8HAA8H;AAC9H,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/src/kernels.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* dedupe-claim and dedupe-filter; P8-T4 adds frontier-finalize with the FrontierCounters and FrontierParams blocks;
|
|
13
13
|
* P8-T5 adds advance-expand; P8-T6 adds bfs-contract and sssp-pred; P8-T7 adds bfs-fused; P8-T8 adds bfs-bottom-up,
|
|
14
14
|
* bfs-bitset-build and bfs-unvisited-flags; P8-T9 adds sssp-relax; P8-T10 adds bf-relax with the BfParams and BfFlags
|
|
15
|
-
* blocks;
|
|
15
|
+
* blocks; closeness adds closeness-level and closeness-rowsum with the ClosenessParams block; P9 (betweenness) adds bc-finalize, bc-forward,
|
|
16
16
|
* bc-backward, bc-gather, bc-edge-gather, bc-forward-edge and bc-count (issue #719) with the BcParams block; all-pairs shortest paths
|
|
17
17
|
* (design 8.7) adds apsp-init and apsp-fw with the ApspParams block. P11 (the structure and community phase, plan
|
|
18
18
|
* design/webgpu/plans/2026-09-23-webgpu-p11-structure-and-community.md) adds the graph build on the device (coo-emit,
|
|
@@ -26,7 +26,7 @@ import { type BindingDecl, type OverrideDecl, type WgslModuleSpec } from "./kern
|
|
|
26
26
|
import { type CoreBinding } from "./memory/residency.js";
|
|
27
27
|
import { type Binding } from "./types/memory.js";
|
|
28
28
|
/** Every module id of P1-P4, P7, P8, P9 and P11 (later ids are appended, never renamed). */
|
|
29
|
-
export type KernelId = "degree" | "reduce" | "fill" | "segmented-reduce" | "fa2-stats-finalize" | "fa2-attraction" | "fa2-repulsion-exact" | "fa2-speed-finalize" | "fa2-integrate" | "fa2-to-scene" | "spmv-pull" | "pr-scale" | "pr-finalize" | "wcc-link-sample" | "wcc-link-edges" | "wcc-compress" | "wcc-sample" | "indirect-finalize" | "scan-block" | "scan-add" | "histogram" | "counting-scatter" | "radix-hist" | "radix-scatter" | "grid-cell-key" | "grid-centroid" | "grid-centroid-hub" | "grid-downsample" | "grid-far-field" | "grid-near-field" | "compact-scatter" | "dedupe-claim" | "dedupe-filter" | "frontier-finalize" | "advance-expand" | "bfs-contract" | "sssp-pred" | "bfs-fused" | "bfs-bottom-up" | "bfs-bitset-build" | "bfs-unvisited-flags" | "bfs-next-degree" | "sssp-relax" | "bf-relax" | "closeness-
|
|
29
|
+
export type KernelId = "degree" | "reduce" | "fill" | "segmented-reduce" | "fa2-stats-finalize" | "fa2-attraction" | "fa2-repulsion-exact" | "fa2-speed-finalize" | "fa2-integrate" | "fa2-to-scene" | "spmv-pull" | "pr-scale" | "pr-finalize" | "wcc-link-sample" | "wcc-link-edges" | "wcc-compress" | "wcc-sample" | "indirect-finalize" | "scan-block" | "scan-add" | "histogram" | "counting-scatter" | "radix-hist" | "radix-scatter" | "grid-cell-key" | "grid-centroid" | "grid-centroid-hub" | "grid-downsample" | "grid-far-field" | "grid-near-field" | "compact-scatter" | "dedupe-claim" | "dedupe-filter" | "frontier-finalize" | "advance-expand" | "bfs-contract" | "sssp-pred" | "bfs-fused" | "bfs-bottom-up" | "bfs-bitset-build" | "bfs-unvisited-flags" | "bfs-next-degree" | "sssp-relax" | "bf-relax" | "closeness-level" | "closeness-rowsum" | "bc-finalize" | "bc-forward" | "bc-backward" | "bc-gather" | "bc-count" | "bc-edge-gather" | "bc-forward-edge" | "apsp-init" | "apsp-fw" | "coo-emit" | "run-flags" | "coo-scatter" | "orient-flags" | "tri-intersect" | "group-by-key-row" | "lpa-step" | "mst-best" | "mst-link";
|
|
30
30
|
/** One registry entry: everything of a WgslModuleSpec except the per-variant overrides and snippets. */
|
|
31
31
|
export interface KernelEntry {
|
|
32
32
|
readonly id: KernelId;
|
|
@@ -113,13 +113,23 @@ export declare const FRONTIER_COUNTERS: UniformBlock;
|
|
|
113
113
|
* `arcEnd` @44 (the bound arc window), `predKind` @48 (0 arc, 1 node), `bitsBase` @52, `source` @56, `stride` @60
|
|
114
114
|
* (a grid-stride plan's stride), `firstOfSubmit` @64 (the boundary's index inside its submit, clamped to 1: both
|
|
115
115
|
* the unvisited-count and the unvisited-degree-sum subtraction run at >= 1, issue #391), `iteration` @68 (an
|
|
116
|
-
* `sssp-pred` hop pass, P8-T9), `
|
|
117
|
-
* distance sums of a sampled run), `pad2` @76. The `slotBase` field that once addressed the selector's indirect slots went with
|
|
116
|
+
* `sssp-pred` hop pass, P8-T9), `pad3` @72, `pad2` @76. The `slotBase` field that once addressed the selector's indirect slots went with
|
|
118
117
|
* the slots (2026-09-25); `pad2` keeps the block an explicit 80 bytes, the way every block here is padded.
|
|
119
118
|
*/
|
|
120
119
|
export declare const FRONTIER_PARAMS: UniformBlock;
|
|
121
120
|
/** `BcParams` (uniform, 32 B; betweenness): `n` @0, `k` @4 (the batch's sources), `start` @8 (the first log index of a backward level), `count` @12 (a backward level's entries, or the edge count of `bc-forward-edge`), `stride` @16 (a grid-stride plan's stride), `role` @20 (`bc-finalize`: 0 the level boundary, 1 the seed), `pad0` @24, `pad1` @28. */
|
|
122
121
|
export declare const BC_PARAMS: UniformBlock;
|
|
122
|
+
/**
|
|
123
|
+
* `ClosenessParams` (uniform, 64 B): the params of `closeness-level` and `closeness-rowsum` -- `role` @0 (level: 0 a
|
|
124
|
+
* level, 1 the seed's clear, 2 the seed's sources; rowsum: 0 integer, 1 f32, 2 harmonic), `n` @4, `words` @8 (32-bit
|
|
125
|
+
* words per node, so `32 x words` sources per batch), `base` @12 (the words of one `bits` region), `total` @16 (the
|
|
126
|
+
* words the clear zeroes), `level` @20, `row` @24 (the level's row of the submit's count table), `ctrl` @28 (the word
|
|
127
|
+
* of the control ring in `table`), `count` @32 (the batch's sources), `source` @36 (its first source, or its first
|
|
128
|
+
* word of the source list), `sourcesAt` @40 (the word of a sampled run's source list in `table`, 0 for the exact
|
|
129
|
+
* run), `pullAt` @44 (the frontier arcs above which a level pulls), `perNode` @48 (1: a sampled run's per-node
|
|
130
|
+
* distance sums), `arcCount` @52 (the arcs a push level covers), `pullOk` @56 (1: a level may pull), `pad0` @60.
|
|
131
|
+
*/
|
|
132
|
+
export declare const CLOSENESS_PARAMS: UniformBlock;
|
|
123
133
|
/** `BfParams` (uniform, 16 B; P8-T10): `edgeCount` @0 (the logical edges of the `edgeList` view), `stride` @4 (the grid-stride plan's stride), `maxRetries` @8 (PD-12's compare-exchange bound), `cutoffBits` @12 (the f32 bit pattern of the CPU port's `cutoff`, `+Inf` when absent). */
|
|
124
134
|
export declare const BF_PARAMS: UniformBlock;
|
|
125
135
|
/** `BfFlags` (storage, 16 B; P8-T10): the two words `bf-relax` raises and the host reads back after every batch of rounds -- `changed` @0 (some exchange succeeded), `retryExhausted` @4 (some lane hit `maxRetries`, PD-12), `pad0` @8, `pad1` @12. Bound by the kernel as `array<atomic<u32>>`; the block is the host's decoder. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernels.d.ts","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kernels.d.ts","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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"}
|
package/dist/src/kernels.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* dedupe-claim and dedupe-filter; P8-T4 adds frontier-finalize with the FrontierCounters and FrontierParams blocks;
|
|
13
13
|
* P8-T5 adds advance-expand; P8-T6 adds bfs-contract and sssp-pred; P8-T7 adds bfs-fused; P8-T8 adds bfs-bottom-up,
|
|
14
14
|
* bfs-bitset-build and bfs-unvisited-flags; P8-T9 adds sssp-relax; P8-T10 adds bf-relax with the BfParams and BfFlags
|
|
15
|
-
* blocks;
|
|
15
|
+
* blocks; closeness adds closeness-level and closeness-rowsum with the ClosenessParams block; P9 (betweenness) adds bc-finalize, bc-forward,
|
|
16
16
|
* bc-backward, bc-gather, bc-edge-gather, bc-forward-edge and bc-count (issue #719) with the BcParams block; all-pairs shortest paths
|
|
17
17
|
* (design 8.7) adds apsp-init and apsp-fw with the ApspParams block. P11 (the structure and community phase, plan
|
|
18
18
|
* design/webgpu/plans/2026-09-23-webgpu-p11-structure-and-community.md) adds the graph build on the device (coo-emit,
|
|
@@ -41,8 +41,8 @@ import { bfsContractWgsl } from "./wgsl/bfs-contract.wgsl.js";
|
|
|
41
41
|
import { bfsFusedWgsl } from "./wgsl/bfs-fused.wgsl.js";
|
|
42
42
|
import { bfsNextDegreeWgsl } from "./wgsl/bfs-next-degree.wgsl.js";
|
|
43
43
|
import { bfsUnvisitedFlagsWgsl } from "./wgsl/bfs-unvisited-flags.wgsl.js";
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
44
|
+
import { closenessLevelWgsl } from "./wgsl/closeness-level.wgsl.js";
|
|
45
|
+
import { closenessRowsumWgsl } from "./wgsl/closeness-rowsum.wgsl.js";
|
|
46
46
|
import { compactScatterWgsl } from "./wgsl/compact-scatter.wgsl.js";
|
|
47
47
|
import { cooEmitWgsl } from "./wgsl/coo-emit.wgsl.js";
|
|
48
48
|
import { cooScatterWgsl } from "./wgsl/coo-scatter.wgsl.js";
|
|
@@ -355,8 +355,7 @@ export const FRONTIER_COUNTERS = UniformBlock.define("FrontierCounters", [
|
|
|
355
355
|
* `arcEnd` @44 (the bound arc window), `predKind` @48 (0 arc, 1 node), `bitsBase` @52, `source` @56, `stride` @60
|
|
356
356
|
* (a grid-stride plan's stride), `firstOfSubmit` @64 (the boundary's index inside its submit, clamped to 1: both
|
|
357
357
|
* the unvisited-count and the unvisited-degree-sum subtraction run at >= 1, issue #391), `iteration` @68 (an
|
|
358
|
-
* `sssp-pred` hop pass, P8-T9), `
|
|
359
|
-
* distance sums of a sampled run), `pad2` @76. The `slotBase` field that once addressed the selector's indirect slots went with
|
|
358
|
+
* `sssp-pred` hop pass, P8-T9), `pad3` @72, `pad2` @76. The `slotBase` field that once addressed the selector's indirect slots went with
|
|
360
359
|
* the slots (2026-09-25); `pad2` keeps the block an explicit 80 bytes, the way every block here is padded.
|
|
361
360
|
*/
|
|
362
361
|
export const FRONTIER_PARAMS = UniformBlock.define("FrontierParams", [
|
|
@@ -378,7 +377,7 @@ export const FRONTIER_PARAMS = UniformBlock.define("FrontierParams", [
|
|
|
378
377
|
["stride", "u32"],
|
|
379
378
|
["firstOfSubmit", "u32"],
|
|
380
379
|
["iteration", "u32"],
|
|
381
|
-
["
|
|
380
|
+
["pad3", "u32"],
|
|
382
381
|
["pad2", "u32"],
|
|
383
382
|
]);
|
|
384
383
|
/** `BcParams` (uniform, 32 B; betweenness): `n` @0, `k` @4 (the batch's sources), `start` @8 (the first log index of a backward level), `count` @12 (a backward level's entries, or the edge count of `bc-forward-edge`), `stride` @16 (a grid-stride plan's stride), `role` @20 (`bc-finalize`: 0 the level boundary, 1 the seed), `pad0` @24, `pad1` @28. */
|
|
@@ -392,6 +391,34 @@ export const BC_PARAMS = UniformBlock.define("BcParams", [
|
|
|
392
391
|
["pad0", "u32"],
|
|
393
392
|
["pad1", "u32"],
|
|
394
393
|
]);
|
|
394
|
+
/**
|
|
395
|
+
* `ClosenessParams` (uniform, 64 B): the params of `closeness-level` and `closeness-rowsum` -- `role` @0 (level: 0 a
|
|
396
|
+
* level, 1 the seed's clear, 2 the seed's sources; rowsum: 0 integer, 1 f32, 2 harmonic), `n` @4, `words` @8 (32-bit
|
|
397
|
+
* words per node, so `32 x words` sources per batch), `base` @12 (the words of one `bits` region), `total` @16 (the
|
|
398
|
+
* words the clear zeroes), `level` @20, `row` @24 (the level's row of the submit's count table), `ctrl` @28 (the word
|
|
399
|
+
* of the control ring in `table`), `count` @32 (the batch's sources), `source` @36 (its first source, or its first
|
|
400
|
+
* word of the source list), `sourcesAt` @40 (the word of a sampled run's source list in `table`, 0 for the exact
|
|
401
|
+
* run), `pullAt` @44 (the frontier arcs above which a level pulls), `perNode` @48 (1: a sampled run's per-node
|
|
402
|
+
* distance sums), `arcCount` @52 (the arcs a push level covers), `pullOk` @56 (1: a level may pull), `pad0` @60.
|
|
403
|
+
*/
|
|
404
|
+
export const CLOSENESS_PARAMS = UniformBlock.define("ClosenessParams", [
|
|
405
|
+
["role", "u32"],
|
|
406
|
+
["n", "u32"],
|
|
407
|
+
["words", "u32"],
|
|
408
|
+
["base", "u32"],
|
|
409
|
+
["total", "u32"],
|
|
410
|
+
["level", "u32"],
|
|
411
|
+
["row", "u32"],
|
|
412
|
+
["ctrl", "u32"],
|
|
413
|
+
["count", "u32"],
|
|
414
|
+
["source", "u32"],
|
|
415
|
+
["sourcesAt", "u32"],
|
|
416
|
+
["pullAt", "u32"],
|
|
417
|
+
["perNode", "u32"],
|
|
418
|
+
["arcCount", "u32"],
|
|
419
|
+
["pullOk", "u32"],
|
|
420
|
+
["pad0", "u32"],
|
|
421
|
+
]);
|
|
395
422
|
/** `BfParams` (uniform, 16 B; P8-T10): `edgeCount` @0 (the logical edges of the `edgeList` view), `stride` @4 (the grid-stride plan's stride), `maxRetries` @8 (PD-12's compare-exchange bound), `cutoffBits` @12 (the f32 bit pattern of the CPU port's `cutoff`, `+Inf` when absent). */
|
|
396
423
|
export const BF_PARAMS = UniformBlock.define("BfParams", [
|
|
397
424
|
["edgeCount", "u32"],
|
|
@@ -897,7 +924,7 @@ const GRID_CENTROID = {
|
|
|
897
924
|
snippetSlots: [],
|
|
898
925
|
phase: "P4",
|
|
899
926
|
};
|
|
900
|
-
/** `grid-centroid-hub` (G4b, spec 7.7; P4-T9, PD-13, DEP-P4-L): one workgroup per
|
|
927
|
+
/** `grid-centroid-hub` (G4b, spec 7.7; P4-T9, PD-13, DEP-P4-L): one workgroup per word of `hubList`, dispatched directly, a WG-strided sum through `wg_reduce_vec4` guarded by `h < hubCount[0]`; 6 storage bindings (`hubCount` is a read-only view of `hubCounters`). */
|
|
901
928
|
const GRID_CENTROID_HUB = {
|
|
902
929
|
id: "grid-centroid-hub",
|
|
903
930
|
body: gridCentroidHubWgsl,
|
|
@@ -1192,34 +1219,41 @@ const BF_RELAX = {
|
|
|
1192
1219
|
snippetSlots: [],
|
|
1193
1220
|
phase: "P8",
|
|
1194
1221
|
};
|
|
1195
|
-
/** `closeness-
|
|
1196
|
-
const
|
|
1197
|
-
id: "closeness-
|
|
1198
|
-
body:
|
|
1199
|
-
entryPoint: "
|
|
1200
|
-
bindings:
|
|
1222
|
+
/** `closeness-level` (design 8.4 "32 sources per u32 word"): one level of closeness's bit-parallel multi-source BFS in one dispatch, `32 x P.words` sources per batch -- role 0 the level (push over the out-arcs or pull over the in-arcs, push one invocation per arc, pull one per node, chosen per level on the device from the frontier's arcs against `P.pullAt`, the pull with an early exit once every source has reached the node), role 1 and role 2 the batch's seed; 6 storage bindings (the forward and the reverse CSR as group-1 state, `bits` and `table` as `array<atomic<u32>>`). */
|
|
1223
|
+
const CLOSENESS_LEVEL = {
|
|
1224
|
+
id: "closeness-level",
|
|
1225
|
+
body: closenessLevelWgsl,
|
|
1226
|
+
entryPoint: "closeness_level",
|
|
1227
|
+
bindings: [
|
|
1228
|
+
decl(1, 0, "rowPtr", "storage-ro", "array<u32>"),
|
|
1229
|
+
decl(1, 1, "colIdx", "storage-ro", "array<u32>"),
|
|
1230
|
+
decl(1, 2, "inRowPtr", "storage-ro", "array<u32>"),
|
|
1231
|
+
decl(1, 3, "inColIdx", "storage-ro", "array<u32>"),
|
|
1232
|
+
decl(1, 4, "bits", "storage", "array<atomic<u32>>"),
|
|
1233
|
+
decl(1, 5, "table", "storage", "array<atomic<u32>>"),
|
|
1234
|
+
decl(2, 0, "P", "uniform", "ClosenessParams"),
|
|
1235
|
+
],
|
|
1201
1236
|
overrideDecls: [],
|
|
1202
|
-
uniforms: [
|
|
1237
|
+
uniforms: [CLOSENESS_PARAMS],
|
|
1203
1238
|
needs: [],
|
|
1204
1239
|
snippetSlots: [],
|
|
1205
1240
|
phase: "P8",
|
|
1206
1241
|
};
|
|
1207
|
-
/** `closeness-
|
|
1208
|
-
const
|
|
1209
|
-
id: "closeness-
|
|
1210
|
-
body:
|
|
1211
|
-
entryPoint: "
|
|
1242
|
+
/** `closeness-rowsum` (design 8.7): closeness from a finished all-pairs matrix, one workgroup per row -- the off-diagonal finite entries summed as integers (`P.role` 0), as f32 (1) or as reciprocals (2, harmonic), by a tree reduction; 2 storage bindings (`dist` read-only, `out`). */
|
|
1243
|
+
const CLOSENESS_ROWSUM = {
|
|
1244
|
+
id: "closeness-rowsum",
|
|
1245
|
+
body: closenessRowsumWgsl,
|
|
1246
|
+
entryPoint: "closeness_rowsum",
|
|
1212
1247
|
bindings: [
|
|
1213
|
-
decl(1, 0, "
|
|
1214
|
-
decl(1, 1, "
|
|
1215
|
-
decl(
|
|
1216
|
-
decl(2, 0, "P", "uniform", "FrontierParams"),
|
|
1248
|
+
decl(1, 0, "dist", "storage-ro", "array<f32>"),
|
|
1249
|
+
decl(1, 1, "out", "storage", "array<u32>"),
|
|
1250
|
+
decl(2, 0, "P", "uniform", "ClosenessParams"),
|
|
1217
1251
|
],
|
|
1218
1252
|
overrideDecls: [],
|
|
1219
|
-
uniforms: [
|
|
1253
|
+
uniforms: [CLOSENESS_PARAMS],
|
|
1220
1254
|
needs: [],
|
|
1221
1255
|
snippetSlots: [],
|
|
1222
|
-
phase: "
|
|
1256
|
+
phase: "P9",
|
|
1223
1257
|
};
|
|
1224
1258
|
/** `bc-finalize` (design 8.4, 5.4): the one-lane bookkeeping of a betweenness batch -- role 1 seeds it (depth 0 and one path for the k seed entries of the claim log, `stackTop = k`, `level = U32_MAX`), role 0 is the level boundary (`ends[level + 1] = stackTop`, `frontierCount`, `done` on an empty level); 6 storage bindings (the counters block as `array<atomic<u32>>`, `ends`, `S` read-only, `depthK`, `sigmaK` and `levelMax` plain: one lane writes the seed; `SCALED` seeds f32 bits). The design's finalize row has 2; `ends` is the third (the level boundary), and the seed's `S`, `depthK`, `sigmaK` and `levelMax` make it six. */
|
|
1225
1259
|
const BC_FINALIZE = {
|
|
@@ -1586,7 +1620,7 @@ const MST_LINK = {
|
|
|
1586
1620
|
* and `"fa2-to-scene"`; M8b-T3 landed the seven P7 entries and P4 its thirteen; P8-T3 landed the three compact /
|
|
1587
1621
|
* dedupe entries, P8-T4 `"frontier-finalize"`, P8-T5 `"advance-expand"`, P8-T6 `"bfs-contract"` and `"sssp-pred"` and
|
|
1588
1622
|
* P8-T7 `"bfs-fused"`, P8-T8 `"bfs-bottom-up"`, `"bfs-bitset-build"` and `"bfs-unvisited-flags"`, P8-T9
|
|
1589
|
-
* `"sssp-relax"`, P8-T10 `"bf-relax"
|
|
1623
|
+
* `"sssp-relax"`, P8-T10 `"bf-relax"`, closeness `"closeness-level"` and `"closeness-rowsum"`, betweenness the
|
|
1590
1624
|
* six `"bc-*"` entries, all-pairs shortest paths `"apsp-init"` and `"apsp-fw"`, and P11 its seven (the graph
|
|
1591
1625
|
* build, the group-by-key, label propagation's step and triangle counting) plus Boruvka's `"mst-best"` and
|
|
1592
1626
|
* `"mst-link"`, so every member of `KernelId`
|
|
@@ -1637,8 +1671,8 @@ const REGISTRY = Object.freeze({
|
|
|
1637
1671
|
"bfs-next-degree": BFS_NEXT_DEGREE,
|
|
1638
1672
|
"sssp-relax": SSSP_RELAX,
|
|
1639
1673
|
"bf-relax": BF_RELAX,
|
|
1640
|
-
"closeness-
|
|
1641
|
-
"closeness-
|
|
1674
|
+
"closeness-level": CLOSENESS_LEVEL,
|
|
1675
|
+
"closeness-rowsum": CLOSENESS_ROWSUM,
|
|
1642
1676
|
"bc-finalize": BC_FINALIZE,
|
|
1643
1677
|
"bc-forward": BC_FORWARD,
|
|
1644
1678
|
"bc-backward": BC_BACKWARD,
|