oidn-web 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +140 -4
  3. package/benchmarks/compare.mjs +651 -0
  4. package/benchmarks/leak.mjs +255 -0
  5. package/benchmarks/results/before-spatial.json +391 -0
  6. package/benchmarks/results/before-spatial.md +47 -0
  7. package/benchmarks/results/int8-scan.json +2007 -0
  8. package/benchmarks/results/int8-scan.md +160 -0
  9. package/benchmarks/results/int8-w8a8-scan.json +2007 -0
  10. package/benchmarks/results/int8-w8a8-scan.md +160 -0
  11. package/benchmarks/results/int8-weight-channel.json +1413 -0
  12. package/benchmarks/results/int8-weight-channel.md +118 -0
  13. package/benchmarks/results/int8-weight-only.json +1437 -0
  14. package/benchmarks/results/int8-weight-only.md +118 -0
  15. package/benchmarks/results/kernel-webnn-final.json +1115 -0
  16. package/benchmarks/results/kernel-webnn-final.md +104 -0
  17. package/benchmarks/results/latest-optimized.json +375 -0
  18. package/benchmarks/results/latest-optimized.md +47 -0
  19. package/benchmarks/results/latest.json +391 -0
  20. package/benchmarks/results/latest.md +47 -0
  21. package/benchmarks/results/profile-baseline.json +331 -0
  22. package/benchmarks/results/profile-baseline.md +12 -0
  23. package/benchmarks/results/profile-conv2x.json +331 -0
  24. package/benchmarks/results/profile-conv2x.md +12 -0
  25. package/benchmarks/results/profile-fast-init.json +385 -0
  26. package/benchmarks/results/profile-fast-init.md +47 -0
  27. package/benchmarks/results/profile-fp16-fma.json +369 -0
  28. package/benchmarks/results/profile-fp16-fma.md +47 -0
  29. package/benchmarks/results/profile-fp16-tiled-decoder.json +369 -0
  30. package/benchmarks/results/profile-fp16-tiled-decoder.md +47 -0
  31. package/benchmarks/results/profile-fp16-tiled-encoder.json +369 -0
  32. package/benchmarks/results/profile-fp16-tiled-encoder.md +47 -0
  33. package/benchmarks/results/profile-fp16-unfused-pool.json +385 -0
  34. package/benchmarks/results/profile-fp16-unfused-pool.md +47 -0
  35. package/benchmarks/results/profile-input-major.json +347 -0
  36. package/benchmarks/results/profile-input-major.md +12 -0
  37. package/benchmarks/results/profile-k16.json +347 -0
  38. package/benchmarks/results/profile-k16.md +12 -0
  39. package/benchmarks/results/profile-k4.json +347 -0
  40. package/benchmarks/results/profile-k4.md +12 -0
  41. package/benchmarks/results/profile-pool-reuse.json +331 -0
  42. package/benchmarks/results/profile-pool-reuse.md +12 -0
  43. package/benchmarks/results/profile-precompiled.json +385 -0
  44. package/benchmarks/results/profile-precompiled.md +47 -0
  45. package/benchmarks/results/profile-static-channels.json +385 -0
  46. package/benchmarks/results/profile-static-channels.md +47 -0
  47. package/benchmarks/results/profile-static-io.json +385 -0
  48. package/benchmarks/results/profile-static-io.md +47 -0
  49. package/benchmarks/results/profile-tiled-conv.json +331 -0
  50. package/benchmarks/results/profile-tiled-conv.md +12 -0
  51. package/benchmarks/results/profile-tiled-decoder.json +347 -0
  52. package/benchmarks/results/profile-tiled-decoder.md +12 -0
  53. package/benchmarks/results/profile-tiled-matmul.json +331 -0
  54. package/benchmarks/results/profile-tiled-matmul.md +12 -0
  55. package/benchmarks/results/profile-unfused-decoder.json +379 -0
  56. package/benchmarks/results/profile-unfused-decoder.md +12 -0
  57. package/benchmarks/results/profile-unfused-pool.json +347 -0
  58. package/benchmarks/results/profile-unfused-pool.md +12 -0
  59. package/benchmarks/results/spatial-auto.json +575 -0
  60. package/benchmarks/results/spatial-auto.md +61 -0
  61. package/benchmarks/results/subgroup-smoke.json +1094 -0
  62. package/benchmarks/results/subgroup-smoke.md +104 -0
  63. package/benchmarks/results/webnn-smoke.json +739 -0
  64. package/benchmarks/results/webnn-smoke.md +76 -0
  65. package/dist/oidn.js +4189 -22603
  66. package/dist/oidn.umd.cjs +784 -5807
  67. package/lib/UNet.d.ts +66 -15
  68. package/lib/UNet.js +162 -257
  69. package/lib/UNet.js.map +1 -1
  70. package/lib/WGPUComputePass.d.ts +1 -1
  71. package/lib/WGPUComputePass.js +6 -4
  72. package/lib/WGPUComputePass.js.map +1 -1
  73. package/lib/backend.d.ts +8 -4
  74. package/lib/backend.js +36 -44
  75. package/lib/backend.js.map +1 -1
  76. package/lib/graphOptimizer.d.ts +54 -0
  77. package/lib/graphOptimizer.js +216 -0
  78. package/lib/graphOptimizer.js.map +1 -0
  79. package/lib/main.d.ts +33 -10
  80. package/lib/main.js +5 -0
  81. package/lib/main.js.map +1 -1
  82. package/lib/modelSpec.d.ts +80 -0
  83. package/lib/modelSpec.js +270 -0
  84. package/lib/modelSpec.js.map +1 -0
  85. package/lib/nativeUNet.d.ts +67 -0
  86. package/lib/nativeUNet.js +1735 -0
  87. package/lib/nativeUNet.js.map +1 -0
  88. package/lib/process.js +38 -35
  89. package/lib/process.js.map +1 -1
  90. package/lib/resourceTracker.d.ts +26 -0
  91. package/lib/resourceTracker.js +65 -0
  92. package/lib/resourceTracker.js.map +1 -0
  93. package/lib/tileScheduler.d.ts +33 -0
  94. package/lib/tileScheduler.js +86 -0
  95. package/lib/tileScheduler.js.map +1 -0
  96. package/lib/webnnUNet.d.ts +52 -0
  97. package/lib/webnnUNet.js +535 -0
  98. package/lib/webnnUNet.js.map +1 -0
  99. package/package.json +9 -5
  100. package/scripts/inspect-model.mjs +64 -0
  101. package/src/UNet.ts +236 -339
  102. package/src/WGPUComputePass.ts +6 -4
  103. package/src/backend.ts +42 -55
  104. package/src/graphOptimizer.ts +301 -0
  105. package/src/main.ts +71 -11
  106. package/src/modelSpec.ts +414 -0
  107. package/src/nativeUNet.ts +2256 -0
  108. package/src/process.ts +38 -36
  109. package/src/resourceTracker.ts +94 -0
  110. package/src/tileScheduler.ts +138 -0
  111. package/src/webnnUNet.ts +812 -0
  112. package/tests/modelSpec.test.mjs +128 -0
  113. package/tests/resourceLifecycle.test.mjs +383 -0
  114. package/tests/tileScheduler.test.mjs +90 -0
  115. package/lib/helper.d.ts +0 -4
  116. package/lib/helper.js +0 -33
  117. package/lib/helper.js.map +0 -1
  118. package/lib/kernels.d.ts +0 -1
  119. package/lib/kernels.js +0 -26
  120. package/lib/kernels.js.map +0 -1
  121. package/src/helper.ts +0 -43
  122. package/src/kernels.ts +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeUNet.js","sourceRoot":"","sources":["../src/nativeUNet.ts"],"names":[],"mappings":"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"}
package/lib/process.js CHANGED
@@ -129,18 +129,18 @@ export class GPUDataProcess {
129
129
  },
130
130
  {
131
131
  label: 'inputSize',
132
- type: 'vec2<f32>',
133
- data: new Float32Array(2)
132
+ type: 'vec2i',
133
+ data: new Int32Array(2)
134
134
  },
135
135
  {
136
136
  label: 'outputSize',
137
- type: 'vec2<f32>',
138
- data: new Float32Array(2)
137
+ type: 'vec2i',
138
+ data: new Int32Array(2)
139
139
  },
140
140
  {
141
141
  label: 'inputOffset',
142
- type: 'vec2<f32>',
143
- data: new Float32Array(2)
142
+ type: 'vec2i',
143
+ data: new Int32Array(2)
144
144
  }
145
145
  ];
146
146
  this._inputPassAux = new WGPUComputePass('inputPassAux', this._device, {
@@ -168,28 +168,28 @@ export class GPUDataProcess {
168
168
  },
169
169
  {
170
170
  label: 'inputSize',
171
- type: 'vec2<f32>',
172
- data: new Float32Array(2)
171
+ type: 'vec2i',
172
+ data: new Int32Array(2)
173
173
  },
174
174
  {
175
175
  label: 'outputSize',
176
- type: 'vec2<f32>',
177
- data: new Float32Array(2)
176
+ type: 'vec2i',
177
+ data: new Int32Array(2)
178
178
  },
179
179
  {
180
180
  label: 'imageSize',
181
- type: 'vec2<f32>',
182
- data: new Float32Array(2)
181
+ type: 'vec2i',
182
+ data: new Int32Array(2)
183
183
  },
184
184
  {
185
185
  label: 'inputOffset',
186
- type: 'vec2<f32>',
187
- data: new Float32Array(2)
186
+ type: 'vec2i',
187
+ data: new Int32Array(2)
188
188
  },
189
189
  {
190
190
  label: 'outputOffset',
191
- type: 'vec2<f32>',
192
- data: new Float32Array(2)
191
+ type: 'vec2i',
192
+ data: new Int32Array(2)
193
193
  }
194
194
  ],
195
195
  csDefine: '',
@@ -202,8 +202,8 @@ export class GPUDataProcess {
202
202
  uniforms: [
203
203
  {
204
204
  label: 'size',
205
- type: 'vec2<f32>',
206
- data: new Float32Array(2)
205
+ type: 'vec2i',
206
+ data: new Int32Array(2)
207
207
  }
208
208
  ],
209
209
  csMain: /*wgsl*/ `
@@ -247,12 +247,12 @@ fn PUForward(y: f32) -> f32 {
247
247
  : `in_${inputName}[inIdx]`;
248
248
  }
249
249
  const commonCSMain = /* wgsl */ `
250
- let x = f32(globalId.x);
251
- let y = f32(globalId.y);
252
- let inIdx = i32((y + inputOffset.y) * inputSize.x + (x + inputOffset.x));
250
+ let x = i32(globalId.x);
251
+ let y = i32(globalId.y);
252
+ let inIdx = (y + inputOffset.y) * inputSize.x + (x + inputOffset.x);
253
253
  let col = ${readInputCode('color')};
254
254
 
255
- let outIdx = i32(y * outputSize.x + x);
255
+ let outIdx = y * outputSize.x + x;
256
256
 
257
257
  if (${denoiseAlpha}) {
258
258
  // Denoise the inversed alpha. Or the anti aliased edge will be too dark after denoised
@@ -295,13 +295,13 @@ fn PUInverse(y: f32) -> f32 {
295
295
  }
296
296
  `,
297
297
  csMain: /* wgsl */ `
298
- let x = f32(globalId.x);
299
- let y = f32(globalId.y);
298
+ let x = i32(globalId.x);
299
+ let y = i32(globalId.y);
300
300
  if (x >= outputSize.x || y >= outputSize.y) {
301
301
  return;
302
302
  }
303
- let inIdx = i32((y + inputOffset.y) * inputSize.x + x + inputOffset.x);
304
- let outIdx = i32((y + outputOffset.y) * imageSize.x + x + outputOffset.x);
303
+ let inIdx = (y + inputOffset.y) * inputSize.x + x + inputOffset.x;
304
+ let outIdx = (y + outputOffset.y) * imageSize.x + x + outputOffset.x;
305
305
  let col = in_color[inIdx];
306
306
  let raw = ${isInputTexture
307
307
  ? 'textureLoad(in_raw, globalId.xy + vec2u(outputOffset), 0)'
@@ -324,17 +324,17 @@ else {
324
324
  });
325
325
  }
326
326
  setImageSize(w, h) {
327
- this._inputPassAux.setUniform('inputSize', new Float32Array([w, h]));
328
- this._inputPassColor.setUniform('inputSize', new Float32Array([w, h]));
329
- this._outputPass.setUniform('imageSize', new Float32Array([w, h]));
327
+ this._inputPassAux.setUniform('inputSize', new Int32Array([w, h]));
328
+ this._inputPassColor.setUniform('inputSize', new Int32Array([w, h]));
329
+ this._outputPass.setUniform('imageSize', new Int32Array([w, h]));
330
330
  this._outputPass.setSize(w, h);
331
331
  this._copyPass.setSize(w, h);
332
- this._copyPass.setUniform('size', new Float32Array([w, h]));
332
+ this._copyPass.setUniform('size', new Int32Array([w, h]));
333
333
  }
334
334
  setInputTile(tile) {
335
- const size = new Float32Array([tile.width, tile.height]);
335
+ const size = new Int32Array([tile.width, tile.height]);
336
336
  [this._inputPassAux, this._inputPassColor].forEach((inputPass) => {
337
- inputPass.setUniform('inputOffset', new Float32Array([tile.x, tile.y]));
337
+ inputPass.setUniform('inputOffset', new Int32Array([tile.x, tile.y]));
338
338
  inputPass.setUniform('outputSize', size);
339
339
  inputPass.setSize(size[0], size[1]);
340
340
  });
@@ -342,12 +342,12 @@ else {
342
342
  }
343
343
  setOutputTile(dstTile, srcTile) {
344
344
  const outputPass = this._outputPass;
345
- const size = new Float32Array([dstTile.width, dstTile.height]);
345
+ const size = new Int32Array([dstTile.width, dstTile.height]);
346
346
  const dx = dstTile.x - srcTile.x;
347
347
  const dy = dstTile.y - srcTile.y;
348
348
  outputPass.setUniform('outputSize', size);
349
- outputPass.setUniform('inputOffset', new Float32Array([dx, dy]));
350
- outputPass.setUniform('outputOffset', new Float32Array([dstTile.x, dstTile.y]));
349
+ outputPass.setUniform('inputOffset', new Int32Array([dx, dy]));
350
+ outputPass.setUniform('outputOffset', new Int32Array([dstTile.x, dstTile.y]));
351
351
  outputPass.setExecuteSize(size[0], size[1]);
352
352
  }
353
353
  forward(colorBuffer,
@@ -426,6 +426,9 @@ else {
426
426
  dispose() {
427
427
  this._outputPass.dispose();
428
428
  this._inputPassAux.dispose();
429
+ this._inputPassColor.dispose();
430
+ // copyPass borrows outputPass's target and must not destroy it again.
431
+ this._copyPass.dispose(false);
429
432
  }
430
433
  }
431
434
  //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export type OIDNResourceKind = 'gpu-buffer' | 'gpu-query-set' | 'ml-context' | 'ml-graph' | 'ml-tensor';
2
+ export interface OIDNResourceStats {
3
+ created: number;
4
+ destroyed: number;
5
+ live: number;
6
+ peakLive: number;
7
+ }
8
+ export interface OIDNResourceSnapshot {
9
+ live: number;
10
+ created: number;
11
+ destroyed: number;
12
+ peakLive: number;
13
+ pending: number;
14
+ byKind: Partial<Record<OIDNResourceKind, OIDNResourceStats>>;
15
+ }
16
+ /**
17
+ * Counts explicitly owned browser resources. Keeping the ownership registry in
18
+ * production makes cache eviction and failure cleanup testable without relying
19
+ * on JS heap measurements, which do not include WebGPU allocations.
20
+ */
21
+ export declare class OIDNResourceTracker {
22
+ private _stats;
23
+ track<T extends object>(kind: OIDNResourceKind, resource: T): T;
24
+ release(kind: OIDNResourceKind, resource: object | undefined, destroy: () => void): boolean;
25
+ snapshot(pending?: number): OIDNResourceSnapshot;
26
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Counts explicitly owned browser resources. Keeping the ownership registry in
3
+ * production makes cache eviction and failure cleanup testable without relying
4
+ * on JS heap measurements, which do not include WebGPU allocations.
5
+ */
6
+ export class OIDNResourceTracker {
7
+ _stats = new Map();
8
+ track(kind, resource) {
9
+ let stats = this._stats.get(kind);
10
+ if (!stats) {
11
+ stats = {
12
+ created: 0,
13
+ destroyed: 0,
14
+ live: 0,
15
+ peakLive: 0,
16
+ resources: new Set()
17
+ };
18
+ this._stats.set(kind, stats);
19
+ }
20
+ if (stats.resources.has(resource))
21
+ return resource;
22
+ stats.resources.add(resource);
23
+ stats.created++;
24
+ stats.live++;
25
+ stats.peakLive = Math.max(stats.peakLive, stats.live);
26
+ return resource;
27
+ }
28
+ release(kind, resource, destroy) {
29
+ if (!resource)
30
+ return false;
31
+ const stats = this._stats.get(kind);
32
+ if (!stats?.resources.delete(resource))
33
+ return false;
34
+ try {
35
+ destroy();
36
+ }
37
+ finally {
38
+ stats.destroyed++;
39
+ stats.live--;
40
+ }
41
+ return true;
42
+ }
43
+ snapshot(pending = 0) {
44
+ let live = 0;
45
+ let created = 0;
46
+ let destroyed = 0;
47
+ let peakLive = 0;
48
+ const byKind = {};
49
+ for (const [kind, stats] of this._stats) {
50
+ const entry = {
51
+ created: stats.created,
52
+ destroyed: stats.destroyed,
53
+ live: stats.live,
54
+ peakLive: stats.peakLive
55
+ };
56
+ byKind[kind] = entry;
57
+ live += entry.live;
58
+ created += entry.created;
59
+ destroyed += entry.destroyed;
60
+ peakLive += entry.peakLive;
61
+ }
62
+ return { live, created, destroyed, peakLive, pending, byKind };
63
+ }
64
+ }
65
+ //# sourceMappingURL=resourceTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceTracker.js","sourceRoot":"","sources":["../src/resourceTracker.ts"],"names":[],"mappings":"AA2BA;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACtB,MAAM,GAAG,IAAI,GAAG,EAA0C,CAAC;IAEnE,KAAK,CAAmB,IAAsB,EAAE,QAAW;QACzD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,CAAC;gBACZ,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,IAAI,GAAG,EAAE;aACrB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QACnD,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CACL,IAAsB,EACtB,QAA4B,EAC5B,OAAmB;QAEnB,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,OAAO,GAAG,CAAC;QAClB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,MAAM,GAAmC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG;gBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrB,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;YACnB,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YACzB,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;YAC7B,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,33 @@
1
+ export interface DynamicTileOptions {
2
+ /** Smallest output tile edge. Defaults to 256. */
3
+ minTileSize?: number;
4
+ /** Initial output tile edge. Defaults to 384. */
5
+ initialTileSize?: number;
6
+ /** Desired upper bound for one tile's GPU latency. Defaults to 16 ms. */
7
+ targetTileTimeMs?: number;
8
+ /** Amount added or removed after each completed execution. Defaults to 128. */
9
+ adjustmentStep?: number;
10
+ }
11
+ export type DynamicTileSetting = boolean | DynamicTileOptions;
12
+ export declare const OIDN_TILE_ALIGNMENT = 16;
13
+ /** Fits one output dimension without exceeding the configured tile cap. */
14
+ export declare function fitTileDimension(imageSize: number, maxTileSize: number): number;
15
+ /**
16
+ * Chooses an output tile size from completed GPU timings. A size change is
17
+ * applied to the next execution so one in-flight tiled pass keeps a stable
18
+ * overlap, allocation plan, and pipeline set.
19
+ */
20
+ export declare class DynamicTileController {
21
+ readonly enabled: boolean;
22
+ readonly maxTileSize: number;
23
+ readonly minTileSize: number;
24
+ readonly targetTileTimeMs: number;
25
+ private _tileSize;
26
+ private _adjustmentStep;
27
+ constructor(maxTileSize: number, setting?: DynamicTileSetting);
28
+ get tileSize(): number;
29
+ /** Returns true when the next execution should use a different tile size. */
30
+ observe(tileTimesMs: number[]): boolean;
31
+ }
32
+ /** Waits for all work submitted before this call and tolerates device loss. */
33
+ export declare function waitForSubmittedGPUWork(queue: Pick<GPUQueue, 'onSubmittedWorkDone'>): Promise<void>;
@@ -0,0 +1,86 @@
1
+ const defaultMinTileSize = 256;
2
+ const defaultInitialTileSize = 384;
3
+ const defaultTargetTileTimeMs = 16;
4
+ const defaultAdjustmentStep = 128;
5
+ export const OIDN_TILE_ALIGNMENT = 16;
6
+ function alignUp(value, alignment) {
7
+ return Math.ceil(value / alignment) * alignment;
8
+ }
9
+ function alignDown(value, alignment) {
10
+ return Math.floor(value / alignment) * alignment;
11
+ }
12
+ function clamp(value, min, max) {
13
+ return Math.min(Math.max(value, min), max);
14
+ }
15
+ function median(values) {
16
+ const sorted = [...values].sort((a, b) => a - b);
17
+ const middle = Math.floor(sorted.length / 2);
18
+ return sorted.length % 2
19
+ ? sorted[middle]
20
+ : (sorted[middle - 1] + sorted[middle]) / 2;
21
+ }
22
+ /** Fits one output dimension without exceeding the configured tile cap. */
23
+ export function fitTileDimension(imageSize, maxTileSize) {
24
+ return imageSize <= maxTileSize
25
+ ? Math.min(alignUp(imageSize, OIDN_TILE_ALIGNMENT), maxTileSize)
26
+ : maxTileSize;
27
+ }
28
+ /**
29
+ * Chooses an output tile size from completed GPU timings. A size change is
30
+ * applied to the next execution so one in-flight tiled pass keeps a stable
31
+ * overlap, allocation plan, and pipeline set.
32
+ */
33
+ export class DynamicTileController {
34
+ enabled;
35
+ maxTileSize;
36
+ minTileSize;
37
+ targetTileTimeMs;
38
+ _tileSize;
39
+ _adjustmentStep;
40
+ constructor(maxTileSize, setting = true) {
41
+ const options = typeof setting === 'object' ? setting : {};
42
+ this.enabled = setting !== false;
43
+ this.maxTileSize = Math.max(OIDN_TILE_ALIGNMENT, alignDown(maxTileSize, OIDN_TILE_ALIGNMENT));
44
+ this.minTileSize = clamp(alignUp(options.minTileSize ?? defaultMinTileSize, OIDN_TILE_ALIGNMENT), OIDN_TILE_ALIGNMENT, this.maxTileSize);
45
+ this.targetTileTimeMs = Math.max(1, options.targetTileTimeMs ?? defaultTargetTileTimeMs);
46
+ this._adjustmentStep = Math.max(OIDN_TILE_ALIGNMENT, alignUp(options.adjustmentStep ?? defaultAdjustmentStep, OIDN_TILE_ALIGNMENT));
47
+ this._tileSize = this.enabled
48
+ ? clamp(alignUp(options.initialTileSize ?? defaultInitialTileSize, OIDN_TILE_ALIGNMENT), this.minTileSize, this.maxTileSize)
49
+ : this.maxTileSize;
50
+ }
51
+ get tileSize() {
52
+ return this._tileSize;
53
+ }
54
+ /** Returns true when the next execution should use a different tile size. */
55
+ observe(tileTimesMs) {
56
+ if (!this.enabled || tileTimesMs.length === 0)
57
+ return false;
58
+ const validTimes = tileTimesMs.filter((duration) => Number.isFinite(duration) && duration >= 0);
59
+ if (validTimes.length === 0)
60
+ return false;
61
+ const observedTime = median(validTimes);
62
+ let nextTileSize = this._tileSize;
63
+ if (observedTime > this.targetTileTimeMs * 1.25) {
64
+ nextTileSize -= this._adjustmentStep;
65
+ }
66
+ else if (observedTime < this.targetTileTimeMs * 0.65) {
67
+ nextTileSize += this._adjustmentStep;
68
+ }
69
+ nextTileSize = clamp(alignUp(nextTileSize, OIDN_TILE_ALIGNMENT), this.minTileSize, this.maxTileSize);
70
+ if (nextTileSize === this._tileSize)
71
+ return false;
72
+ this._tileSize = nextTileSize;
73
+ return true;
74
+ }
75
+ }
76
+ /** Waits for all work submitted before this call and tolerates device loss. */
77
+ export async function waitForSubmittedGPUWork(queue) {
78
+ try {
79
+ await queue.onSubmittedWorkDone();
80
+ }
81
+ catch {
82
+ // tileExecute has no error callback. Preserve its completion/cancellation
83
+ // behavior and let the owning GPUDevice report device loss separately.
84
+ }
85
+ }
86
+ //# sourceMappingURL=tileScheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileScheduler.js","sourceRoot":"","sources":["../src/tileScheduler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { ValidatedUNetModel } from './modelSpec';
2
+ import type { NativeUNetPrecision, NativeUNetPrecisionSetting } from './nativeUNet';
3
+ import { type OIDNResourceSnapshot } from './resourceTracker.js';
4
+ export interface WebNNUNetOptions {
5
+ precision?: NativeUNetPrecisionSetting;
6
+ shapeCacheSize?: number;
7
+ }
8
+ export interface WebNNRuntimeSupport {
9
+ available: boolean;
10
+ reason?: string;
11
+ fp16Conv: boolean;
12
+ gpuInterop: boolean;
13
+ }
14
+ /** Experimental model-driven WebNN executor with FP16 WebGPU interop. */
15
+ export declare class WebNNUNetExecutor {
16
+ private _device;
17
+ private _model;
18
+ readonly precision: NativeUNetPrecision;
19
+ readonly support: WebNNRuntimeSupport;
20
+ private _context;
21
+ private _builderConstructor;
22
+ private _shapeCache;
23
+ private _shapePromises;
24
+ private _retiredExecutions;
25
+ private _pendingCreationCount;
26
+ private _shapeCacheSize;
27
+ private _clock;
28
+ private _inputPipeline;
29
+ private _outputPipeline;
30
+ private _resources;
31
+ private _disposed;
32
+ constructor(_device: GPUDevice, _model: ValidatedUNetModel, options?: WebNNUNetOptions);
33
+ prepare(): Promise<void>;
34
+ private _constant;
35
+ private _createExecution;
36
+ private _execution;
37
+ /** Compiles common tile shapes while the host still reports model loading. */
38
+ prewarm(shapes: readonly {
39
+ width: number;
40
+ height: number;
41
+ }[]): Promise<void>;
42
+ execute(inputBuffers: readonly GPUBuffer[], width: number, height: number): Promise<GPUBuffer>;
43
+ executeCPU(input: Float32Array, width: number, height: number): Promise<Float32Array<ArrayBuffer>>;
44
+ private _destroyExecution;
45
+ private _retireExecution;
46
+ private _releaseBuffer;
47
+ private _releaseTensor;
48
+ private _releaseGraph;
49
+ private _releaseContext;
50
+ getResourceInfo(): OIDNResourceSnapshot;
51
+ dispose(): void;
52
+ }