@graphty/webgpu-graph-algorithms 0.6.21 → 0.6.22
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 +1 -1
- package/dist/browser.js +1 -1
- package/dist/chunks/{context-VIvatQOo.js → context-B40Z6lV_.js} +39 -30
- package/dist/chunks/context-B40Z6lV_.js.map +1 -0
- package/dist/node.js +1 -1
- package/dist/src/accelerator.d.ts +1 -1
- package/dist/src/accelerator.d.ts.map +1 -1
- package/dist/src/accelerator.js +20 -1
- package/dist/src/accelerator.js.map +1 -1
- package/dist/src/algorithms/mst.d.ts +50 -0
- package/dist/src/algorithms/mst.d.ts.map +1 -0
- package/dist/src/algorithms/mst.js +245 -0
- package/dist/src/algorithms/mst.js.map +1 -0
- package/dist/src/constants.d.ts +6 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +6 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/prelude.d.ts.map +1 -1
- package/dist/src/kernel/prelude.js +7 -1
- package/dist/src/kernel/prelude.js.map +1 -1
- package/dist/src/kernels.d.ts +5 -2
- package/dist/src/kernels.d.ts.map +1 -1
- package/dist/src/kernels.js +58 -2
- package/dist/src/kernels.js.map +1 -1
- package/dist/src/types/accelerator.d.ts +7 -5
- package/dist/src/types/accelerator.d.ts.map +1 -1
- package/dist/src/types/structure.d.ts +17 -0
- package/dist/src/types/structure.d.ts.map +1 -1
- package/dist/src/wgsl/mst-best.wgsl.d.ts +13 -0
- package/dist/src/wgsl/mst-best.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/mst-best.wgsl.js +32 -0
- package/dist/src/wgsl/mst-best.wgsl.js.map +1 -0
- package/dist/src/wgsl/mst-link.wgsl.d.ts +14 -0
- package/dist/src/wgsl/mst-link.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/mst-link.wgsl.js +39 -0
- package/dist/src/wgsl/mst-link.wgsl.js.map +1 -0
- package/dist/webgpu-graph-algorithms.js +473 -162
- package/dist/webgpu-graph-algorithms.js.map +1 -1
- package/package.json +3 -3
- package/src/accelerator.ts +22 -2
- package/src/algorithms/mst.ts +269 -0
- package/src/constants.ts +6 -1
- package/src/index.ts +3 -1
- package/src/kernel/prelude.ts +7 -0
- package/src/kernels.ts +64 -3
- package/src/types/accelerator.ts +7 -3
- package/src/types/structure.ts +18 -0
- package/src/wgsl/mst-best.wgsl.ts +31 -0
- package/src/wgsl/mst-link.wgsl.ts +38 -0
- package/dist/chunks/context-VIvatQOo.js.map +0 -1
package/dist/node.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { W as WebGpuGraphError, G as GpuContext } from "./chunks/context-
|
|
1
|
+
import { W as WebGpuGraphError, G as GpuContext } from "./chunks/context-B40Z6lV_.js";
|
|
2
2
|
const INSTALL_HINT = "install the optional peer dependency webgpu@0.4.0";
|
|
3
3
|
const instances = /* @__PURE__ */ new Map();
|
|
4
4
|
function isDawnModule(loaded) {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* both models were green, P5 PD-19), P7's seven algorithm members (spec 8.2, 8.3; M8b-T8, PD-14) and P8's four
|
|
9
9
|
* traversal members (spec 8.4; P8-T13 PD-16, PD-19: `breadthFirstSearch`, `sssp`, `bellmanFord`,
|
|
10
10
|
* `closenessCentrality`, each taking the seam's own option type), `allPairsShortestPath` (design 8.7), P11's
|
|
11
|
-
* `triangleCount` and `labelPropagation`, and nothing else: the CPU-side dispatchers
|
|
11
|
+
* `triangleCount` and `labelPropagation`, Boruvka's `minimumSpanningTree`, and nothing else: the CPU-side dispatchers
|
|
12
12
|
* (`accelerated()`, `createSimulation()`) test `acc.betweennessCentrality !== undefined` /
|
|
13
13
|
* `acc.fruchtermanReingold !== undefined` and route to the CPU when the member is absent (spec 2.4 row "method
|
|
14
14
|
* missing"), so a method the GPU does not implement must not exist here -- never a throwing stub. The remaining
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accelerator.d.ts","sourceRoot":"","sources":["../../src/accelerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"accelerator.d.ts","sourceRoot":"","sources":["../../src/accelerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAgBH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C,OAAO,EACH,KAAK,kBAAkB,EAIvB,KAAK,cAAc,EAItB,MAAM,wBAAwB,CAAC;AA6GhC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAoR/F"}
|
package/dist/src/accelerator.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* both models were green, P5 PD-19), P7's seven algorithm members (spec 8.2, 8.3; M8b-T8, PD-14) and P8's four
|
|
9
9
|
* traversal members (spec 8.4; P8-T13 PD-16, PD-19: `breadthFirstSearch`, `sssp`, `bellmanFord`,
|
|
10
10
|
* `closenessCentrality`, each taking the seam's own option type), `allPairsShortestPath` (design 8.7), P11's
|
|
11
|
-
* `triangleCount` and `labelPropagation`, and nothing else: the CPU-side dispatchers
|
|
11
|
+
* `triangleCount` and `labelPropagation`, Boruvka's `minimumSpanningTree`, and nothing else: the CPU-side dispatchers
|
|
12
12
|
* (`accelerated()`, `createSimulation()`) test `acc.betweennessCentrality !== undefined` /
|
|
13
13
|
* `acc.fruchtermanReingold !== undefined` and route to the CPU when the member is absent (spec 2.4 row "method
|
|
14
14
|
* missing"), so a method the GPU does not implement must not exist here -- never a throwing stub. The remaining
|
|
@@ -21,6 +21,7 @@ import { breadthFirstSearch } from "./algorithms/bfs.js";
|
|
|
21
21
|
import { closenessCentrality } from "./algorithms/closeness.js";
|
|
22
22
|
import { connectedComponents } from "./algorithms/components.js";
|
|
23
23
|
import { labelPropagation } from "./algorithms/label-propagation.js";
|
|
24
|
+
import { minimumSpanningTree } from "./algorithms/mst.js";
|
|
24
25
|
import { pageRank, personalizedPageRank } from "./algorithms/pagerank.js";
|
|
25
26
|
import { eigenvectorCentrality, hits, katzCentrality } from "./algorithms/spectral.js";
|
|
26
27
|
import { sssp } from "./algorithms/sssp.js";
|
|
@@ -334,6 +335,24 @@ export function createAccelerator(ctx, options) {
|
|
|
334
335
|
}
|
|
335
336
|
return await labelPropagation(ctx, gs, { maxIterations: o?.maxIterations, weighted: o?.weighted });
|
|
336
337
|
},
|
|
338
|
+
/**
|
|
339
|
+
* Boruvka's minimum spanning forest (design 8.5; P11-T4): the forest of the total edge order (weight, then
|
|
340
|
+
* edge index), which is the one `kruskalMST` accepts. The seam's per-arc `weights` override is refused when
|
|
341
|
+
* defined: the forest runs over the snapshot's own edge weights.
|
|
342
|
+
* @param gs - the snapshot
|
|
343
|
+
* @param o - the seam's `MstOptions`; `weights` refused when defined
|
|
344
|
+
* @returns the forest's logical edge indices and its f64 total weight
|
|
345
|
+
*/
|
|
346
|
+
async minimumSpanningTree(gs, o) {
|
|
347
|
+
ctx.assertReady();
|
|
348
|
+
if (o?.weights !== undefined) {
|
|
349
|
+
throw new WebGpuGraphError("E_UNSUPPORTED", "minimumSpanningTree: weights is not supported", {
|
|
350
|
+
option: "weights",
|
|
351
|
+
hint: "the spanning forest runs over the snapshot's own edge weights",
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
return await minimumSpanningTree(ctx, gs);
|
|
355
|
+
},
|
|
337
356
|
/**
|
|
338
357
|
* Destroys every device buffer recorded for the snapshot (spec 4.5); delegates to ctx.release.
|
|
339
358
|
* @param s - the snapshot the app is done with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accelerator.js","sourceRoot":"","sources":["../../src/accelerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"accelerator.js","sourceRoot":"","sources":["../../src/accelerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boruvka's minimum spanning forest (design 8.5, 3.3 line 808; the P11 plan's P11-T4) over the snapshot's edge list,
|
|
3
|
+
* each logical edge once, so a directed snapshot is spanned as its underlying undirected multigraph -- what
|
|
4
|
+
* `@graphty/algorithms`' `kruskalMST` does. Every vertex starts as its own component (`comp[v] = v`); each round:
|
|
5
|
+
*
|
|
6
|
+
* 1. `fill` resets every component's `bestKey` and `bestEdge` to `U32_MAX`;
|
|
7
|
+
* 2. `mst-best` twice (PD-7): the per-component minimum of the TOTAL edge order -- the order-preserving key of the
|
|
8
|
+
* weight first (PD-6: negative weights order below positive ones, -0 equals +0), the edge index among ties -- over
|
|
9
|
+
* the edges whose endpoints lie in different components, so self-loops and edges inside a component never compete;
|
|
10
|
+
* 3. `mst-link`: each root with a best edge hooks onto the component at its other end and records the edge, the lower
|
|
11
|
+
* root of a two-cycle keeping its label so the edge is recorded once;
|
|
12
|
+
* 4. `wcc-compress` (PD-7: the Afforest kernel, unchanged) until every vertex points at its root: a walk of at most
|
|
13
|
+
* COMPRESS_STEPS per dispatch divides every depth by COMPRESS_STEPS, so `compressPasses(n)` dispatches suffice.
|
|
14
|
+
*
|
|
15
|
+
* Because the order is total the forest is unique: it is the one Kruskal accepts when its sort breaks ties by edge
|
|
16
|
+
* index, which `kruskalMST` does. So the edge SET equals the CPU's on every graph, tied weights included; only the
|
|
17
|
+
* order of `edges` differs.
|
|
18
|
+
*
|
|
19
|
+
* BORUVKA_ROUNDS_PER_SUBMIT rounds are recorded per submit with one readback of their recorded-edge counts; a round
|
|
20
|
+
* that records nothing ends the run (rounds after it inside the same submit change nothing). The round count is at
|
|
21
|
+
* most ceil(log2 n) + 1, because every round at least halves the components that still have an outgoing edge;
|
|
22
|
+
* MAX_ROUNDS is the bound a device bug cannot pass, never a fallback. The forest is read back once at the end.
|
|
23
|
+
*
|
|
24
|
+
* PLAN DECISION (P11-T4 Step 3 appends each edge through an `atomicAdd` on the counters block): a root records its
|
|
25
|
+
* edge in its own word of `treeEdge`, because a root hooks at most once in a run. The result is then deterministic
|
|
26
|
+
* (the edges in root order, round by round) with no host sort, where an atomic append is ordered by the schedule.
|
|
27
|
+
*
|
|
28
|
+
* `totalWeight` is summed on the host in f64 over the snapshot's own edge weights, so it differs from
|
|
29
|
+
* `kruskalMST`'s only by the order of the summation.
|
|
30
|
+
*/
|
|
31
|
+
import { type GraphSnapshot } from "@graphty/graph-format";
|
|
32
|
+
import { type GpuContext } from "../context.js";
|
|
33
|
+
import { type GpuRunOptions } from "../types/run.js";
|
|
34
|
+
import { type GpuMstResult } from "../types/structure.js";
|
|
35
|
+
/**
|
|
36
|
+
* The `wcc-compress` dispatches that flatten any forest of `n` vertices: each one divides every depth by
|
|
37
|
+
* COMPRESS_STEPS (a vertex lands at least COMPRESS_STEPS ancestors up, or on its root).
|
|
38
|
+
* @param n - the vertex count
|
|
39
|
+
* @returns the dispatch count, at least 1
|
|
40
|
+
*/
|
|
41
|
+
export declare function compressPasses(n: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* Boruvka's minimum spanning forest on the device (see the file header).
|
|
44
|
+
* @param ctx - the context whose device runs the kernels
|
|
45
|
+
* @param s - the snapshot (its edge list is uploaded through ctx.residency, or found there)
|
|
46
|
+
* @param options - signal, onProgress (`dest` is refused: the forest's length is not known before the run)
|
|
47
|
+
* @returns the forest's logical edge indices and its total weight
|
|
48
|
+
*/
|
|
49
|
+
export declare function minimumSpanningTree(ctx: GpuContext, s: GraphSnapshot, options?: GpuRunOptions): Promise<GpuMstResult>;
|
|
50
|
+
//# sourceMappingURL=mst.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mst.d.ts","sourceRoot":"","sources":["../../../src/algorithms/mst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,uBAAuB,CAAC;AAGpF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAOhD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAW1D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMhD;AAoCD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACrC,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,aAAa,EAChB,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,YAAY,CAAC,CA4JvB"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boruvka's minimum spanning forest (design 8.5, 3.3 line 808; the P11 plan's P11-T4) over the snapshot's edge list,
|
|
3
|
+
* each logical edge once, so a directed snapshot is spanned as its underlying undirected multigraph -- what
|
|
4
|
+
* `@graphty/algorithms`' `kruskalMST` does. Every vertex starts as its own component (`comp[v] = v`); each round:
|
|
5
|
+
*
|
|
6
|
+
* 1. `fill` resets every component's `bestKey` and `bestEdge` to `U32_MAX`;
|
|
7
|
+
* 2. `mst-best` twice (PD-7): the per-component minimum of the TOTAL edge order -- the order-preserving key of the
|
|
8
|
+
* weight first (PD-6: negative weights order below positive ones, -0 equals +0), the edge index among ties -- over
|
|
9
|
+
* the edges whose endpoints lie in different components, so self-loops and edges inside a component never compete;
|
|
10
|
+
* 3. `mst-link`: each root with a best edge hooks onto the component at its other end and records the edge, the lower
|
|
11
|
+
* root of a two-cycle keeping its label so the edge is recorded once;
|
|
12
|
+
* 4. `wcc-compress` (PD-7: the Afforest kernel, unchanged) until every vertex points at its root: a walk of at most
|
|
13
|
+
* COMPRESS_STEPS per dispatch divides every depth by COMPRESS_STEPS, so `compressPasses(n)` dispatches suffice.
|
|
14
|
+
*
|
|
15
|
+
* Because the order is total the forest is unique: it is the one Kruskal accepts when its sort breaks ties by edge
|
|
16
|
+
* index, which `kruskalMST` does. So the edge SET equals the CPU's on every graph, tied weights included; only the
|
|
17
|
+
* order of `edges` differs.
|
|
18
|
+
*
|
|
19
|
+
* BORUVKA_ROUNDS_PER_SUBMIT rounds are recorded per submit with one readback of their recorded-edge counts; a round
|
|
20
|
+
* that records nothing ends the run (rounds after it inside the same submit change nothing). The round count is at
|
|
21
|
+
* most ceil(log2 n) + 1, because every round at least halves the components that still have an outgoing edge;
|
|
22
|
+
* MAX_ROUNDS is the bound a device bug cannot pass, never a fallback. The forest is read back once at the end.
|
|
23
|
+
*
|
|
24
|
+
* PLAN DECISION (P11-T4 Step 3 appends each edge through an `atomicAdd` on the counters block): a root records its
|
|
25
|
+
* edge in its own word of `treeEdge`, because a root hooks at most once in a run. The result is then deterministic
|
|
26
|
+
* (the edges in root order, round by round) with no host sort, where an atomic append is ordered by the schedule.
|
|
27
|
+
*
|
|
28
|
+
* `totalWeight` is summed on the host in f64 over the snapshot's own edge weights, so it differs from
|
|
29
|
+
* `kruskalMST`'s only by the order of the summation.
|
|
30
|
+
*/
|
|
31
|
+
import { INVALID_INDEX } from "@graphty/graph-format";
|
|
32
|
+
import { BORUVKA_ROUNDS_PER_SUBMIT, U32_MAX } from "../constants.js";
|
|
33
|
+
import { WebGpuGraphError } from "../errors.js";
|
|
34
|
+
import { CommandBatch } from "../kernel/batch.js";
|
|
35
|
+
import { plan1d, planGridStride } from "../kernel/dispatch.js";
|
|
36
|
+
import { FILL_PARAMS, kernelSpec, MST_PARAMS, WCC_PARAMS } from "../kernels.js";
|
|
37
|
+
import { assertDeviceComputes } from "../primitives/verify.js";
|
|
38
|
+
import { algorithmScope } from "./scope.js";
|
|
39
|
+
const ALGORITHM = "minimumSpanningTree";
|
|
40
|
+
/** The bound of one compress walk (the `maxSteps` of `wcc-compress`), as connected components uses. */
|
|
41
|
+
const COMPRESS_STEPS = 1024;
|
|
42
|
+
/** A round count no correct run reaches: at most ceil(log2 n) + 1 <= 33 rounds for any u32 node count. */
|
|
43
|
+
const MAX_ROUNDS = 64;
|
|
44
|
+
/** Params slots of the largest batch: the first one's two initial fills, the reset fill, the shared best-pass and compress blocks, and one link block per round. */
|
|
45
|
+
const RING_SLOTS = 5 + BORUVKA_ROUNDS_PER_SUBMIT;
|
|
46
|
+
/**
|
|
47
|
+
* The `wcc-compress` dispatches that flatten any forest of `n` vertices: each one divides every depth by
|
|
48
|
+
* COMPRESS_STEPS (a vertex lands at least COMPRESS_STEPS ancestors up, or on its root).
|
|
49
|
+
* @param n - the vertex count
|
|
50
|
+
* @returns the dispatch count, at least 1
|
|
51
|
+
*/
|
|
52
|
+
export function compressPasses(n) {
|
|
53
|
+
let passes = 1;
|
|
54
|
+
for (let reach = COMPRESS_STEPS; reach < n; reach *= COMPRESS_STEPS) {
|
|
55
|
+
passes++;
|
|
56
|
+
}
|
|
57
|
+
return passes;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The forest from the per-root `treeEdge` words, with the host-side f64 total.
|
|
61
|
+
* @param s - the snapshot
|
|
62
|
+
* @param treeEdge - one word per vertex, the edge its component recorded or INVALID_INDEX
|
|
63
|
+
* @param expected - the edge count the rounds reported
|
|
64
|
+
* @returns the result
|
|
65
|
+
*/
|
|
66
|
+
function resultOf(s, treeEdge, expected) {
|
|
67
|
+
const edges = new Uint32Array(expected);
|
|
68
|
+
const { weights } = s.edgeList();
|
|
69
|
+
let taken = 0;
|
|
70
|
+
let totalWeight = 0;
|
|
71
|
+
for (const e of treeEdge) {
|
|
72
|
+
if (e === INVALID_INDEX) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (e >= s.edgeCount || taken === expected) {
|
|
76
|
+
throw new WebGpuGraphError("E_VALIDATION", `${ALGORITHM}: the device recorded an edge it did not count`, {
|
|
77
|
+
label: `${ALGORITHM}/treeEdge`,
|
|
78
|
+
message: `edge ${e} at forest position ${taken} of ${expected}`,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
edges[taken++] = e;
|
|
82
|
+
totalWeight += weights === null ? 1 : weights[e];
|
|
83
|
+
}
|
|
84
|
+
if (taken !== expected) {
|
|
85
|
+
throw new WebGpuGraphError("E_VALIDATION", `${ALGORITHM}: ${taken} recorded edges, ${expected} counted`, {
|
|
86
|
+
label: `${ALGORITHM}/treeEdge`,
|
|
87
|
+
message: "the per-round counts disagree with the recorded forest",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return { edges, totalWeight };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Boruvka's minimum spanning forest on the device (see the file header).
|
|
94
|
+
* @param ctx - the context whose device runs the kernels
|
|
95
|
+
* @param s - the snapshot (its edge list is uploaded through ctx.residency, or found there)
|
|
96
|
+
* @param options - signal, onProgress (`dest` is refused: the forest's length is not known before the run)
|
|
97
|
+
* @returns the forest's logical edge indices and its total weight
|
|
98
|
+
*/
|
|
99
|
+
export async function minimumSpanningTree(ctx, s, options) {
|
|
100
|
+
ctx.assertReady();
|
|
101
|
+
await assertDeviceComputes(ctx);
|
|
102
|
+
if (options?.dest !== undefined) {
|
|
103
|
+
throw new WebGpuGraphError("E_UNSUPPORTED", `${ALGORITHM}: dest is not supported`, {
|
|
104
|
+
option: "dest",
|
|
105
|
+
hint: "the forest's edge count is known only after the run",
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (options?.signal?.aborted) {
|
|
109
|
+
throw new WebGpuGraphError("E_ABORTED", `${ALGORITHM}: the signal was aborted before any work started`, {});
|
|
110
|
+
}
|
|
111
|
+
const n = s.nodeCount;
|
|
112
|
+
const m = s.edgeCount;
|
|
113
|
+
if (n === 0 || m === 0) {
|
|
114
|
+
options?.onProgress?.(1, 1);
|
|
115
|
+
return { edges: new Uint32Array(0), totalWeight: 0 };
|
|
116
|
+
}
|
|
117
|
+
// core() is what records (or re-records, after a release) the snapshot in the residency; only the edge list is read
|
|
118
|
+
ctx.residency.core(s, ["rowPtr"]);
|
|
119
|
+
const edges = ctx.residency.view(s, "edgeList");
|
|
120
|
+
const edgeWeight = edges.bindings.weights ?? null;
|
|
121
|
+
const scope = algorithmScope(ctx, ALGORITHM, RING_SLOTS);
|
|
122
|
+
try {
|
|
123
|
+
const wg = ctx.workgroupSize;
|
|
124
|
+
const words = (count, label) => {
|
|
125
|
+
const size = 4 * Math.max(1, count);
|
|
126
|
+
return { buffer: scope.scratch(size, label), offset: 0, size, window: null };
|
|
127
|
+
};
|
|
128
|
+
const comp = words(n, "comp");
|
|
129
|
+
const bestKey = words(n, "bestKey");
|
|
130
|
+
const bestEdge = words(n, "bestEdge");
|
|
131
|
+
const treeEdge = words(n, "treeEdge");
|
|
132
|
+
const counters = words(BORUVKA_ROUNDS_PER_SUBMIT, "counters");
|
|
133
|
+
await ctx.allocator.check();
|
|
134
|
+
const fill = await ctx.pipelines.kernel(kernelSpec("fill"));
|
|
135
|
+
const weighted = edgeWeight !== null;
|
|
136
|
+
const minKey = await ctx.pipelines.kernel(kernelSpec("mst-best", { PASS: 0, WEIGHTED: weighted }));
|
|
137
|
+
const minEdge = await ctx.pipelines.kernel(kernelSpec("mst-best", { PASS: 1, WEIGHTED: weighted }));
|
|
138
|
+
const link = await ctx.pipelines.kernel(kernelSpec("mst-link"));
|
|
139
|
+
const compress = await ctx.pipelines.kernel(kernelSpec("wcc-compress"));
|
|
140
|
+
const nodePlan = plan1d(n, wg, ctx.caps);
|
|
141
|
+
const edgePlan = plan1d(m, wg, ctx.caps);
|
|
142
|
+
const compressPlan = planGridStride(n, wg, ctx.caps);
|
|
143
|
+
const passes = compressPasses(n);
|
|
144
|
+
const { queue } = ctx.device;
|
|
145
|
+
let batch = new CommandBatch(ctx, `${ALGORITHM}/rounds`);
|
|
146
|
+
let first = true;
|
|
147
|
+
let rounds = 0;
|
|
148
|
+
let recorded = 0;
|
|
149
|
+
for (;;) {
|
|
150
|
+
queue.writeBuffer(counters.buffer, 0, new Uint32Array(BORUVKA_ROUNDS_PER_SUBMIT));
|
|
151
|
+
const pass = batch.pass("rounds");
|
|
152
|
+
const fillFor = (value, mode) => scope.params(FILL_PARAMS, { count: n, value, mode, pad0: 0 });
|
|
153
|
+
if (first) {
|
|
154
|
+
const iota = fillFor(0, 1);
|
|
155
|
+
fill.dispatch(pass, fill.bind({ dst: comp, P: iota.binding }), nodePlan, [iota.offset]);
|
|
156
|
+
const none = fillFor(INVALID_INDEX, 0);
|
|
157
|
+
fill.dispatch(pass, fill.bind({ dst: treeEdge, P: none.binding }), nodePlan, [none.offset]);
|
|
158
|
+
}
|
|
159
|
+
const reset = fillFor(U32_MAX, 0);
|
|
160
|
+
const edgeParams = scope.params(MST_PARAMS, { count: m, counterIndex: 0, pad0: 0, pad1: 0 });
|
|
161
|
+
const compressParams = scope.params(WCC_PARAMS, {
|
|
162
|
+
n,
|
|
163
|
+
items: n,
|
|
164
|
+
stride: compressPlan.stride ?? n,
|
|
165
|
+
r: 0,
|
|
166
|
+
flagIndex: 0,
|
|
167
|
+
giant: U32_MAX,
|
|
168
|
+
maxSteps: COMPRESS_STEPS,
|
|
169
|
+
pad0: 0,
|
|
170
|
+
});
|
|
171
|
+
const graph = {
|
|
172
|
+
edgeSrc: edges.bindings.src,
|
|
173
|
+
edgeDst: edges.bindings.dst,
|
|
174
|
+
edgeWeight: edgeWeight ?? edges.bindings.src,
|
|
175
|
+
};
|
|
176
|
+
for (let i = 0; i < BORUVKA_ROUNDS_PER_SUBMIT; i++) {
|
|
177
|
+
for (const dst of [bestKey, bestEdge]) {
|
|
178
|
+
fill.dispatch(pass, fill.bind({ dst, P: reset.binding }), nodePlan, [reset.offset]);
|
|
179
|
+
}
|
|
180
|
+
for (const kernel of [minKey, minEdge]) {
|
|
181
|
+
kernel.dispatch(pass, kernel.bind({ ...graph, comp, bestKey, bestEdge, P: edgeParams.binding }), edgePlan, [edgeParams.offset]);
|
|
182
|
+
}
|
|
183
|
+
const linkParams = scope.params(MST_PARAMS, { count: n, counterIndex: i, pad0: 0, pad1: 0 });
|
|
184
|
+
link.dispatch(pass, link.bind({
|
|
185
|
+
edgeSrc: graph.edgeSrc,
|
|
186
|
+
edgeDst: graph.edgeDst,
|
|
187
|
+
bestEdge,
|
|
188
|
+
comp,
|
|
189
|
+
treeEdge,
|
|
190
|
+
counters,
|
|
191
|
+
P: linkParams.binding,
|
|
192
|
+
}), nodePlan, [linkParams.offset]);
|
|
193
|
+
for (let j = 0; j < passes; j++) {
|
|
194
|
+
compress.dispatch(pass, compress.bind({ comp, P: compressParams.binding }), compressPlan, [
|
|
195
|
+
compressParams.offset,
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
batch.endPass();
|
|
200
|
+
const countsRequest = batch.readback(counters.buffer, 0, 4 * BORUVKA_ROUNDS_PER_SUBMIT);
|
|
201
|
+
scope.flush();
|
|
202
|
+
const submitted = batch.submit();
|
|
203
|
+
const bytes = await submitted.readback;
|
|
204
|
+
ctx.assertReady();
|
|
205
|
+
first = false;
|
|
206
|
+
if (options?.signal?.aborted) {
|
|
207
|
+
throw new WebGpuGraphError("E_ABORTED", `${ALGORITHM}: the signal was aborted`, {
|
|
208
|
+
batchId: submitted.id,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
const counts = new Uint32Array(bytes, countsRequest.offset, BORUVKA_ROUNDS_PER_SUBMIT);
|
|
212
|
+
let settled = false;
|
|
213
|
+
for (const count of counts) {
|
|
214
|
+
recorded += count;
|
|
215
|
+
settled || (settled = count === 0);
|
|
216
|
+
}
|
|
217
|
+
rounds += BORUVKA_ROUNDS_PER_SUBMIT;
|
|
218
|
+
if (recorded > n - 1) {
|
|
219
|
+
throw new WebGpuGraphError("E_VALIDATION", `${ALGORITHM}: ${recorded} forest edges on ${n} nodes`, {
|
|
220
|
+
label: `${ALGORITHM}/counters`,
|
|
221
|
+
message: "a spanning forest has at most n - 1 edges",
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
if (settled) {
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
if (rounds >= MAX_ROUNDS) {
|
|
228
|
+
throw new WebGpuGraphError("E_VALIDATION", `${ALGORITHM}: still merging after ${rounds} rounds`, {
|
|
229
|
+
label: `${ALGORITHM}/rounds`,
|
|
230
|
+
message: "Boruvka halves the components every round; the device did not",
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
batch = new CommandBatch(ctx, `${ALGORITHM}/rounds`);
|
|
234
|
+
}
|
|
235
|
+
const raw = new Uint32Array(n);
|
|
236
|
+
await ctx.readback.read(treeEdge.buffer, 4 * n, raw);
|
|
237
|
+
ctx.assertReady();
|
|
238
|
+
options?.onProgress?.(1, 1);
|
|
239
|
+
return resultOf(s, raw, recorded);
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
scope.dispose();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=mst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mst.js","sourceRoot":"","sources":["../../../src/algorithms/mst.ts"],"names":[],"mappings":"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"}
|
package/dist/src/constants.d.ts
CHANGED
|
@@ -245,9 +245,14 @@ export declare const LABEL_PROP_PASSES_PER_SUBMIT = 8;
|
|
|
245
245
|
* per submit. Each readback is a device-to-host synchronisation that costs about 2 ms in Chromium, and at one per
|
|
246
246
|
* round the syncs are 61 % of the 100,000-node call; four rounds per submit amortise them over O(log n) rounds, moving
|
|
247
247
|
* the Chromium crossover from 6,000 to 4,600 nodes (design/decisions/2026-09-26-which-algorithms-earn-the-gpu.md).
|
|
248
|
-
*
|
|
248
|
+
* `src/algorithms/mst.ts` reads it.
|
|
249
249
|
*/
|
|
250
250
|
export declare const BORUVKA_ROUNDS_PER_SUBMIT = 4;
|
|
251
|
+
/**
|
|
252
|
+
* The sign bit of an f32 bit pattern; interpolated into the prelude as `F32_SIGN_BIT` for `order_key`, the
|
|
253
|
+
* order-preserving u32 key of an f32 that Boruvka's `atomicMin` over edge weights runs on (P11 PD-6).
|
|
254
|
+
*/
|
|
255
|
+
export declare const F32_SIGN_BIT = 2147483648;
|
|
251
256
|
/** The per-row group-by-key (design 8.6): a row of at most this many arcs is grouped by one thread in registers; a longer row by a workgroup over a global open-addressing region. */
|
|
252
257
|
export declare const GROUP_ROW_THREAD_MAX = 32;
|
|
253
258
|
/** The largest row the thread tier accepts when a caller forces the tier: its pairwise scan is about d^2 / 2 loop steps, and llvmpipe stops every loop of an invocation after 65,535 steps in total. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/src/constants.js
CHANGED
|
@@ -245,9 +245,14 @@ export const LABEL_PROP_PASSES_PER_SUBMIT = 8;
|
|
|
245
245
|
* per submit. Each readback is a device-to-host synchronisation that costs about 2 ms in Chromium, and at one per
|
|
246
246
|
* round the syncs are 61 % of the 100,000-node call; four rounds per submit amortise them over O(log n) rounds, moving
|
|
247
247
|
* the Chromium crossover from 6,000 to 4,600 nodes (design/decisions/2026-09-26-which-algorithms-earn-the-gpu.md).
|
|
248
|
-
*
|
|
248
|
+
* `src/algorithms/mst.ts` reads it.
|
|
249
249
|
*/
|
|
250
250
|
export const BORUVKA_ROUNDS_PER_SUBMIT = 4;
|
|
251
|
+
/**
|
|
252
|
+
* The sign bit of an f32 bit pattern; interpolated into the prelude as `F32_SIGN_BIT` for `order_key`, the
|
|
253
|
+
* order-preserving u32 key of an f32 that Boruvka's `atomicMin` over edge weights runs on (P11 PD-6).
|
|
254
|
+
*/
|
|
255
|
+
export const F32_SIGN_BIT = 0x80000000;
|
|
251
256
|
/** The per-row group-by-key (design 8.6): a row of at most this many arcs is grouped by one thread in registers; a longer row by a workgroup over a global open-addressing region. */
|
|
252
257
|
export const GROUP_ROW_THREAD_MAX = 32;
|
|
253
258
|
/** The largest row the thread tier accepts when a caller forces the tier: its pairwise scan is about d^2 / 2 loop steps, and llvmpipe stops every loop of an invocation after 65,535 steps in total. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export { closenessCentrality } from "./algorithms/closeness.js";
|
|
|
32
32
|
export { sssp } from "./algorithms/sssp.js";
|
|
33
33
|
export { allPairsShortestPath } from "./algorithms/all-pairs.js";
|
|
34
34
|
export { labelPropagation } from "./algorithms/label-propagation.js";
|
|
35
|
+
export { minimumSpanningTree } from "./algorithms/mst.js";
|
|
35
36
|
export { triangleCount } from "./algorithms/triangles.js";
|
|
36
37
|
export { createAccelerator } from "./accelerator.js";
|
|
37
38
|
export { calibrateLayout } from "./layouts/calibrate.js";
|
|
@@ -39,9 +40,9 @@ export { createForceAtlas2 } from "./layouts/forceatlas2.js";
|
|
|
39
40
|
export { createFruchtermanReingold } from "./layouts/fruchterman-reingold.js";
|
|
40
41
|
export { seedPositions } from "./layouts/seed.js";
|
|
41
42
|
export { createSpringElectrical } from "./layouts/spring-electrical.js";
|
|
42
|
-
export type { AcceleratorOptions, AlgorithmAccelerator, ApspResultLike, BellmanFordResultLike, BetweennessAcceleratorOptions, BfsOptions, BfsResultLike, ClosenessAcceleratorOptions, ClosenessResultLike, CommunityResultLike, CorenessResultLike, EdgeScoresResultLike, GpuAccelerator, HitsOptionsLike, HitsResultLike, LabelResultLike, LayoutAccelerator, LayoutSimulation, MstResultLike, PageRankResultLike, ScoresResultLike, SsspOptions, SsspResultLike, } from "./types/accelerator.js";
|
|
43
|
+
export type { AcceleratorOptions, AlgorithmAccelerator, ApspResultLike, BellmanFordResultLike, BetweennessAcceleratorOptions, BfsOptions, BfsResultLike, ClosenessAcceleratorOptions, ClosenessResultLike, CommunityResultLike, CorenessResultLike, EdgeScoresResultLike, GpuAccelerator, HitsOptionsLike, HitsResultLike, LabelResultLike, LayoutAccelerator, LayoutSimulation, MstOptions, MstResultLike, PageRankResultLike, ScoresResultLike, SsspOptions, SsspResultLike, } from "./types/accelerator.js";
|
|
43
44
|
export type { LabelPropagationOptions } from "./types/community.js";
|
|
44
|
-
export type { GpuTriangleResult } from "./types/structure.js";
|
|
45
|
+
export type { GpuMstResult, GpuTriangleResult } from "./types/structure.js";
|
|
45
46
|
export type { GpuBellmanFordResult, GpuBfsResult, GpuSsspResult } from "./types/traversal.js";
|
|
46
47
|
export type { GpuBetweennessResult, GpuEdgeScoresResult } from "./types/betweenness.js";
|
|
47
48
|
export type { ApspOptions, GpuApspResult } from "./types/all-pairs.js";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;;AAIH,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,cAAc,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,oBAAoB,GAC5B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKjE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAIxE,YAAY,EACR,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,6BAA6B,EAC7B,UAAU,EACV,aAAa,EACb,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,cAAc,GACjB,MAAM,wBAAwB,CAAC;AAIhC,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -42,6 +42,7 @@ export { sssp } from "./algorithms/sssp.js";
|
|
|
42
42
|
export { allPairsShortestPath } from "./algorithms/all-pairs.js";
|
|
43
43
|
// ==================== algorithms (P11: structure and community, design 3.3 lines 806-807, 8.5, 8.6)
|
|
44
44
|
export { labelPropagation } from "./algorithms/label-propagation.js";
|
|
45
|
+
export { minimumSpanningTree } from "./algorithms/mst.js";
|
|
45
46
|
export { triangleCount } from "./algorithms/triangles.js";
|
|
46
47
|
// ==================== layouts and the accelerator (P3; the two P5 factories; P4's calibrateLayout, spec 2.2)
|
|
47
48
|
export { createAccelerator } from "./accelerator.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;;;;;;;;;;;;;;GAeG;AAEH,qHAAqH;AACrH,uBAAuB;AACvB,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,cAAc,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,GAEnB,MAAM,aAAa,CAAC;AAErB,uEAAuE;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,+GAA+G;AAC/G,2GAA2G;AAC3G,sDAAsD;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,kFAAkF;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,+EAA+E;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEvF,qHAAqH;AACrH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,qGAAqG;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,8GAA8G;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;;;;;;;;;;;;;;GAeG;AAEH,qHAAqH;AACrH,uBAAuB;AACvB,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,cAAc,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,GAEnB,MAAM,aAAa,CAAC;AAErB,uEAAuE;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,+GAA+G;AAC/G,2GAA2G;AAC3G,sDAAsD;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,kFAAkF;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,+EAA+E;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEvF,qHAAqH;AACrH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,qGAAqG;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,8GAA8G;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED,iHAAiH;AACjH,eAAO,MAAM,YAAY,EAAE,MA2DzB,CAAC;AAEH,8GAA8G;AAC9G,eAAO,MAAM,aAAa,EAAE,MAAwC,CAAC;AAErE,qHAAqH;AACrH,eAAO,MAAM,6BAA6B,EAAE,MAmDsE,CAAC;AAEnH,iIAAiI;AACjI,eAAO,MAAM,4BAA4B,EAAE,MA6FuE,CAAC;AAEnH,qNAAqN;AACrN,eAAO,MAAM,mBAAmB,8EAA+E,CAAC;AAEhH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAchD,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* covers this file's template, so no u32 sentinel or workgroup-size literal is ever typed here.
|
|
10
10
|
*/
|
|
11
11
|
import { INVALID_INDEX } from "@graphty/graph-format";
|
|
12
|
-
import { APSP_TILE, EXACT_TILES_PER_PASS, F32_INF_BITS, FA2_COINCIDENT_SQ, FA2_DISTANCE_FLOOR, FA2_DISTANCE_FLOOR_SQ, FA2_FLAG_ADAPTIVE, FA2_FLAG_FIRST, FR_COOLING_PATIENCE, FR_COOLING_STEP, GRID_BBOX_MARGIN, GRID_EXTENT_FLOOR, GRID_HUB_CELL, GROUP_HASH_LOAD_FACTOR, MAX_WORKGROUPS_PER_DIM, RADIX_BINS, TRIANGLE_BINARY_SEARCH_RATIO, U32_MAX, WORKGROUP_SIZE, } from "../constants.js";
|
|
12
|
+
import { APSP_TILE, EXACT_TILES_PER_PASS, F32_INF_BITS, F32_SIGN_BIT, FA2_COINCIDENT_SQ, FA2_DISTANCE_FLOOR, FA2_DISTANCE_FLOOR_SQ, FA2_FLAG_ADAPTIVE, FA2_FLAG_FIRST, FR_COOLING_PATIENCE, FR_COOLING_STEP, GRID_BBOX_MARGIN, GRID_EXTENT_FLOOR, GRID_HUB_CELL, GROUP_HASH_LOAD_FACTOR, MAX_WORKGROUPS_PER_DIM, RADIX_BINS, TRIANGLE_BINARY_SEARCH_RATIO, U32_MAX, WORKGROUP_SIZE, } from "../constants.js";
|
|
13
13
|
import { WebGpuGraphError } from "../errors.js";
|
|
14
14
|
/**
|
|
15
15
|
* Formats a finite number as a WGSL f32 literal that always carries a decimal point or an exponent (`0.01`,
|
|
@@ -33,6 +33,7 @@ export const PRELUDE_WGSL = /* wgsl */ `// ---- prelude: constants, standard ove
|
|
|
33
33
|
const INVALID_INDEX: u32 = ${INVALID_INDEX}u;
|
|
34
34
|
const U32_MAX: u32 = ${U32_MAX}u;
|
|
35
35
|
const F32_INF_BITS: u32 = ${F32_INF_BITS}u;
|
|
36
|
+
const F32_SIGN_BIT: u32 = ${F32_SIGN_BIT}u;
|
|
36
37
|
const MAX_WORKGROUPS_PER_DIM: u32 = ${MAX_WORKGROUPS_PER_DIM}u;
|
|
37
38
|
const EXACT_TILES_PER_PASS: u32 = ${EXACT_TILES_PER_PASS}u;
|
|
38
39
|
const FA2_DIST_FLOOR: f32 = ${wgslF32Literal(FA2_DISTANCE_FLOOR)};
|
|
@@ -71,6 +72,11 @@ fn lowbias32(x0: u32) -> u32 {
|
|
|
71
72
|
fn mask_bit(w: u32, i: u32) -> bool { return ((w >> (i & 31u)) & 1u) == 1u; }
|
|
72
73
|
fn unpack_u8(w: u32, i: u32) -> u32 { return (w >> (8u * (i & 3u))) & 0xFFu; }
|
|
73
74
|
fn pair_hash(i: u32, j: u32) -> u32 { return lowbias32((min(i, j) * 0x9E3779B9u) ^ max(i, j)); }
|
|
75
|
+
fn order_key(w: f32) -> u32 {
|
|
76
|
+
let raw = bitcast<u32>(w);
|
|
77
|
+
let bits = select(raw, 0u, raw == F32_SIGN_BIT);
|
|
78
|
+
return select(bits | F32_SIGN_BIT, ~bits, (bits & F32_SIGN_BIT) != 0u);
|
|
79
|
+
}
|
|
74
80
|
fn hash_unit(h: u32) -> f32 { return f32(h >> 8u) * (1.0 / 16777216.0); }
|
|
75
81
|
fn hash_dir(h: u32, dim: u32) -> vec3f {
|
|
76
82
|
let phi = 6.283185307179586 * hash_unit(h);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EACH,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,4BAA4B,EAC5B,OAAO,EACP,cAAc,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,KAAK,yBAAyB,EAAE;YAChG,QAAQ,EAAE,OAAO;YACjB,KAAK;YACL,QAAQ,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,iHAAiH;AACjH,MAAM,CAAC,MAAM,YAAY,GAAW,UAAU,CAAC;6BAClB,aAAa;uBACnB,OAAO;4BACF,YAAY;sCACF,sBAAsB;oCACxB,oBAAoB;8BAC1B,cAAc,CAAC,kBAAkB,CAAC;iCAC/B,cAAc,CAAC,qBAAqB,CAAC;iCACrC,cAAc,CAAC,iBAAiB,CAAC;8BACpC,cAAc;iCACX,iBAAiB;+BACnB,cAAc,CAAC,eAAe,CAAC;mCAC3B,mBAAmB;6BACzB,aAAa;iCACT,cAAc,CAAC,iBAAiB,CAAC;gCAClC,cAAc,CAAC,gBAAgB,CAAC;0BACtC,UAAU;gCACJ,UAAU,GAAG,CAAC;yBACrB,SAAS;sCACI,sBAAsB;4CAChB,4BAA4B;;qBAEnD,cAAc
|
|
1
|
+
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EACH,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,4BAA4B,EAC5B,OAAO,EACP,cAAc,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,KAAK,yBAAyB,EAAE;YAChG,QAAQ,EAAE,OAAO;YACjB,KAAK;YACL,QAAQ,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,iHAAiH;AACjH,MAAM,CAAC,MAAM,YAAY,GAAW,UAAU,CAAC;6BAClB,aAAa;uBACnB,OAAO;4BACF,YAAY;4BACZ,YAAY;sCACF,sBAAsB;oCACxB,oBAAoB;8BAC1B,cAAc,CAAC,kBAAkB,CAAC;iCAC/B,cAAc,CAAC,qBAAqB,CAAC;iCACrC,cAAc,CAAC,iBAAiB,CAAC;8BACpC,cAAc;iCACX,iBAAiB;+BACnB,cAAc,CAAC,eAAe,CAAC;mCAC3B,mBAAmB;6BACzB,aAAa;iCACT,cAAc,CAAC,iBAAiB,CAAC;gCAClC,cAAc,CAAC,gBAAgB,CAAC;0BACtC,UAAU;gCACJ,UAAU,GAAG,CAAC;yBACrB,SAAS;sCACI,sBAAsB;4CAChB,4BAA4B;;qBAEnD,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCjC,CAAC;AAEH,8GAA8G;AAC9G,MAAM,CAAC,MAAM,aAAa,GAAW,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAErE,qHAAqH;AACrH,MAAM,CAAC,MAAM,6BAA6B,GAAW,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHAmDkD,CAAC;AAEnH,iIAAiI;AACjI,MAAM,CAAC,MAAM,4BAA4B,GAAW,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHA6FmD,CAAC;AAEnH,qNAAqN;AACrN,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAU,CAAC;AAEhH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB,MAAM,CAAC,MAAM,CAC/D;;;;;;;;;;6CAUyC;KACpC,IAAI,EAAE;KACN,KAAK,CAAC,KAAK,CAAC,CACpB,CAAC"}
|