@graphty/webgpu-graph-algorithms 0.5.0 → 0.6.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 +104 -52
- package/dist/browser.js +1 -1
- package/dist/chunks/{context-CRbw2Wyo.js → context-BXqgCifx.js} +225 -33
- package/dist/chunks/context-BXqgCifx.js.map +1 -0
- package/dist/node.js +1 -1
- package/dist/src/accelerator.d.ts +12 -10
- package/dist/src/accelerator.d.ts.map +1 -1
- package/dist/src/accelerator.js +32 -10
- package/dist/src/accelerator.js.map +1 -1
- package/dist/src/algorithms/components.d.ts.map +1 -1
- package/dist/src/algorithms/components.js +12 -13
- package/dist/src/algorithms/components.js.map +1 -1
- package/dist/src/algorithms/degree.d.ts +6 -8
- package/dist/src/algorithms/degree.d.ts.map +1 -1
- package/dist/src/algorithms/degree.js +58 -35
- package/dist/src/algorithms/degree.js.map +1 -1
- package/dist/src/algorithms/pagerank.d.ts.map +1 -1
- package/dist/src/algorithms/pagerank.js +16 -14
- package/dist/src/algorithms/pagerank.js.map +1 -1
- package/dist/src/algorithms/power-iteration.d.ts +2 -2
- package/dist/src/algorithms/power-iteration.d.ts.map +1 -1
- package/dist/src/algorithms/power-iteration.js +17 -14
- package/dist/src/algorithms/power-iteration.js.map +1 -1
- package/dist/src/constants.d.ts +85 -8
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +85 -8
- package/dist/src/constants.js.map +1 -1
- package/dist/src/errors.d.ts +3 -2
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +2 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +10 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +14 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/dispatch.d.ts +8 -3
- package/dist/src/kernel/dispatch.d.ts.map +1 -1
- package/dist/src/kernel/dispatch.js +18 -7
- package/dist/src/kernel/dispatch.js.map +1 -1
- package/dist/src/kernel/kernel.d.ts +30 -1
- package/dist/src/kernel/kernel.d.ts.map +1 -1
- package/dist/src/kernel/kernel.js +49 -5
- package/dist/src/kernel/kernel.js.map +1 -1
- package/dist/src/kernel/prelude.d.ts.map +1 -1
- package/dist/src/kernel/prelude.js +9 -1
- package/dist/src/kernel/prelude.js.map +1 -1
- package/dist/src/kernel/profiler.d.ts +15 -3
- package/dist/src/kernel/profiler.d.ts.map +1 -1
- package/dist/src/kernel/profiler.js +27 -4
- package/dist/src/kernel/profiler.js.map +1 -1
- package/dist/src/kernels.d.ts +18 -8
- package/dist/src/kernels.d.ts.map +1 -1
- package/dist/src/kernels.js +345 -22
- package/dist/src/kernels.js.map +1 -1
- package/dist/src/layouts/calibrate.d.ts +51 -0
- package/dist/src/layouts/calibrate.d.ts.map +1 -0
- package/dist/src/layouts/calibrate.js +172 -0
- package/dist/src/layouts/calibrate.js.map +1 -0
- package/dist/src/layouts/force-simulation.d.ts +42 -5
- package/dist/src/layouts/force-simulation.d.ts.map +1 -1
- package/dist/src/layouts/force-simulation.js +84 -22
- package/dist/src/layouts/force-simulation.js.map +1 -1
- package/dist/src/layouts/forceatlas2.d.ts +107 -38
- package/dist/src/layouts/forceatlas2.d.ts.map +1 -1
- package/dist/src/layouts/forceatlas2.js +297 -290
- package/dist/src/layouts/forceatlas2.js.map +1 -1
- package/dist/src/layouts/fruchterman-reingold.d.ts +241 -0
- package/dist/src/layouts/fruchterman-reingold.d.ts.map +1 -0
- package/dist/src/layouts/fruchterman-reingold.js +739 -0
- package/dist/src/layouts/fruchterman-reingold.js.map +1 -0
- package/dist/src/layouts/model-common.d.ts +140 -0
- package/dist/src/layouts/model-common.d.ts.map +1 -0
- package/dist/src/layouts/model-common.js +269 -0
- package/dist/src/layouts/model-common.js.map +1 -0
- package/dist/src/layouts/repulsion-grid.d.ts +152 -0
- package/dist/src/layouts/repulsion-grid.d.ts.map +1 -0
- package/dist/src/layouts/repulsion-grid.js +318 -0
- package/dist/src/layouts/repulsion-grid.js.map +1 -0
- package/dist/src/layouts/spring-electrical.d.ts +224 -0
- package/dist/src/layouts/spring-electrical.d.ts.map +1 -0
- package/dist/src/layouts/spring-electrical.js +665 -0
- package/dist/src/layouts/spring-electrical.js.map +1 -0
- package/dist/src/memory/residency.d.ts +6 -2
- package/dist/src/memory/residency.d.ts.map +1 -1
- package/dist/src/memory/residency.js +84 -14
- package/dist/src/memory/residency.js.map +1 -1
- package/dist/src/primitives/core-shape.d.ts +38 -2
- package/dist/src/primitives/core-shape.d.ts.map +1 -1
- package/dist/src/primitives/core-shape.js +71 -3
- package/dist/src/primitives/core-shape.js.map +1 -1
- package/dist/src/primitives/grid-pyramid.d.ts +71 -0
- package/dist/src/primitives/grid-pyramid.d.ts.map +1 -0
- package/dist/src/primitives/grid-pyramid.js +143 -0
- package/dist/src/primitives/grid-pyramid.js.map +1 -0
- package/dist/src/primitives/grid.d.ts +118 -0
- package/dist/src/primitives/grid.d.ts.map +1 -0
- package/dist/src/primitives/grid.js +225 -0
- package/dist/src/primitives/grid.js.map +1 -0
- package/dist/src/primitives/histogram.d.ts +67 -0
- package/dist/src/primitives/histogram.d.ts.map +1 -0
- package/dist/src/primitives/histogram.js +190 -0
- package/dist/src/primitives/histogram.js.map +1 -0
- package/dist/src/primitives/radix-sort.d.ts +75 -0
- package/dist/src/primitives/radix-sort.d.ts.map +1 -0
- package/dist/src/primitives/radix-sort.js +168 -0
- package/dist/src/primitives/radix-sort.js.map +1 -0
- package/dist/src/primitives/scan.d.ts +44 -0
- package/dist/src/primitives/scan.d.ts.map +1 -0
- package/dist/src/primitives/scan.js +151 -0
- package/dist/src/primitives/scan.js.map +1 -0
- package/dist/src/primitives/segmented-reduce.d.ts +25 -17
- package/dist/src/primitives/segmented-reduce.d.ts.map +1 -1
- package/dist/src/primitives/segmented-reduce.js +166 -47
- package/dist/src/primitives/segmented-reduce.js.map +1 -1
- package/dist/src/primitives/spmv.d.ts +18 -14
- package/dist/src/primitives/spmv.d.ts.map +1 -1
- package/dist/src/primitives/spmv.js +94 -58
- package/dist/src/primitives/spmv.js.map +1 -1
- package/dist/src/primitives/verify.d.ts +49 -0
- package/dist/src/primitives/verify.d.ts.map +1 -0
- package/dist/src/primitives/verify.js +229 -0
- package/dist/src/primitives/verify.js.map +1 -0
- package/dist/src/types/accelerator.d.ts +7 -3
- package/dist/src/types/accelerator.d.ts.map +1 -1
- package/dist/src/types/context.d.ts +53 -0
- package/dist/src/types/context.d.ts.map +1 -1
- package/dist/src/types/layout.d.ts +52 -0
- package/dist/src/types/layout.d.ts.map +1 -1
- package/dist/src/types/options.d.ts +43 -1
- package/dist/src/types/options.d.ts.map +1 -1
- package/dist/src/wgsl/counting-scatter.wgsl.d.ts +8 -0
- package/dist/src/wgsl/counting-scatter.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/counting-scatter.wgsl.js +17 -0
- package/dist/src/wgsl/counting-scatter.wgsl.js.map +1 -0
- package/dist/src/wgsl/fa2-attraction.wgsl.d.ts +23 -8
- package/dist/src/wgsl/fa2-attraction.wgsl.d.ts.map +1 -1
- package/dist/src/wgsl/fa2-attraction.wgsl.js +100 -17
- package/dist/src/wgsl/fa2-attraction.wgsl.js.map +1 -1
- package/dist/src/wgsl/fa2-integrate.wgsl.d.ts +7 -2
- package/dist/src/wgsl/fa2-integrate.wgsl.d.ts.map +1 -1
- package/dist/src/wgsl/fa2-integrate.wgsl.js +28 -2
- package/dist/src/wgsl/fa2-integrate.wgsl.js.map +1 -1
- package/dist/src/wgsl/fa2-repulsion-exact.wgsl.d.ts +4 -2
- package/dist/src/wgsl/fa2-repulsion-exact.wgsl.d.ts.map +1 -1
- package/dist/src/wgsl/fa2-repulsion-exact.wgsl.js +14 -5
- package/dist/src/wgsl/fa2-repulsion-exact.wgsl.js.map +1 -1
- package/dist/src/wgsl/fa2-stats-finalize.wgsl.d.ts +12 -1
- package/dist/src/wgsl/fa2-stats-finalize.wgsl.d.ts.map +1 -1
- package/dist/src/wgsl/fa2-stats-finalize.wgsl.js +54 -0
- package/dist/src/wgsl/fa2-stats-finalize.wgsl.js.map +1 -1
- package/dist/src/wgsl/grid-cell-key.wgsl.d.ts +8 -0
- package/dist/src/wgsl/grid-cell-key.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/grid-cell-key.wgsl.js +30 -0
- package/dist/src/wgsl/grid-cell-key.wgsl.js.map +1 -0
- package/dist/src/wgsl/grid-centroid-hub.wgsl.d.ts +8 -0
- package/dist/src/wgsl/grid-centroid-hub.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/grid-centroid-hub.wgsl.js +29 -0
- package/dist/src/wgsl/grid-centroid-hub.wgsl.js.map +1 -0
- package/dist/src/wgsl/grid-centroid.wgsl.d.ts +8 -0
- package/dist/src/wgsl/grid-centroid.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/grid-centroid.wgsl.js +29 -0
- package/dist/src/wgsl/grid-centroid.wgsl.js.map +1 -0
- package/dist/src/wgsl/grid-downsample.wgsl.d.ts +7 -0
- package/dist/src/wgsl/grid-downsample.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/grid-downsample.wgsl.js +28 -0
- package/dist/src/wgsl/grid-downsample.wgsl.js.map +1 -0
- package/dist/src/wgsl/grid-far-field.wgsl.d.ts +13 -0
- package/dist/src/wgsl/grid-far-field.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/grid-far-field.wgsl.js +98 -0
- package/dist/src/wgsl/grid-far-field.wgsl.js.map +1 -0
- package/dist/src/wgsl/grid-near-field.wgsl.d.ts +19 -0
- package/dist/src/wgsl/grid-near-field.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/grid-near-field.wgsl.js +129 -0
- package/dist/src/wgsl/grid-near-field.wgsl.js.map +1 -0
- package/dist/src/wgsl/histogram.wgsl.d.ts +7 -0
- package/dist/src/wgsl/histogram.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/histogram.wgsl.js +15 -0
- package/dist/src/wgsl/histogram.wgsl.js.map +1 -0
- package/dist/src/wgsl/indirect-finalize.wgsl.d.ts +8 -0
- package/dist/src/wgsl/indirect-finalize.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/indirect-finalize.wgsl.js +26 -0
- package/dist/src/wgsl/indirect-finalize.wgsl.js.map +1 -0
- package/dist/src/wgsl/radix-hist.wgsl.d.ts +9 -0
- package/dist/src/wgsl/radix-hist.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/radix-hist.wgsl.js +31 -0
- package/dist/src/wgsl/radix-hist.wgsl.js.map +1 -0
- package/dist/src/wgsl/radix-scatter.wgsl.d.ts +9 -0
- package/dist/src/wgsl/radix-scatter.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/radix-scatter.wgsl.js +40 -0
- package/dist/src/wgsl/radix-scatter.wgsl.js.map +1 -0
- package/dist/src/wgsl/scan-add.wgsl.d.ts +6 -0
- package/dist/src/wgsl/scan-add.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/scan-add.wgsl.js +14 -0
- package/dist/src/wgsl/scan-add.wgsl.js.map +1 -0
- package/dist/src/wgsl/scan-block.wgsl.d.ts +8 -0
- package/dist/src/wgsl/scan-block.wgsl.d.ts.map +1 -0
- package/dist/src/wgsl/scan-block.wgsl.js +30 -0
- package/dist/src/wgsl/scan-block.wgsl.js.map +1 -0
- package/dist/src/wgsl/segmented-reduce.wgsl.d.ts +22 -8
- package/dist/src/wgsl/segmented-reduce.wgsl.d.ts.map +1 -1
- package/dist/src/wgsl/segmented-reduce.wgsl.js +84 -15
- package/dist/src/wgsl/segmented-reduce.wgsl.js.map +1 -1
- package/dist/src/wgsl/spmv-pull.wgsl.d.ts +22 -11
- package/dist/src/wgsl/spmv-pull.wgsl.d.ts.map +1 -1
- package/dist/src/wgsl/spmv-pull.wgsl.js +110 -36
- package/dist/src/wgsl/spmv-pull.wgsl.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/webgpu-graph-algorithms.js +5016 -1130
- package/dist/webgpu-graph-algorithms.js.map +1 -1
- package/package.json +10 -7
- package/src/accelerator.ts +46 -12
- package/src/algorithms/components.ts +12 -16
- package/src/algorithms/degree.ts +58 -43
- package/src/algorithms/pagerank.ts +20 -18
- package/src/algorithms/power-iteration.ts +19 -18
- package/src/constants.ts +108 -8
- package/src/errors.ts +3 -1
- package/src/index.ts +25 -5
- package/src/kernel/dispatch.ts +18 -7
- package/src/kernel/kernel.ts +59 -5
- package/src/kernel/prelude.ts +15 -0
- package/src/kernel/profiler.ts +28 -4
- package/src/kernels.ts +378 -24
- package/src/layouts/calibrate.ts +187 -0
- package/src/layouts/force-simulation.ts +111 -26
- package/src/layouts/forceatlas2.ts +346 -324
- package/src/layouts/fruchterman-reingold.ts +918 -0
- package/src/layouts/model-common.ts +323 -0
- package/src/layouts/repulsion-grid.ts +451 -0
- package/src/layouts/spring-electrical.ts +845 -0
- package/src/memory/residency.ts +126 -20
- package/src/primitives/core-shape.ts +91 -4
- package/src/primitives/grid-pyramid.ts +221 -0
- package/src/primitives/grid.ts +349 -0
- package/src/primitives/histogram.ts +273 -0
- package/src/primitives/radix-sort.ts +246 -0
- package/src/primitives/scan.ts +197 -0
- package/src/primitives/segmented-reduce.ts +214 -56
- package/src/primitives/spmv.ts +125 -65
- package/src/primitives/verify.ts +249 -0
- package/src/types/accelerator.ts +15 -3
- package/src/types/context.ts +56 -0
- package/src/types/layout.ts +58 -0
- package/src/types/options.ts +45 -1
- package/src/wgsl/counting-scatter.wgsl.ts +16 -0
- package/src/wgsl/fa2-attraction.wgsl.ts +100 -17
- package/src/wgsl/fa2-integrate.wgsl.ts +28 -2
- package/src/wgsl/fa2-repulsion-exact.wgsl.ts +14 -5
- package/src/wgsl/fa2-stats-finalize.wgsl.ts +54 -0
- package/src/wgsl/grid-cell-key.wgsl.ts +29 -0
- package/src/wgsl/grid-centroid-hub.wgsl.ts +28 -0
- package/src/wgsl/grid-centroid.wgsl.ts +28 -0
- package/src/wgsl/grid-downsample.wgsl.ts +27 -0
- package/src/wgsl/grid-far-field.wgsl.ts +97 -0
- package/src/wgsl/grid-near-field.wgsl.ts +128 -0
- package/src/wgsl/histogram.wgsl.ts +14 -0
- package/src/wgsl/indirect-finalize.wgsl.ts +25 -0
- package/src/wgsl/radix-hist.wgsl.ts +30 -0
- package/src/wgsl/radix-scatter.wgsl.ts +39 -0
- package/src/wgsl/scan-add.wgsl.ts +13 -0
- package/src/wgsl/scan-block.wgsl.ts +29 -0
- package/src/wgsl/segmented-reduce.wgsl.ts +84 -15
- package/src/wgsl/spmv-pull.wgsl.ts +110 -36
- package/dist/chunks/context-CRbw2Wyo.js.map +0 -1
package/dist/src/kernels.js
CHANGED
|
@@ -7,12 +7,13 @@
|
|
|
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
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.
|
|
11
|
-
* test/layers.test.ts).
|
|
10
|
+
* wcc-link-edges, wcc-compress and wcc-sample. P4-T1 adds indirect-finalize; the other P4 entries follow, one task
|
|
11
|
+
* each (the P4 plan, PD-1). This file is the only importer of src/wgsl/** (spec 3.2; test/layers.test.ts).
|
|
12
12
|
*/
|
|
13
13
|
import { STATE_HEADER_BYTES } from "./constants.js";
|
|
14
14
|
import { WebGpuGraphError } from "./errors.js";
|
|
15
15
|
import { UniformBlock } from "./kernel/struct-block.js";
|
|
16
|
+
import { countingScatterWgsl } from "./wgsl/counting-scatter.wgsl.js";
|
|
16
17
|
import { degreeWgsl } from "./wgsl/degree.wgsl.js";
|
|
17
18
|
import { fa2AttractionWgsl } from "./wgsl/fa2-attraction.wgsl.js";
|
|
18
19
|
import { fa2IntegrateWgsl } from "./wgsl/fa2-integrate.wgsl.js";
|
|
@@ -21,9 +22,21 @@ import { fa2SpeedFinalizeWgsl } from "./wgsl/fa2-speed-finalize.wgsl.js";
|
|
|
21
22
|
import { fa2StatsFinalizeWgsl } from "./wgsl/fa2-stats-finalize.wgsl.js";
|
|
22
23
|
import { fa2ToSceneWgsl } from "./wgsl/fa2-to-scene.wgsl.js";
|
|
23
24
|
import { fillWgsl } from "./wgsl/fill.wgsl.js";
|
|
25
|
+
import { gridCellKeyWgsl } from "./wgsl/grid-cell-key.wgsl.js";
|
|
26
|
+
import { gridCentroidWgsl } from "./wgsl/grid-centroid.wgsl.js";
|
|
27
|
+
import { gridCentroidHubWgsl } from "./wgsl/grid-centroid-hub.wgsl.js";
|
|
28
|
+
import { gridDownsampleWgsl } from "./wgsl/grid-downsample.wgsl.js";
|
|
29
|
+
import { gridFarFieldWgsl } from "./wgsl/grid-far-field.wgsl.js";
|
|
30
|
+
import { gridNearFieldWgsl } from "./wgsl/grid-near-field.wgsl.js";
|
|
31
|
+
import { histogramWgsl } from "./wgsl/histogram.wgsl.js";
|
|
32
|
+
import { indirectFinalizeWgsl } from "./wgsl/indirect-finalize.wgsl.js";
|
|
24
33
|
import { prFinalizeWgsl } from "./wgsl/pr-finalize.wgsl.js";
|
|
25
34
|
import { prScaleWgsl } from "./wgsl/pr-scale.wgsl.js";
|
|
35
|
+
import { radixHistWgsl } from "./wgsl/radix-hist.wgsl.js";
|
|
36
|
+
import { radixScatterWgsl } from "./wgsl/radix-scatter.wgsl.js";
|
|
26
37
|
import { reduceWgsl } from "./wgsl/reduce.wgsl.js";
|
|
38
|
+
import { scanAddWgsl } from "./wgsl/scan-add.wgsl.js";
|
|
39
|
+
import { scanBlockWgsl } from "./wgsl/scan-block.wgsl.js";
|
|
27
40
|
import { segmentedReduceWgsl } from "./wgsl/segmented-reduce.wgsl.js";
|
|
28
41
|
import { spmvPullWgsl } from "./wgsl/spmv-pull.wgsl.js";
|
|
29
42
|
import { wccCompressWgsl } from "./wgsl/wcc-compress.wgsl.js";
|
|
@@ -56,7 +69,7 @@ export const FILL_PARAMS = UniformBlock.define("FillParams", [
|
|
|
56
69
|
["mode", "u32"],
|
|
57
70
|
["pad0", "u32"],
|
|
58
71
|
]);
|
|
59
|
-
/** `Fa2Params` (uniform,
|
|
72
|
+
/** `Fa2Params` (uniform, 128 B; spec 7.3): the per-iteration ForceAtlas2 parameters -- `n` @0, `dim` @4, `flags` @8 (bit 0 = FA2_FLAG_FIRST), `tierStart` @12, `tierEnd` @16, `iterationIndex` @20, `seed` @24, `nearMax` @28, `scalingRatio` @32, `gravity` @36, `jitterTolerance` @40, `scale` @44, `center` @48 (xyz, w 0), `settleThreshold` @64, `extentFactor` @68, `gridMax` @72, `levels` @76, `arcBase` @80 / `arcEnd` @84 (the bound arc window of K2, 0 and arcCount in the layout), `accumulate` @88 (1 combines into `force`: the windowed pattern), `hiEnd` @92 / `midEnd` @124 (the degreeOrder tier boundaries, PD-7; both 0 without a permutation); the P5 model fields (PD-3): `frK` @96 (the FR optimal distance), `temperature` @100 (the FR temperature of this iteration), `springLength` @104, `springCoefficient` @108, `coulomb` @112 (ngraph's `gravity`, negative repels), `dragCoefficient` @116, `timeStep` @120; 128 B. */
|
|
60
73
|
export const FA2_PARAMS = UniformBlock.define("Fa2Params", [
|
|
61
74
|
["n", "u32"],
|
|
62
75
|
["dim", "u32"],
|
|
@@ -75,9 +88,20 @@ export const FA2_PARAMS = UniformBlock.define("Fa2Params", [
|
|
|
75
88
|
["extentFactor", "f32"],
|
|
76
89
|
["gridMax", "u32"],
|
|
77
90
|
["levels", "u32"],
|
|
78
|
-
["
|
|
91
|
+
["arcBase", "u32"],
|
|
92
|
+
["arcEnd", "u32"],
|
|
93
|
+
["accumulate", "u32"],
|
|
94
|
+
["hiEnd", "u32"],
|
|
95
|
+
["frK", "f32"],
|
|
96
|
+
["temperature", "f32"],
|
|
97
|
+
["springLength", "f32"],
|
|
98
|
+
["springCoefficient", "f32"],
|
|
99
|
+
["coulomb", "f32"],
|
|
100
|
+
["dragCoefficient", "f32"],
|
|
101
|
+
["timeStep", "f32"],
|
|
102
|
+
["midEnd", "u32"],
|
|
79
103
|
]);
|
|
80
|
-
/** `Fa2State` (storage, padded to STATE_HEADER_BYTES = 256; spec 7.3): the device-resident controller state the finalize kernels write and the host reads back for stats -- `speed` @0, `speedEfficiency` @4, `swing` @8, `traction` @12, `centroid` @16, `rmsRadius` @32, `radius` @36, `meanDisplacement` @40, `iteration` @44, `min` @48, `max` @64, `gridMin` @80 (P4), `eps` @96 (P4), `settledCount` @100, `outsideGrid` @104 (P4), `maxCellOccupancy` @108 (P4), `reserved0` .. `reserved8` @
|
|
104
|
+
/** `Fa2State` (storage, padded to STATE_HEADER_BYTES = 256; spec 7.3): the device-resident controller state the finalize kernels write and the host reads back for stats -- `speed` @0, `speedEfficiency` @4, `swing` @8, `traction` @12, `centroid` @16, `rmsRadius` @32, `radius` @36, `meanDisplacement` @40, `iteration` @44, `min` @48, `max` @64, `gridMin` @80 (P4), `eps` @96 (P4), `settledCount` @100, `outsideGrid` @104 (P4), `maxCellOccupancy` @108 (P4), `temperature` @112 (FR, written by K1 under STATS_MODE 1), `kineticEnergy` @116 (the preset, K1 under STATS_MODE 2), `frEnergy` @120 / `frProgress` @124 (the FR adaptive cooling), `invCellSize` @128 (P4, PD-10: `1 / cellSize`, written by K1 beside `cellSize` in `gridMin.w`; G1 multiplies by it so every key is bitwise reproducible), `reserved0` @132 (f32), `reserved1` @136 (vec2f), `reserved2` .. `reserved8` @144 .. @240. */
|
|
81
105
|
export const FA2_STATE = UniformBlock.define("Fa2State", [
|
|
82
106
|
["speed", "f32"],
|
|
83
107
|
["speedEfficiency", "f32"],
|
|
@@ -95,8 +119,13 @@ export const FA2_STATE = UniformBlock.define("Fa2State", [
|
|
|
95
119
|
["settledCount", "u32"],
|
|
96
120
|
["outsideGrid", "u32"],
|
|
97
121
|
["maxCellOccupancy", "u32"],
|
|
98
|
-
["
|
|
99
|
-
["
|
|
122
|
+
["temperature", "f32"],
|
|
123
|
+
["kineticEnergy", "f32"],
|
|
124
|
+
["frEnergy", "f32"],
|
|
125
|
+
["frProgress", "u32"],
|
|
126
|
+
["invCellSize", "f32"],
|
|
127
|
+
["reserved0", "f32"],
|
|
128
|
+
["reserved1", "vec2f"],
|
|
100
129
|
["reserved2", "vec4f"],
|
|
101
130
|
["reserved3", "vec4f"],
|
|
102
131
|
["reserved4", "vec4f"],
|
|
@@ -105,7 +134,7 @@ export const FA2_STATE = UniformBlock.define("Fa2State", [
|
|
|
105
134
|
["reserved7", "vec4f"],
|
|
106
135
|
["reserved8", "vec4f"],
|
|
107
136
|
], { layout: "storage", padTo: STATE_HEADER_BYTES });
|
|
108
|
-
/** `Fa2Trace` (storage record, 32 B; spec 7.3): one per-iteration trace record -- `swing` @0, `traction` @4, `speed` @8, `speedEfficiency` @12 (written by K4), `meanDisplacement` @16, `settledCount` @20, `iteration` @24 (written by K1), `
|
|
137
|
+
/** `Fa2Trace` (storage record, 32 B; spec 7.3): one per-iteration trace record -- `swing` @0, `traction` @4, `speed` @8, `speedEfficiency` @12 (written by K4), `meanDisplacement` @16, `settledCount` @20, `iteration` @24 (written by K1), `modelScalar` @28 (K1: the temperature under STATS_MODE 1, the kinetic energy under 2, 0 under 0); the trace region is `array<Fa2Trace>` at byte offset STATE_HEADER_BYTES of the state buffer. */
|
|
109
138
|
export const FA2_TRACE = UniformBlock.define("Fa2Trace", [
|
|
110
139
|
["swing", "f32"],
|
|
111
140
|
["traction", "f32"],
|
|
@@ -114,7 +143,7 @@ export const FA2_TRACE = UniformBlock.define("Fa2Trace", [
|
|
|
114
143
|
["meanDisplacement", "f32"],
|
|
115
144
|
["settledCount", "u32"],
|
|
116
145
|
["iteration", "u32"],
|
|
117
|
-
["
|
|
146
|
+
["modelScalar", "f32"],
|
|
118
147
|
], { layout: "storage" });
|
|
119
148
|
/** `Fa2Partial` (storage record, 64 B; spec 7.3): one per-workgroup partial -- `sum` @0 (xyz = sum of positions, w = sum of |p - centroid|^2), `min` @16, `max` @32 (w = max of |p - centroid|^2, the exact layoutRadius source), written by K5; `swingTraction` @48 (written by K3's epilogue); `dispFree` @56 (x = sum |dp| over free rows, y = the free count as an f32 <= 256, written by K5). */
|
|
120
149
|
export const FA2_PARTIAL = UniformBlock.define("Fa2Partial", [
|
|
@@ -124,7 +153,7 @@ export const FA2_PARTIAL = UniformBlock.define("Fa2Partial", [
|
|
|
124
153
|
["swingTraction", "vec2f"],
|
|
125
154
|
["dispFree", "vec2f"],
|
|
126
155
|
], { 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), `
|
|
156
|
+
/** `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), `start` @28 (the first row of the dispatch; TIER 0 strides from it, the tiers index from it). */
|
|
128
157
|
export const SPMV_PARAMS = UniformBlock.define("SpmvParams", [
|
|
129
158
|
["n", "u32"],
|
|
130
159
|
["arcBase", "u32"],
|
|
@@ -133,7 +162,7 @@ export const SPMV_PARAMS = UniformBlock.define("SpmvParams", [
|
|
|
133
162
|
["alpha", "f32"],
|
|
134
163
|
["beta", "f32"],
|
|
135
164
|
["uniformP", "f32"],
|
|
136
|
-
["
|
|
165
|
+
["start", "u32"],
|
|
137
166
|
]);
|
|
138
167
|
/** `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
168
|
export const PR_PARAMS = UniformBlock.define("PrParams", [
|
|
@@ -174,6 +203,45 @@ export const WCC_PARAMS = UniformBlock.define("WccParams", [
|
|
|
174
203
|
["maxSteps", "u32"],
|
|
175
204
|
["pad0", "u32"],
|
|
176
205
|
]);
|
|
206
|
+
/** `IndirectParams` (uniform, 16 B; spec 5.4): `countIndex` @0 (the word of `counters` holding the count), `wg` @4 (the consumer's workgroup size), `slot` @8 (the 16-byte args slot to write), `pad0` @12. */
|
|
207
|
+
export const INDIRECT_PARAMS = UniformBlock.define("IndirectParams", [
|
|
208
|
+
["countIndex", "u32"],
|
|
209
|
+
["wg", "u32"],
|
|
210
|
+
["slot", "u32"],
|
|
211
|
+
["pad0", "u32"],
|
|
212
|
+
]);
|
|
213
|
+
/** `ScanParams` (uniform, 16 B; spec 6 row 2): `count` @0 (the u32 words of the level), `pad0` @4, `pad1` @8, `pad2` @12. */
|
|
214
|
+
export const SCAN_PARAMS = UniformBlock.define("ScanParams", [
|
|
215
|
+
["count", "u32"],
|
|
216
|
+
["pad0", "u32"],
|
|
217
|
+
["pad1", "u32"],
|
|
218
|
+
["pad2", "u32"],
|
|
219
|
+
]);
|
|
220
|
+
/** `GridLevelParams` (uniform, 32 B; spec 7.7 G5, P4-T9): `childBase` @0 and `parentBase` @4 (the first cell of the child / parent level inside the pyramid), `parentSide` @8, `parentCells` @12 (`parentSide^dim`), `depth` @16 (1 in 2D, 2 in 3D), `pad0` @20, `pad1` @24, `pad2` @28. */
|
|
221
|
+
export const GRID_LEVEL_PARAMS = UniformBlock.define("GridLevelParams", [
|
|
222
|
+
["childBase", "u32"],
|
|
223
|
+
["parentBase", "u32"],
|
|
224
|
+
["parentSide", "u32"],
|
|
225
|
+
["parentCells", "u32"],
|
|
226
|
+
["depth", "u32"],
|
|
227
|
+
["pad0", "u32"],
|
|
228
|
+
["pad1", "u32"],
|
|
229
|
+
["pad2", "u32"],
|
|
230
|
+
]);
|
|
231
|
+
/** `HistParams` (uniform, 16 B; spec 6 row 5): `count` @0 (the keys), `bins` @4 (a key >= bins is not counted), `pad0` @8, `pad1` @12. */
|
|
232
|
+
export const HIST_PARAMS = UniformBlock.define("HistParams", [
|
|
233
|
+
["count", "u32"],
|
|
234
|
+
["bins", "u32"],
|
|
235
|
+
["pad0", "u32"],
|
|
236
|
+
["pad1", "u32"],
|
|
237
|
+
]);
|
|
238
|
+
/** `RadixParams` (uniform, 16 B; spec 6 row 6): `count` @0 (the pairs), `shift` @4 (the pass's digit shift, 8 x pass), `groups` @8 (ceil(count / WG), the stride of the digit-major table), `pad0` @12. */
|
|
239
|
+
export const RADIX_PARAMS = UniformBlock.define("RadixParams", [
|
|
240
|
+
["count", "u32"],
|
|
241
|
+
["shift", "u32"],
|
|
242
|
+
["groups", "u32"],
|
|
243
|
+
["pad0", "u32"],
|
|
244
|
+
]);
|
|
177
245
|
// ---- the entries (contract 3.10.1; group 0 = graph, 1 = state, 2 = params, 3 = cold)
|
|
178
246
|
/**
|
|
179
247
|
* One binding declaration of contract 3.9, so the tables below read like the rows of 3.10.1.
|
|
@@ -238,7 +306,7 @@ const FILL = {
|
|
|
238
306
|
snippetSlots: [],
|
|
239
307
|
phase: "P1",
|
|
240
308
|
};
|
|
241
|
-
/** `segmented-reduce` (3.10.1): the per-row fold of the VALUE snippet over the CSR rows; OP 0 sum / 1 min / 2 max, TIER 0
|
|
309
|
+
/** `segmented-reduce` (3.10.1): the per-row fold of the VALUE snippet over the CSR rows; OP 0 sum / 1 min / 2 max, TIER 0 thread-per-row / 1 32-lanes-per-row / 2 workgroup-per-row (the degreeOrder tiers, P4 PD-6) plus the standard USE_PERM / HAS_WEIGHTS; 5 storage bindings; one snippet slot; calls the reduction helpers (TIER 2). */
|
|
242
310
|
const SEGMENTED_REDUCE = {
|
|
243
311
|
id: "segmented-reduce",
|
|
244
312
|
body: segmentedReduceWgsl,
|
|
@@ -249,11 +317,11 @@ const SEGMENTED_REDUCE = {
|
|
|
249
317
|
{ name: "TIER", type: "u32", default: 0 },
|
|
250
318
|
],
|
|
251
319
|
uniforms: [RANGE_PARAMS],
|
|
252
|
-
needs: [],
|
|
320
|
+
needs: ["subgroups"],
|
|
253
321
|
snippetSlots: ["VALUE"],
|
|
254
322
|
phase: "P2",
|
|
255
323
|
};
|
|
256
|
-
/** `fa2-stats-finalize` (K1, 3.10.1): the one-workgroup fold of the previous integrate's partials into the state block and the K1 half of the trace record;
|
|
324
|
+
/** `fa2-stats-finalize` (K1, 3.10.1): the one-workgroup fold of the previous integrate's partials into the state block and the K1 half of the trace record; STATS_MODE 0 FA2 / 1 FR temperature / 2 kinetic energy (P5); the grid frame, counts and hub-counter reset under `P.gridMax > 0` (P4-T10, PD-14: `cellHist` and `hubCounters` are bound to dummies on the exact tier); 5 storage bindings; calls the reduction helpers. */
|
|
257
325
|
const FA2_STATS_FINALIZE = {
|
|
258
326
|
id: "fa2-stats-finalize",
|
|
259
327
|
body: fa2StatsFinalizeWgsl,
|
|
@@ -262,15 +330,17 @@ const FA2_STATS_FINALIZE = {
|
|
|
262
330
|
decl(1, 0, "partials", "storage-ro", "array<Fa2Partial>"),
|
|
263
331
|
decl(1, 1, "S", "storage", "Fa2State"),
|
|
264
332
|
decl(1, 2, "T", "storage", "array<Fa2Trace>"),
|
|
333
|
+
decl(1, 3, "cellHist", "storage-ro", "array<u32>"),
|
|
334
|
+
decl(1, 4, "hubCounters", "storage", "array<atomic<u32>>"),
|
|
265
335
|
decl(2, 0, "P", "uniform", "Fa2Params"),
|
|
266
336
|
],
|
|
267
|
-
overrideDecls: [],
|
|
337
|
+
overrideDecls: [{ name: "STATS_MODE", type: "u32", default: 0 }],
|
|
268
338
|
uniforms: [FA2_PARAMS, FA2_STATE, FA2_TRACE, FA2_PARTIAL],
|
|
269
339
|
needs: ["subgroups"],
|
|
270
340
|
snippetSlots: [],
|
|
271
341
|
phase: "P3",
|
|
272
342
|
};
|
|
273
|
-
/** `fa2-attraction` (K2, 3.10.1): the
|
|
343
|
+
/** `fa2-attraction` (K2, 3.10.1): the attraction gather over the CSR rows (the first writer of `force` each iteration); LINLOG / DISTRIBUTED / TIER 0 thread-per-row / 1 32-lanes-per-row / 2 workgroup-per-row (P4 PD-6) plus the standard USE_PERM / HAS_WEIGHTS; LAW 0 FA2 / 1 FR / 2 spring (P5); 6 storage bindings; calls the reduction helpers (TIER 2). */
|
|
274
344
|
const FA2_ATTRACTION = {
|
|
275
345
|
id: "fa2-attraction",
|
|
276
346
|
body: fa2AttractionWgsl,
|
|
@@ -280,13 +350,14 @@ const FA2_ATTRACTION = {
|
|
|
280
350
|
{ name: "LINLOG", type: "bool", default: false },
|
|
281
351
|
{ name: "DISTRIBUTED", type: "bool", default: false },
|
|
282
352
|
{ name: "TIER", type: "u32", default: 0 },
|
|
353
|
+
{ name: "LAW", type: "u32", default: 0 },
|
|
283
354
|
],
|
|
284
355
|
uniforms: [FA2_PARAMS],
|
|
285
|
-
needs: [],
|
|
356
|
+
needs: ["subgroups"],
|
|
286
357
|
snippetSlots: [],
|
|
287
358
|
phase: "P3",
|
|
288
359
|
};
|
|
289
|
-
/** `fa2-repulsion-exact` (K3, 3.10.1): the tiled all-pairs repulsion with the gravity and swing / traction epilogue; 6 storage bindings (`oldForce` read-only: it only calls load_old); calls the reduction helpers. */
|
|
360
|
+
/** `fa2-repulsion-exact` (K3, 3.10.1): the tiled all-pairs repulsion with the gravity and swing / traction epilogue; LAW 0 FA2 / 1 FR / 2 coulomb (P5); 6 storage bindings (`oldForce` read-only: it only calls load_old); calls the reduction helpers. */
|
|
290
361
|
const FA2_REPULSION_EXACT = {
|
|
291
362
|
id: "fa2-repulsion-exact",
|
|
292
363
|
body: fa2RepulsionExactWgsl,
|
|
@@ -304,6 +375,7 @@ const FA2_REPULSION_EXACT = {
|
|
|
304
375
|
{ name: "SWING_MODE", type: "u32", default: 0 },
|
|
305
376
|
{ name: "STRONG_GRAVITY", type: "bool", default: false },
|
|
306
377
|
{ name: "GRAVITY_CENTER", type: "u32", default: 0 },
|
|
378
|
+
{ name: "LAW", type: "u32", default: 0 },
|
|
307
379
|
],
|
|
308
380
|
uniforms: [FA2_PARAMS, FA2_STATE, FA2_PARTIAL],
|
|
309
381
|
needs: ["subgroups"],
|
|
@@ -327,7 +399,7 @@ const FA2_SPEED_FINALIZE = {
|
|
|
327
399
|
snippetSlots: [],
|
|
328
400
|
phase: "P1",
|
|
329
401
|
};
|
|
330
|
-
/** `fa2-integrate` (K5, 3.10.1): the per-node speed factor and position update (no clamp, D25), `oldForce` stored in SWING_MODE 0, and the partials A / C of the next K1; 6 storage bindings; calls the reduction helpers. */
|
|
402
|
+
/** `fa2-integrate` (K5, 3.10.1): the per-node speed factor and position update (no clamp, D25), `oldForce` stored in SWING_MODE 0, and the partials A / C of the next K1; APPLY 0 FA2 / 1 FR temperature cap / 2 ngraph Euler (P5); 6 storage bindings; calls the reduction helpers. */
|
|
331
403
|
const FA2_INTEGRATE = {
|
|
332
404
|
id: "fa2-integrate",
|
|
333
405
|
body: fa2IntegrateWgsl,
|
|
@@ -341,7 +413,10 @@ const FA2_INTEGRATE = {
|
|
|
341
413
|
decl(1, 5, "partials", "storage", "array<Fa2Partial>"),
|
|
342
414
|
decl(2, 0, "P", "uniform", "Fa2Params"),
|
|
343
415
|
],
|
|
344
|
-
overrideDecls: [
|
|
416
|
+
overrideDecls: [
|
|
417
|
+
{ name: "SWING_MODE", type: "u32", default: 0 },
|
|
418
|
+
{ name: "APPLY", type: "u32", default: 0 },
|
|
419
|
+
],
|
|
345
420
|
uniforms: [FA2_PARAMS, FA2_STATE, FA2_PARTIAL],
|
|
346
421
|
needs: ["subgroups"],
|
|
347
422
|
snippetSlots: [],
|
|
@@ -363,7 +438,7 @@ const FA2_TO_SCENE = {
|
|
|
363
438
|
snippetSlots: [],
|
|
364
439
|
phase: "P3",
|
|
365
440
|
};
|
|
366
|
-
/** `spmv-pull` (spec 8.10): the
|
|
441
|
+
/** `spmv-pull` (spec 8.10): the pull SpMV over the reverse adjacency; HAS_PERSONALIZATION / USE_DANGLING / TIER 0 grid-stride / 1 32-lanes-per-row / 2 workgroup-per-row (the reverseDegreeOrder tiers, P4 PD-6) plus the standard USE_PERM / HAS_WEIGHTS; 8 storage bindings (the design's count); calls the reduction helpers (TIER 2). */
|
|
367
442
|
const SPMV_PULL = {
|
|
368
443
|
id: "spmv-pull",
|
|
369
444
|
body: spmvPullWgsl,
|
|
@@ -372,9 +447,10 @@ const SPMV_PULL = {
|
|
|
372
447
|
overrideDecls: [
|
|
373
448
|
{ name: "HAS_PERSONALIZATION", type: "bool", default: false },
|
|
374
449
|
{ name: "USE_DANGLING", type: "bool", default: false },
|
|
450
|
+
{ name: "TIER", type: "u32", default: 0 },
|
|
375
451
|
],
|
|
376
452
|
uniforms: [SPMV_PARAMS, PR_PARTIAL],
|
|
377
|
-
needs: [],
|
|
453
|
+
needs: ["subgroups"],
|
|
378
454
|
snippetSlots: [],
|
|
379
455
|
phase: "P7",
|
|
380
456
|
};
|
|
@@ -466,6 +542,240 @@ const WCC_SAMPLE = {
|
|
|
466
542
|
snippetSlots: [],
|
|
467
543
|
phase: "P7",
|
|
468
544
|
};
|
|
545
|
+
/** `indirect-finalize` (spec 5.4; P4-T1): the one-lane count -> (x, y, 1, count) finalize; 2 storage bindings. */
|
|
546
|
+
const INDIRECT_FINALIZE = {
|
|
547
|
+
id: "indirect-finalize",
|
|
548
|
+
body: indirectFinalizeWgsl,
|
|
549
|
+
entryPoint: "indirect_finalize",
|
|
550
|
+
bindings: [
|
|
551
|
+
decl(1, 0, "counters", "storage-ro", "array<u32>"),
|
|
552
|
+
decl(1, 1, "args", "storage", "array<u32>"),
|
|
553
|
+
decl(2, 0, "P", "uniform", "IndirectParams"),
|
|
554
|
+
],
|
|
555
|
+
overrideDecls: [],
|
|
556
|
+
uniforms: [INDIRECT_PARAMS],
|
|
557
|
+
needs: [],
|
|
558
|
+
snippetSlots: [],
|
|
559
|
+
phase: "P4",
|
|
560
|
+
};
|
|
561
|
+
/** `scan-block` (spec 6 row 2 steps (a) / (b); P4-T2, PD-3): the Hillis-Steele exclusive scan of one WG-wide block into `out` and its total into `blockSums[group]`; 3 storage bindings; no subgroup variant. */
|
|
562
|
+
const SCAN_BLOCK = {
|
|
563
|
+
id: "scan-block",
|
|
564
|
+
body: scanBlockWgsl,
|
|
565
|
+
entryPoint: "scan_block",
|
|
566
|
+
bindings: [
|
|
567
|
+
decl(1, 0, "src", "storage-ro", "array<u32>"),
|
|
568
|
+
decl(1, 1, "out", "storage", "array<u32>"),
|
|
569
|
+
decl(1, 2, "blockSums", "storage", "array<u32>"),
|
|
570
|
+
decl(2, 0, "P", "uniform", "ScanParams"),
|
|
571
|
+
],
|
|
572
|
+
overrideDecls: [],
|
|
573
|
+
uniforms: [SCAN_PARAMS],
|
|
574
|
+
needs: [],
|
|
575
|
+
snippetSlots: [],
|
|
576
|
+
phase: "P4",
|
|
577
|
+
};
|
|
578
|
+
/** `scan-add` (spec 6 row 2 step (c); P4-T2): adds `blockOffsets[group]` to every element of the block; 2 storage bindings. */
|
|
579
|
+
const SCAN_ADD = {
|
|
580
|
+
id: "scan-add",
|
|
581
|
+
body: scanAddWgsl,
|
|
582
|
+
entryPoint: "scan_add",
|
|
583
|
+
bindings: [
|
|
584
|
+
decl(1, 0, "out", "storage", "array<u32>"),
|
|
585
|
+
decl(1, 1, "blockOffsets", "storage-ro", "array<u32>"),
|
|
586
|
+
decl(2, 0, "P", "uniform", "ScanParams"),
|
|
587
|
+
],
|
|
588
|
+
overrideDecls: [],
|
|
589
|
+
uniforms: [SCAN_PARAMS],
|
|
590
|
+
needs: [],
|
|
591
|
+
snippetSlots: [],
|
|
592
|
+
phase: "P4",
|
|
593
|
+
};
|
|
594
|
+
/** `histogram` (spec 6 row 5; P4-T3, PD-4): one global atomicAdd per key into `hist` (zeroed by a `fill` dispatch earlier in the pass); 2 storage bindings; one path, no PRIVATE override. */
|
|
595
|
+
const HISTOGRAM = {
|
|
596
|
+
id: "histogram",
|
|
597
|
+
body: histogramWgsl,
|
|
598
|
+
entryPoint: "histogram",
|
|
599
|
+
bindings: [
|
|
600
|
+
decl(1, 0, "keys", "storage-ro", "array<u32>"),
|
|
601
|
+
decl(1, 1, "hist", "storage", "array<atomic<u32>>"),
|
|
602
|
+
decl(2, 0, "P", "uniform", "HistParams"),
|
|
603
|
+
],
|
|
604
|
+
overrideDecls: [],
|
|
605
|
+
uniforms: [HIST_PARAMS],
|
|
606
|
+
needs: [],
|
|
607
|
+
snippetSlots: [],
|
|
608
|
+
phase: "P4",
|
|
609
|
+
};
|
|
610
|
+
/** `counting-scatter` (spec 6 row 5; P4-T3): the scatter of a counting sort, `outIndex[start[k] + atomicAdd(&cursor[k], 1u)] = i`; 4 storage bindings; set-deterministic (the order inside a bin follows the schedule). */
|
|
611
|
+
const COUNTING_SCATTER = {
|
|
612
|
+
id: "counting-scatter",
|
|
613
|
+
body: countingScatterWgsl,
|
|
614
|
+
entryPoint: "counting_scatter",
|
|
615
|
+
bindings: [
|
|
616
|
+
decl(1, 0, "keys", "storage-ro", "array<u32>"),
|
|
617
|
+
decl(1, 1, "start", "storage-ro", "array<u32>"),
|
|
618
|
+
decl(1, 2, "cursor", "storage", "array<atomic<u32>>"),
|
|
619
|
+
decl(1, 3, "outIndex", "storage", "array<u32>"),
|
|
620
|
+
decl(2, 0, "P", "uniform", "HistParams"),
|
|
621
|
+
],
|
|
622
|
+
overrideDecls: [],
|
|
623
|
+
uniforms: [HIST_PARAMS],
|
|
624
|
+
needs: [],
|
|
625
|
+
snippetSlots: [],
|
|
626
|
+
phase: "P4",
|
|
627
|
+
};
|
|
628
|
+
/** `radix-hist` (spec 6 row 6; P4-T4, PD-5): the per-workgroup 256-bin digit histogram, privatised in workgroup memory and stored digit-major `hist[digit * groups + group]`; 2 storage bindings. */
|
|
629
|
+
const RADIX_HIST = {
|
|
630
|
+
id: "radix-hist",
|
|
631
|
+
body: radixHistWgsl,
|
|
632
|
+
entryPoint: "radix_hist",
|
|
633
|
+
bindings: [
|
|
634
|
+
decl(1, 0, "keys", "storage-ro", "array<u32>"),
|
|
635
|
+
decl(1, 1, "hist", "storage", "array<u32>"),
|
|
636
|
+
decl(2, 0, "P", "uniform", "RadixParams"),
|
|
637
|
+
],
|
|
638
|
+
overrideDecls: [],
|
|
639
|
+
uniforms: [RADIX_PARAMS],
|
|
640
|
+
needs: [],
|
|
641
|
+
snippetSlots: [],
|
|
642
|
+
phase: "P4",
|
|
643
|
+
};
|
|
644
|
+
/** `radix-scatter` (spec 6 row 6; P4-T4, PD-5): the stable scatter of one LSD pass, ranked serially by lane 0, written at `offsets[digit * groups + group] + rank`; 5 storage bindings. */
|
|
645
|
+
const RADIX_SCATTER = {
|
|
646
|
+
id: "radix-scatter",
|
|
647
|
+
body: radixScatterWgsl,
|
|
648
|
+
entryPoint: "radix_scatter",
|
|
649
|
+
bindings: [
|
|
650
|
+
decl(1, 0, "keys", "storage-ro", "array<u32>"),
|
|
651
|
+
decl(1, 1, "vals", "storage-ro", "array<u32>"),
|
|
652
|
+
decl(1, 2, "offsets", "storage-ro", "array<u32>"),
|
|
653
|
+
decl(1, 3, "keysOut", "storage", "array<u32>"),
|
|
654
|
+
decl(1, 4, "valsOut", "storage", "array<u32>"),
|
|
655
|
+
decl(2, 0, "P", "uniform", "RadixParams"),
|
|
656
|
+
],
|
|
657
|
+
overrideDecls: [],
|
|
658
|
+
uniforms: [RADIX_PARAMS],
|
|
659
|
+
needs: [],
|
|
660
|
+
snippetSlots: [],
|
|
661
|
+
phase: "P4",
|
|
662
|
+
};
|
|
663
|
+
/** `grid-cell-key` (G1, spec 7.7; P4-T8, PD-10): the finest cell key of every node, `floor((p - gridMin) * invCellSize)` linearised, or the outside pseudo-cell `G^dim`; `cellVal[i] = i`; 4 storage bindings (the state read-only: K1 writes it). */
|
|
664
|
+
const GRID_CELL_KEY = {
|
|
665
|
+
id: "grid-cell-key",
|
|
666
|
+
body: gridCellKeyWgsl,
|
|
667
|
+
entryPoint: "grid_cell_key",
|
|
668
|
+
bindings: [
|
|
669
|
+
decl(1, 0, "pos", "storage-ro", "array<vec4f>"),
|
|
670
|
+
decl(1, 1, "S", "storage-ro", "Fa2State"),
|
|
671
|
+
decl(1, 2, "cellKey", "storage", "array<u32>"),
|
|
672
|
+
decl(1, 3, "cellVal", "storage", "array<u32>"),
|
|
673
|
+
decl(2, 0, "P", "uniform", "Fa2Params"),
|
|
674
|
+
],
|
|
675
|
+
overrideDecls: [],
|
|
676
|
+
uniforms: [FA2_PARAMS, FA2_STATE],
|
|
677
|
+
needs: [],
|
|
678
|
+
snippetSlots: [],
|
|
679
|
+
phase: "P4",
|
|
680
|
+
};
|
|
681
|
+
/** `grid-centroid` (G4, spec 7.7; P4-T9, PD-13): thread per finest cell (the pseudo-cell included), the serial mass-weighted sum in sorted order into level 0, the occupancy max into `hubCounters[1]`, hub cells (> GRID_HUB_CELL) appended to `hubList`; 6 storage bindings. */
|
|
682
|
+
const GRID_CENTROID = {
|
|
683
|
+
id: "grid-centroid",
|
|
684
|
+
body: gridCentroidWgsl,
|
|
685
|
+
entryPoint: "grid_centroid",
|
|
686
|
+
bindings: [
|
|
687
|
+
decl(1, 0, "sortedIdx", "storage-ro", "array<u32>"),
|
|
688
|
+
decl(1, 1, "cellStart", "storage-ro", "array<u32>"),
|
|
689
|
+
decl(1, 2, "pos", "storage-ro", "array<vec4f>"),
|
|
690
|
+
decl(1, 3, "pyramid", "storage", "array<vec4f>"),
|
|
691
|
+
decl(1, 4, "hubList", "storage", "array<u32>"),
|
|
692
|
+
decl(1, 5, "hubCounters", "storage", "array<atomic<u32>>"),
|
|
693
|
+
decl(2, 0, "P", "uniform", "Fa2Params"),
|
|
694
|
+
],
|
|
695
|
+
overrideDecls: [],
|
|
696
|
+
uniforms: [FA2_PARAMS],
|
|
697
|
+
needs: [],
|
|
698
|
+
snippetSlots: [],
|
|
699
|
+
phase: "P4",
|
|
700
|
+
};
|
|
701
|
+
/** `grid-centroid-hub` (G4b, spec 7.7; P4-T9, PD-13, DEP-P4-L): one workgroup per hub cell, dispatched indirectly, a WG-strided sum through `wg_reduce_vec4` guarded by `h < hubCount[0]`; 6 storage bindings (`hubCount` is a read-only view of `hubCounters`). */
|
|
702
|
+
const GRID_CENTROID_HUB = {
|
|
703
|
+
id: "grid-centroid-hub",
|
|
704
|
+
body: gridCentroidHubWgsl,
|
|
705
|
+
entryPoint: "grid_centroid_hub",
|
|
706
|
+
bindings: [
|
|
707
|
+
decl(1, 0, "sortedIdx", "storage-ro", "array<u32>"),
|
|
708
|
+
decl(1, 1, "cellStart", "storage-ro", "array<u32>"),
|
|
709
|
+
decl(1, 2, "pos", "storage-ro", "array<vec4f>"),
|
|
710
|
+
decl(1, 3, "pyramid", "storage", "array<vec4f>"),
|
|
711
|
+
decl(1, 4, "hubList", "storage-ro", "array<u32>"),
|
|
712
|
+
decl(1, 5, "hubCount", "storage-ro", "array<u32>"),
|
|
713
|
+
decl(2, 0, "P", "uniform", "Fa2Params"),
|
|
714
|
+
],
|
|
715
|
+
overrideDecls: [],
|
|
716
|
+
uniforms: [FA2_PARAMS],
|
|
717
|
+
needs: ["subgroups"],
|
|
718
|
+
snippetSlots: [],
|
|
719
|
+
phase: "P4",
|
|
720
|
+
};
|
|
721
|
+
/** `grid-downsample` (G5, spec 7.7; P4-T9): one dispatch per coarser level, every parent the sum of its 4 / 8 children at `P.childBase`, written at `P.parentBase`; 1 storage binding. */
|
|
722
|
+
const GRID_DOWNSAMPLE = {
|
|
723
|
+
id: "grid-downsample",
|
|
724
|
+
body: gridDownsampleWgsl,
|
|
725
|
+
entryPoint: "grid_downsample",
|
|
726
|
+
bindings: [decl(1, 0, "pyramid", "storage", "array<vec4f>"), decl(2, 0, "P", "uniform", "GridLevelParams")],
|
|
727
|
+
overrideDecls: [],
|
|
728
|
+
uniforms: [GRID_LEVEL_PARAMS],
|
|
729
|
+
needs: [],
|
|
730
|
+
snippetSlots: [],
|
|
731
|
+
phase: "P4",
|
|
732
|
+
};
|
|
733
|
+
/** `grid-far-field` (G6, spec 7.7; P4-T10, PD-16, DEP-P4-G): per node in sorted order, the coarsest level minus its 3x3 (3x3x3) and, per finer level, the parent's 3x3 refined minus the level's own 3x3, plus the pseudo-cell; the loop bounds are `P.levels` / `P.gridMax`; LAW 0 FA2 / 1 FR / 2 coulomb per cell (P4-T13, PD-22); 5 storage bindings. */
|
|
734
|
+
const GRID_FAR_FIELD = {
|
|
735
|
+
id: "grid-far-field",
|
|
736
|
+
body: gridFarFieldWgsl,
|
|
737
|
+
entryPoint: "grid_far_field",
|
|
738
|
+
bindings: [
|
|
739
|
+
decl(1, 0, "pos", "storage-ro", "array<vec4f>"),
|
|
740
|
+
decl(1, 1, "sortedIdx", "storage-ro", "array<u32>"),
|
|
741
|
+
decl(1, 2, "pyramid", "storage-ro", "array<vec4f>"),
|
|
742
|
+
decl(1, 3, "S", "storage-ro", "Fa2State"),
|
|
743
|
+
decl(1, 4, "force", "storage", "array<f32>"),
|
|
744
|
+
decl(2, 0, "P", "uniform", "Fa2Params"),
|
|
745
|
+
],
|
|
746
|
+
overrideDecls: [{ name: "LAW", type: "u32", default: 0 }],
|
|
747
|
+
uniforms: [FA2_PARAMS, FA2_STATE],
|
|
748
|
+
needs: [],
|
|
749
|
+
snippetSlots: [],
|
|
750
|
+
phase: "P4",
|
|
751
|
+
};
|
|
752
|
+
/** `grid-near-field` (G7, spec 7.7; P4-T10, PD-15): per node in sorted order, K3's exact pair law over the 9 (27) finest cells, a cell above `nearMax` sampled through the hashed window and scaled by `others / sampled`, then K3's fused epilogue (gravity, `force +=`, the swing / traction reduction); SWING_MODE / STRONG_GRAVITY / GRAVITY_CENTER / LAW as K3 (LAW 0 FA2 / 1 FR / 2 coulomb, P4-T13, PD-22); 8 storage bindings; calls the reduction helpers. */
|
|
753
|
+
const GRID_NEAR_FIELD = {
|
|
754
|
+
id: "grid-near-field",
|
|
755
|
+
body: gridNearFieldWgsl,
|
|
756
|
+
entryPoint: "grid_near_field",
|
|
757
|
+
bindings: [
|
|
758
|
+
decl(1, 0, "pos", "storage-ro", "array<vec4f>"),
|
|
759
|
+
decl(1, 1, "sortedIdx", "storage-ro", "array<u32>"),
|
|
760
|
+
decl(1, 2, "cellStart", "storage-ro", "array<u32>"),
|
|
761
|
+
decl(1, 3, "S", "storage", "Fa2State"),
|
|
762
|
+
decl(1, 4, "force", "storage", "array<f32>"),
|
|
763
|
+
decl(1, 5, "oldForce", "storage-ro", "array<f32>"),
|
|
764
|
+
decl(1, 6, "fixedMask", "storage-ro", "array<u32>"),
|
|
765
|
+
decl(1, 7, "partials", "storage", "array<Fa2Partial>"),
|
|
766
|
+
decl(2, 0, "P", "uniform", "Fa2Params"),
|
|
767
|
+
],
|
|
768
|
+
overrideDecls: [
|
|
769
|
+
{ name: "SWING_MODE", type: "u32", default: 0 },
|
|
770
|
+
{ name: "STRONG_GRAVITY", type: "bool", default: false },
|
|
771
|
+
{ name: "GRAVITY_CENTER", type: "u32", default: 0 },
|
|
772
|
+
{ name: "LAW", type: "u32", default: 0 },
|
|
773
|
+
],
|
|
774
|
+
uniforms: [FA2_PARAMS, FA2_STATE, FA2_PARTIAL],
|
|
775
|
+
needs: ["subgroups"],
|
|
776
|
+
snippetSlots: [],
|
|
777
|
+
phase: "P4",
|
|
778
|
+
};
|
|
469
779
|
/**
|
|
470
780
|
* The entries by id, in dispatch order. PLAN DECISION: `KernelId` is declared in full (contract 3.10) while the
|
|
471
781
|
* entries landed phase by phase, so the table is built as a Partial record and exported below through the
|
|
@@ -493,6 +803,19 @@ const REGISTRY = Object.freeze({
|
|
|
493
803
|
"wcc-link-edges": WCC_LINK_EDGES,
|
|
494
804
|
"wcc-compress": WCC_COMPRESS,
|
|
495
805
|
"wcc-sample": WCC_SAMPLE,
|
|
806
|
+
"indirect-finalize": INDIRECT_FINALIZE,
|
|
807
|
+
"scan-block": SCAN_BLOCK,
|
|
808
|
+
"scan-add": SCAN_ADD,
|
|
809
|
+
histogram: HISTOGRAM,
|
|
810
|
+
"counting-scatter": COUNTING_SCATTER,
|
|
811
|
+
"radix-hist": RADIX_HIST,
|
|
812
|
+
"radix-scatter": RADIX_SCATTER,
|
|
813
|
+
"grid-cell-key": GRID_CELL_KEY,
|
|
814
|
+
"grid-centroid": GRID_CENTROID,
|
|
815
|
+
"grid-centroid-hub": GRID_CENTROID_HUB,
|
|
816
|
+
"grid-downsample": GRID_DOWNSAMPLE,
|
|
817
|
+
"grid-far-field": GRID_FAR_FIELD,
|
|
818
|
+
"grid-near-field": GRID_NEAR_FIELD,
|
|
496
819
|
});
|
|
497
820
|
/** THE registry (spec 3.5): every entry, keyed by id. */
|
|
498
821
|
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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"}
|