oidn-web 0.4.0 → 0.5.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 (106) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +83 -19
  3. package/dist/oidn.js +3239 -2642
  4. package/dist/oidn.umd.cjs +512 -296
  5. package/lib/UNet.d.ts +54 -20
  6. package/lib/UNet.js +194 -118
  7. package/lib/UNet.js.map +1 -1
  8. package/lib/backend.d.ts +1 -8
  9. package/lib/backend.js +1 -9
  10. package/lib/backend.js.map +1 -1
  11. package/lib/finalRgbShader.d.ts +13 -0
  12. package/lib/finalRgbShader.js +160 -0
  13. package/lib/finalRgbShader.js.map +1 -0
  14. package/lib/graphOptimizer.js +1 -2
  15. package/lib/graphOptimizer.js.map +1 -1
  16. package/lib/hdrTransfer.d.ts +14 -0
  17. package/lib/hdrTransfer.js +61 -0
  18. package/lib/hdrTransfer.js.map +1 -0
  19. package/lib/main.d.ts +16 -7
  20. package/lib/main.js +4 -5
  21. package/lib/main.js.map +1 -1
  22. package/lib/nativeUNet.d.ts +39 -3
  23. package/lib/nativeUNet.js +449 -120
  24. package/lib/nativeUNet.js.map +1 -1
  25. package/lib/process.d.ts +5 -11
  26. package/lib/process.js +35 -49
  27. package/lib/process.js.map +1 -1
  28. package/lib/tileScheduler.d.ts +32 -4
  29. package/lib/tileScheduler.js +133 -20
  30. package/lib/tileScheduler.js.map +1 -1
  31. package/package.json +9 -2
  32. package/src/UNet.ts +287 -158
  33. package/src/backend.ts +1 -14
  34. package/src/finalRgbShader.ts +186 -0
  35. package/src/graphOptimizer.ts +1 -2
  36. package/src/hdrTransfer.ts +88 -0
  37. package/src/main.ts +28 -13
  38. package/src/nativeUNet.ts +515 -116
  39. package/src/process.ts +43 -70
  40. package/src/tileScheduler.ts +216 -24
  41. package/benchmarks/compare.mjs +0 -651
  42. package/benchmarks/leak.mjs +0 -255
  43. package/benchmarks/results/before-spatial.json +0 -391
  44. package/benchmarks/results/before-spatial.md +0 -47
  45. package/benchmarks/results/int8-scan.json +0 -2007
  46. package/benchmarks/results/int8-scan.md +0 -160
  47. package/benchmarks/results/int8-w8a8-scan.json +0 -2007
  48. package/benchmarks/results/int8-w8a8-scan.md +0 -160
  49. package/benchmarks/results/int8-weight-channel.json +0 -1413
  50. package/benchmarks/results/int8-weight-channel.md +0 -118
  51. package/benchmarks/results/int8-weight-only.json +0 -1437
  52. package/benchmarks/results/int8-weight-only.md +0 -118
  53. package/benchmarks/results/kernel-webnn-final.json +0 -1115
  54. package/benchmarks/results/kernel-webnn-final.md +0 -104
  55. package/benchmarks/results/latest-optimized.json +0 -375
  56. package/benchmarks/results/latest-optimized.md +0 -47
  57. package/benchmarks/results/latest.json +0 -391
  58. package/benchmarks/results/latest.md +0 -47
  59. package/benchmarks/results/profile-baseline.json +0 -331
  60. package/benchmarks/results/profile-baseline.md +0 -12
  61. package/benchmarks/results/profile-conv2x.json +0 -331
  62. package/benchmarks/results/profile-conv2x.md +0 -12
  63. package/benchmarks/results/profile-fast-init.json +0 -385
  64. package/benchmarks/results/profile-fast-init.md +0 -47
  65. package/benchmarks/results/profile-fp16-fma.json +0 -369
  66. package/benchmarks/results/profile-fp16-fma.md +0 -47
  67. package/benchmarks/results/profile-fp16-tiled-decoder.json +0 -369
  68. package/benchmarks/results/profile-fp16-tiled-decoder.md +0 -47
  69. package/benchmarks/results/profile-fp16-tiled-encoder.json +0 -369
  70. package/benchmarks/results/profile-fp16-tiled-encoder.md +0 -47
  71. package/benchmarks/results/profile-fp16-unfused-pool.json +0 -385
  72. package/benchmarks/results/profile-fp16-unfused-pool.md +0 -47
  73. package/benchmarks/results/profile-input-major.json +0 -347
  74. package/benchmarks/results/profile-input-major.md +0 -12
  75. package/benchmarks/results/profile-k16.json +0 -347
  76. package/benchmarks/results/profile-k16.md +0 -12
  77. package/benchmarks/results/profile-k4.json +0 -347
  78. package/benchmarks/results/profile-k4.md +0 -12
  79. package/benchmarks/results/profile-pool-reuse.json +0 -331
  80. package/benchmarks/results/profile-pool-reuse.md +0 -12
  81. package/benchmarks/results/profile-precompiled.json +0 -385
  82. package/benchmarks/results/profile-precompiled.md +0 -47
  83. package/benchmarks/results/profile-static-channels.json +0 -385
  84. package/benchmarks/results/profile-static-channels.md +0 -47
  85. package/benchmarks/results/profile-static-io.json +0 -385
  86. package/benchmarks/results/profile-static-io.md +0 -47
  87. package/benchmarks/results/profile-tiled-conv.json +0 -331
  88. package/benchmarks/results/profile-tiled-conv.md +0 -12
  89. package/benchmarks/results/profile-tiled-decoder.json +0 -347
  90. package/benchmarks/results/profile-tiled-decoder.md +0 -12
  91. package/benchmarks/results/profile-tiled-matmul.json +0 -331
  92. package/benchmarks/results/profile-tiled-matmul.md +0 -12
  93. package/benchmarks/results/profile-unfused-decoder.json +0 -379
  94. package/benchmarks/results/profile-unfused-decoder.md +0 -12
  95. package/benchmarks/results/profile-unfused-pool.json +0 -347
  96. package/benchmarks/results/profile-unfused-pool.md +0 -12
  97. package/benchmarks/results/spatial-auto.json +0 -575
  98. package/benchmarks/results/spatial-auto.md +0 -61
  99. package/benchmarks/results/subgroup-smoke.json +0 -1094
  100. package/benchmarks/results/subgroup-smoke.md +0 -104
  101. package/benchmarks/results/webnn-smoke.json +0 -739
  102. package/benchmarks/results/webnn-smoke.md +0 -76
  103. package/scripts/inspect-model.mjs +0 -64
  104. package/tests/modelSpec.test.mjs +0 -128
  105. package/tests/resourceLifecycle.test.mjs +0 -383
  106. package/tests/tileScheduler.test.mjs +0 -90
@@ -1,331 +0,0 @@
1
- {
2
- "generatedAt": "2026-08-20T03:47:38.702Z",
3
- "currentCommit": "5d9c1c8771e2a03c90bfadafec4b5dd28fada446",
4
- "baselineCommit": "136c00c34aa5cf4561b4137034dbd643177f0a5f",
5
- "settings": {
6
- "width": 512,
7
- "height": 512,
8
- "tileSize": 512,
9
- "warmup": 1,
10
- "runs": 3,
11
- "model": "rt_hdr_calb_cnrm_large.tza",
12
- "gpuQueueCompletionIncluded": true
13
- },
14
- "browser": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
15
- "adapter": {
16
- "vendor": "apple",
17
- "architecture": "metal-3",
18
- "device": "",
19
- "description": ""
20
- },
21
- "results": [
22
- {
23
- "label": "TFJS (136c00c)",
24
- "bundle": "baseline",
25
- "baseline": true,
26
- "initializationMs": 8.5,
27
- "timesMs": [
28
- 37.100000001490116,
29
- 37.29999999701977,
30
- 37.20000000298023
31
- ],
32
- "supportsFP16": true,
33
- "adapter": {
34
- "vendor": "apple",
35
- "architecture": "metal-3",
36
- "device": "",
37
- "description": ""
38
- },
39
- "summary": {
40
- "minMs": 37.100000001490116,
41
- "medianMs": 37.20000000298023,
42
- "meanMs": 37.20000000049671,
43
- "p95Ms": 37.29999999701977,
44
- "maxMs": 37.29999999701977
45
- },
46
- "messages": []
47
- },
48
- {
49
- "label": "WGSL FP32",
50
- "bundle": "current",
51
- "baseline": false,
52
- "precision": "fp32",
53
- "initializationMs": 354.20000000298023,
54
- "timesMs": [
55
- 61.5,
56
- 60.5,
57
- 60.79999999701977
58
- ],
59
- "executionProfile": {
60
- "totalMs": 58.839125,
61
- "layers": [
62
- {
63
- "id": "input-pack",
64
- "durationMs": 0.059416
65
- },
66
- {
67
- "id": "enc_conv1a",
68
- "durationMs": 0.970928
69
- },
70
- {
71
- "id": "pool1",
72
- "durationMs": 12.519868
73
- },
74
- {
75
- "id": "enc_conv2a",
76
- "durationMs": 2.063562
77
- },
78
- {
79
- "id": "pool2",
80
- "durationMs": 4.253995
81
- },
82
- {
83
- "id": "enc_conv3a",
84
- "durationMs": 0.922764
85
- },
86
- {
87
- "id": "pool3",
88
- "durationMs": 1.614701
89
- },
90
- {
91
- "id": "enc_conv4a",
92
- "durationMs": 0.488943
93
- },
94
- {
95
- "id": "pool4",
96
- "durationMs": 0.916472
97
- },
98
- {
99
- "id": "enc_conv5a",
100
- "durationMs": 0.296741
101
- },
102
- {
103
- "id": "enc_conv5b",
104
- "durationMs": 0.393113
105
- },
106
- {
107
- "id": "dec_conv4a",
108
- "durationMs": 1.656659
109
- },
110
- {
111
- "id": "dec_conv4b",
112
- "durationMs": 0.730185
113
- },
114
- {
115
- "id": "dec_conv3a",
116
- "durationMs": 3.595224
117
- },
118
- {
119
- "id": "dec_conv3b",
120
- "durationMs": 1.393
121
- },
122
- {
123
- "id": "dec_conv2a",
124
- "durationMs": 7.05241
125
- },
126
- {
127
- "id": "dec_conv2b",
128
- "durationMs": 2.558214
129
- },
130
- {
131
- "id": "dec_conv1a",
132
- "durationMs": 10.421141
133
- },
134
- {
135
- "id": "dec_conv1b",
136
- "durationMs": 4.526071
137
- },
138
- {
139
- "id": "dec_conv1c",
140
- "durationMs": 2.405718
141
- }
142
- ]
143
- },
144
- "runtimeInfo": {
145
- "configuredEngine": "wgsl",
146
- "gpuEngine": "wgsl",
147
- "precision": "fp32",
148
- "model": "oidn-unet-large-v1",
149
- "modelFamily": "oidn-unet-large",
150
- "inputChannels": 9,
151
- "dynamicTile": {
152
- "enabled": false,
153
- "currentTileSize": 512,
154
- "minTileSize": 256,
155
- "maxTileSize": 512,
156
- "targetTileTimeMs": 16
157
- },
158
- "lastExecution": {
159
- "width": 512,
160
- "height": 512,
161
- "tileWidth": 512,
162
- "tileHeight": 512,
163
- "tileCount": 1,
164
- "durationMs": 60.80000000447035,
165
- "tileTimeMs": {
166
- "min": 60.80000000447035,
167
- "median": 60.80000000447035,
168
- "mean": 60.80000000447035,
169
- "max": 60.80000000447035
170
- }
171
- }
172
- },
173
- "supportsFP16": true,
174
- "adapter": {
175
- "vendor": "apple",
176
- "architecture": "metal-3",
177
- "device": "",
178
- "description": ""
179
- },
180
- "summary": {
181
- "minMs": 60.5,
182
- "medianMs": 60.79999999701977,
183
- "meanMs": 60.93333333233992,
184
- "p95Ms": 61.5,
185
- "maxMs": 61.5
186
- },
187
- "messages": []
188
- },
189
- {
190
- "label": "WGSL FP16",
191
- "bundle": "current",
192
- "baseline": false,
193
- "precision": "fp16",
194
- "initializationMs": 22.900000005960464,
195
- "timesMs": [
196
- 33.79999999701977,
197
- 34,
198
- 33.70000000298023
199
- ],
200
- "executionProfile": {
201
- "totalMs": 33.194250000000004,
202
- "layers": [
203
- {
204
- "id": "input-pack",
205
- "durationMs": 0.055453
206
- },
207
- {
208
- "id": "enc_conv1a",
209
- "durationMs": 0.737213
210
- },
211
- {
212
- "id": "pool1",
213
- "durationMs": 4.20001
214
- },
215
- {
216
- "id": "enc_conv2a",
217
- "durationMs": 1.512506
218
- },
219
- {
220
- "id": "pool2",
221
- "durationMs": 2.816324
222
- },
223
- {
224
- "id": "enc_conv3a",
225
- "durationMs": 0.761461
226
- },
227
- {
228
- "id": "pool3",
229
- "durationMs": 0.997769
230
- },
231
- {
232
- "id": "enc_conv4a",
233
- "durationMs": 0.366003
234
- },
235
- {
236
- "id": "pool4",
237
- "durationMs": 0.592395
238
- },
239
- {
240
- "id": "enc_conv5a",
241
- "durationMs": 0.195229
242
- },
243
- {
244
- "id": "enc_conv5b",
245
- "durationMs": 0.25264
246
- },
247
- {
248
- "id": "dec_conv4a",
249
- "durationMs": 0.963606
250
- },
251
- {
252
- "id": "dec_conv4b",
253
- "durationMs": 0.537943
254
- },
255
- {
256
- "id": "dec_conv3a",
257
- "durationMs": 1.99337
258
- },
259
- {
260
- "id": "dec_conv3b",
261
- "durationMs": 1.321067
262
- },
263
- {
264
- "id": "dec_conv2a",
265
- "durationMs": 3.246278
266
- },
267
- {
268
- "id": "dec_conv2b",
269
- "durationMs": 2.345708
270
- },
271
- {
272
- "id": "dec_conv1a",
273
- "durationMs": 5.355553
274
- },
275
- {
276
- "id": "dec_conv1b",
277
- "durationMs": 4.692624
278
- },
279
- {
280
- "id": "dec_conv1c",
281
- "durationMs": 0.251098
282
- }
283
- ]
284
- },
285
- "runtimeInfo": {
286
- "configuredEngine": "wgsl",
287
- "gpuEngine": "wgsl",
288
- "precision": "fp16",
289
- "model": "oidn-unet-large-v1",
290
- "modelFamily": "oidn-unet-large",
291
- "inputChannels": 9,
292
- "dynamicTile": {
293
- "enabled": false,
294
- "currentTileSize": 512,
295
- "minTileSize": 256,
296
- "maxTileSize": 512,
297
- "targetTileTimeMs": 16
298
- },
299
- "lastExecution": {
300
- "width": 512,
301
- "height": 512,
302
- "tileWidth": 512,
303
- "tileHeight": 512,
304
- "tileCount": 1,
305
- "durationMs": 35.099999994039536,
306
- "tileTimeMs": {
307
- "min": 35.099999994039536,
308
- "median": 35.099999994039536,
309
- "mean": 35.099999994039536,
310
- "max": 35.099999994039536
311
- }
312
- }
313
- },
314
- "supportsFP16": true,
315
- "adapter": {
316
- "vendor": "apple",
317
- "architecture": "metal-3",
318
- "device": "",
319
- "description": ""
320
- },
321
- "summary": {
322
- "minMs": 33.70000000298023,
323
- "medianMs": 33.79999999701977,
324
- "meanMs": 33.833333333333336,
325
- "p95Ms": 34,
326
- "maxMs": 34
327
- },
328
- "messages": []
329
- }
330
- ]
331
- }
@@ -1,12 +0,0 @@
1
- # oidn-web benchmark
2
-
3
- - Current: `5d9c1c8771e2a03c90bfadafec4b5dd28fada446`
4
- - TFJS baseline: `136c00c34aa5cf4561b4137034dbd643177f0a5f`
5
- - Input: 512x512, fixed tile 512, 3 runs after 1 warmup(s)
6
- - Adapter: apple
7
-
8
- | Runtime | Init ms | Median ms | P95 ms | Speedup | Precision |
9
- | --- | ---: | ---: | ---: | ---: | --- |
10
- | TFJS (136c00c) | 8.50 | 37.20 | 37.30 | 1.00x | fp32 |
11
- | WGSL FP32 | 354.20 | 60.80 | 61.50 | 0.61x | fp32 |
12
- | WGSL FP16 | 22.90 | 33.80 | 34.00 | 1.10x | fp16 |