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.
- package/CHANGELOG.md +49 -0
- package/README.md +140 -4
- package/benchmarks/compare.mjs +651 -0
- package/benchmarks/leak.mjs +255 -0
- package/benchmarks/results/before-spatial.json +391 -0
- package/benchmarks/results/before-spatial.md +47 -0
- package/benchmarks/results/int8-scan.json +2007 -0
- package/benchmarks/results/int8-scan.md +160 -0
- package/benchmarks/results/int8-w8a8-scan.json +2007 -0
- package/benchmarks/results/int8-w8a8-scan.md +160 -0
- package/benchmarks/results/int8-weight-channel.json +1413 -0
- package/benchmarks/results/int8-weight-channel.md +118 -0
- package/benchmarks/results/int8-weight-only.json +1437 -0
- package/benchmarks/results/int8-weight-only.md +118 -0
- package/benchmarks/results/kernel-webnn-final.json +1115 -0
- package/benchmarks/results/kernel-webnn-final.md +104 -0
- package/benchmarks/results/latest-optimized.json +375 -0
- package/benchmarks/results/latest-optimized.md +47 -0
- package/benchmarks/results/latest.json +391 -0
- package/benchmarks/results/latest.md +47 -0
- package/benchmarks/results/profile-baseline.json +331 -0
- package/benchmarks/results/profile-baseline.md +12 -0
- package/benchmarks/results/profile-conv2x.json +331 -0
- package/benchmarks/results/profile-conv2x.md +12 -0
- package/benchmarks/results/profile-fast-init.json +385 -0
- package/benchmarks/results/profile-fast-init.md +47 -0
- package/benchmarks/results/profile-fp16-fma.json +369 -0
- package/benchmarks/results/profile-fp16-fma.md +47 -0
- package/benchmarks/results/profile-fp16-tiled-decoder.json +369 -0
- package/benchmarks/results/profile-fp16-tiled-decoder.md +47 -0
- package/benchmarks/results/profile-fp16-tiled-encoder.json +369 -0
- package/benchmarks/results/profile-fp16-tiled-encoder.md +47 -0
- package/benchmarks/results/profile-fp16-unfused-pool.json +385 -0
- package/benchmarks/results/profile-fp16-unfused-pool.md +47 -0
- package/benchmarks/results/profile-input-major.json +347 -0
- package/benchmarks/results/profile-input-major.md +12 -0
- package/benchmarks/results/profile-k16.json +347 -0
- package/benchmarks/results/profile-k16.md +12 -0
- package/benchmarks/results/profile-k4.json +347 -0
- package/benchmarks/results/profile-k4.md +12 -0
- package/benchmarks/results/profile-pool-reuse.json +331 -0
- package/benchmarks/results/profile-pool-reuse.md +12 -0
- package/benchmarks/results/profile-precompiled.json +385 -0
- package/benchmarks/results/profile-precompiled.md +47 -0
- package/benchmarks/results/profile-static-channels.json +385 -0
- package/benchmarks/results/profile-static-channels.md +47 -0
- package/benchmarks/results/profile-static-io.json +385 -0
- package/benchmarks/results/profile-static-io.md +47 -0
- package/benchmarks/results/profile-tiled-conv.json +331 -0
- package/benchmarks/results/profile-tiled-conv.md +12 -0
- package/benchmarks/results/profile-tiled-decoder.json +347 -0
- package/benchmarks/results/profile-tiled-decoder.md +12 -0
- package/benchmarks/results/profile-tiled-matmul.json +331 -0
- package/benchmarks/results/profile-tiled-matmul.md +12 -0
- package/benchmarks/results/profile-unfused-decoder.json +379 -0
- package/benchmarks/results/profile-unfused-decoder.md +12 -0
- package/benchmarks/results/profile-unfused-pool.json +347 -0
- package/benchmarks/results/profile-unfused-pool.md +12 -0
- package/benchmarks/results/spatial-auto.json +575 -0
- package/benchmarks/results/spatial-auto.md +61 -0
- package/benchmarks/results/subgroup-smoke.json +1094 -0
- package/benchmarks/results/subgroup-smoke.md +104 -0
- package/benchmarks/results/webnn-smoke.json +739 -0
- package/benchmarks/results/webnn-smoke.md +76 -0
- package/dist/oidn.js +4189 -22603
- package/dist/oidn.umd.cjs +784 -5807
- package/lib/UNet.d.ts +66 -15
- package/lib/UNet.js +162 -257
- package/lib/UNet.js.map +1 -1
- package/lib/WGPUComputePass.d.ts +1 -1
- package/lib/WGPUComputePass.js +6 -4
- package/lib/WGPUComputePass.js.map +1 -1
- package/lib/backend.d.ts +8 -4
- package/lib/backend.js +36 -44
- package/lib/backend.js.map +1 -1
- package/lib/graphOptimizer.d.ts +54 -0
- package/lib/graphOptimizer.js +216 -0
- package/lib/graphOptimizer.js.map +1 -0
- package/lib/main.d.ts +33 -10
- package/lib/main.js +5 -0
- package/lib/main.js.map +1 -1
- package/lib/modelSpec.d.ts +80 -0
- package/lib/modelSpec.js +270 -0
- package/lib/modelSpec.js.map +1 -0
- package/lib/nativeUNet.d.ts +67 -0
- package/lib/nativeUNet.js +1735 -0
- package/lib/nativeUNet.js.map +1 -0
- package/lib/process.js +38 -35
- package/lib/process.js.map +1 -1
- package/lib/resourceTracker.d.ts +26 -0
- package/lib/resourceTracker.js +65 -0
- package/lib/resourceTracker.js.map +1 -0
- package/lib/tileScheduler.d.ts +33 -0
- package/lib/tileScheduler.js +86 -0
- package/lib/tileScheduler.js.map +1 -0
- package/lib/webnnUNet.d.ts +52 -0
- package/lib/webnnUNet.js +535 -0
- package/lib/webnnUNet.js.map +1 -0
- package/package.json +9 -5
- package/scripts/inspect-model.mjs +64 -0
- package/src/UNet.ts +236 -339
- package/src/WGPUComputePass.ts +6 -4
- package/src/backend.ts +42 -55
- package/src/graphOptimizer.ts +301 -0
- package/src/main.ts +71 -11
- package/src/modelSpec.ts +414 -0
- package/src/nativeUNet.ts +2256 -0
- package/src/process.ts +38 -36
- package/src/resourceTracker.ts +94 -0
- package/src/tileScheduler.ts +138 -0
- package/src/webnnUNet.ts +812 -0
- package/tests/modelSpec.test.mjs +128 -0
- package/tests/resourceLifecycle.test.mjs +383 -0
- package/tests/tileScheduler.test.mjs +90 -0
- package/lib/helper.d.ts +0 -4
- package/lib/helper.js +0 -33
- package/lib/helper.js.map +0 -1
- package/lib/kernels.d.ts +0 -1
- package/lib/kernels.js +0 -26
- package/lib/kernels.js.map +0 -1
- package/src/helper.ts +0 -43
- 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: '
|
|
133
|
-
data: new
|
|
132
|
+
type: 'vec2i',
|
|
133
|
+
data: new Int32Array(2)
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
label: 'outputSize',
|
|
137
|
-
type: '
|
|
138
|
-
data: new
|
|
137
|
+
type: 'vec2i',
|
|
138
|
+
data: new Int32Array(2)
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
label: 'inputOffset',
|
|
142
|
-
type: '
|
|
143
|
-
data: new
|
|
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: '
|
|
172
|
-
data: new
|
|
171
|
+
type: 'vec2i',
|
|
172
|
+
data: new Int32Array(2)
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
label: 'outputSize',
|
|
176
|
-
type: '
|
|
177
|
-
data: new
|
|
176
|
+
type: 'vec2i',
|
|
177
|
+
data: new Int32Array(2)
|
|
178
178
|
},
|
|
179
179
|
{
|
|
180
180
|
label: 'imageSize',
|
|
181
|
-
type: '
|
|
182
|
-
data: new
|
|
181
|
+
type: 'vec2i',
|
|
182
|
+
data: new Int32Array(2)
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
label: 'inputOffset',
|
|
186
|
-
type: '
|
|
187
|
-
data: new
|
|
186
|
+
type: 'vec2i',
|
|
187
|
+
data: new Int32Array(2)
|
|
188
188
|
},
|
|
189
189
|
{
|
|
190
190
|
label: 'outputOffset',
|
|
191
|
-
type: '
|
|
192
|
-
data: new
|
|
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: '
|
|
206
|
-
data: new
|
|
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 =
|
|
251
|
-
let y =
|
|
252
|
-
let inIdx =
|
|
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 =
|
|
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 =
|
|
299
|
-
let 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 =
|
|
304
|
-
let outIdx =
|
|
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
|
|
328
|
-
this._inputPassColor.setUniform('inputSize', new
|
|
329
|
-
this._outputPass.setUniform('imageSize', new
|
|
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
|
|
332
|
+
this._copyPass.setUniform('size', new Int32Array([w, h]));
|
|
333
333
|
}
|
|
334
334
|
setInputTile(tile) {
|
|
335
|
-
const size = new
|
|
335
|
+
const size = new Int32Array([tile.width, tile.height]);
|
|
336
336
|
[this._inputPassAux, this._inputPassColor].forEach((inputPass) => {
|
|
337
|
-
inputPass.setUniform('inputOffset', new
|
|
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
|
|
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
|
|
350
|
-
outputPass.setUniform('outputOffset', new
|
|
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
|
package/lib/process.js.map
CHANGED
|
@@ -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
|
+
}
|