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,1115 +0,0 @@
1
- {
2
- "generatedAt": "2026-08-20T05:12:10.057Z",
3
- "currentCommit": "e6b8577b1c69cc8ce979022717984aec5b9ea881",
4
- "baselineCommit": "136c00c34aa5cf4561b4137034dbd643177f0a5f",
5
- "settings": {
6
- "width": 512,
7
- "height": 512,
8
- "tileSize": 512,
9
- "warmup": 1,
10
- "runs": 5,
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": 9.399999998509884,
27
- "timesMs": [
28
- 35.30000000447035,
29
- 35.399999998509884,
30
- 35.19999999552965,
31
- 35,
32
- 35
33
- ],
34
- "supportsFP16": true,
35
- "adapter": {
36
- "vendor": "apple",
37
- "architecture": "metal-3",
38
- "device": "",
39
- "description": ""
40
- },
41
- "summary": {
42
- "minMs": 35,
43
- "medianMs": 35.19999999552965,
44
- "meanMs": 35.17999999970198,
45
- "p95Ms": 35.399999998509884,
46
- "maxMs": 35.399999998509884
47
- },
48
- "messages": []
49
- },
50
- {
51
- "label": "WGSL FP32 Auto",
52
- "bundle": "current",
53
- "baseline": false,
54
- "precision": "fp32",
55
- "initializationMs": 39.20000000298023,
56
- "timesMs": [
57
- 36.5,
58
- 36.399999998509884,
59
- 36.30000000447035,
60
- 36.29999999701977,
61
- 36
62
- ],
63
- "executionProfile": {
64
- "totalMs": 35.239305,
65
- "layers": [
66
- {
67
- "id": "input-pack",
68
- "durationMs": 0.054914
69
- },
70
- {
71
- "id": "enc_conv1a",
72
- "durationMs": 0.839739
73
- },
74
- {
75
- "id": "enc_conv1b",
76
- "durationMs": 3.824684
77
- },
78
- {
79
- "id": "pool1",
80
- "durationMs": 0.404267
81
- },
82
- {
83
- "id": "enc_conv2a",
84
- "durationMs": 1.403872
85
- },
86
- {
87
- "id": "enc_conv2b",
88
- "durationMs": 2.176158
89
- },
90
- {
91
- "id": "pool2",
92
- "durationMs": 0.055164
93
- },
94
- {
95
- "id": "enc_conv3a",
96
- "durationMs": 0.764828
97
- },
98
- {
99
- "id": "enc_conv3b",
100
- "durationMs": 0.992148
101
- },
102
- {
103
- "id": "pool3",
104
- "durationMs": 0.017874
105
- },
106
- {
107
- "id": "enc_conv4a",
108
- "durationMs": 0.404475
109
- },
110
- {
111
- "id": "enc_conv4b",
112
- "durationMs": 0.612962
113
- },
114
- {
115
- "id": "pool4",
116
- "durationMs": 0.008458
117
- },
118
- {
119
- "id": "enc_conv5a",
120
- "durationMs": 0.259359
121
- },
122
- {
123
- "id": "enc_conv5b",
124
- "durationMs": 0.341562
125
- },
126
- {
127
- "id": "dec_conv4a",
128
- "durationMs": 1.249507
129
- },
130
- {
131
- "id": "dec_conv4b",
132
- "durationMs": 0.612212
133
- },
134
- {
135
- "id": "dec_conv3a",
136
- "durationMs": 2.342441
137
- },
138
- {
139
- "id": "dec_conv3b",
140
- "durationMs": 0.989607
141
- },
142
- {
143
- "id": "dec_conv2a",
144
- "durationMs": 4.461478
145
- },
146
- {
147
- "id": "dec_conv2b",
148
- "durationMs": 2.283401
149
- },
150
- {
151
- "id": "dec_conv1a",
152
- "durationMs": 6.890996
153
- },
154
- {
155
- "id": "dec_conv1b",
156
- "durationMs": 3.748396
157
- },
158
- {
159
- "id": "dec_conv1c",
160
- "durationMs": 0.500803
161
- }
162
- ]
163
- },
164
- "runtimeInfo": {
165
- "configuredEngine": "wgsl",
166
- "gpuEngine": "wgsl",
167
- "precision": "fp32",
168
- "kernel": {
169
- "configured": "auto",
170
- "maxSpatialInputBlocks": 0,
171
- "subgroupsAvailable": false
172
- },
173
- "model": "oidn-unet-large-v1",
174
- "modelFamily": "oidn-unet-large",
175
- "inputChannels": 9,
176
- "dynamicTile": {
177
- "enabled": false,
178
- "currentTileSize": 512,
179
- "minTileSize": 256,
180
- "maxTileSize": 512,
181
- "targetTileTimeMs": 16
182
- },
183
- "lastExecution": {
184
- "width": 512,
185
- "height": 512,
186
- "tileWidth": 512,
187
- "tileHeight": 512,
188
- "tileCount": 1,
189
- "durationMs": 37.100000001490116,
190
- "tileTimeMs": {
191
- "min": 37.100000001490116,
192
- "median": 37.100000001490116,
193
- "mean": 37.100000001490116,
194
- "max": 37.100000001490116
195
- }
196
- }
197
- },
198
- "supportsFP16": true,
199
- "adapter": {
200
- "vendor": "apple",
201
- "architecture": "metal-3",
202
- "device": "",
203
- "description": ""
204
- },
205
- "summary": {
206
- "minMs": 36,
207
- "medianMs": 36.30000000447035,
208
- "meanMs": 36.3,
209
- "p95Ms": 36.5,
210
- "maxMs": 36.5
211
- },
212
- "messages": [],
213
- "validation": {
214
- "sampleCount": 6144,
215
- "meanAbsoluteError": 0.0000011096847932397698,
216
- "rootMeanSquaredError": 0.0000018071588418628667,
217
- "maxAbsoluteError": 0.000013589859008789062,
218
- "passed": true,
219
- "thresholds": {
220
- "maxMeanError": 0.0001,
221
- "maxAbsoluteError": 0.001
222
- }
223
- }
224
- },
225
- {
226
- "label": "WGSL FP32 Direct",
227
- "bundle": "current",
228
- "baseline": false,
229
- "precision": "fp32",
230
- "kernel": "direct",
231
- "initializationMs": 37.600000001490116,
232
- "timesMs": [
233
- 63.29999999701977,
234
- 63.29999999701977,
235
- 63.400000005960464,
236
- 63.29999999701977,
237
- 63
238
- ],
239
- "executionProfile": {
240
- "totalMs": 62.200309999999995,
241
- "layers": [
242
- {
243
- "id": "input-pack",
244
- "durationMs": 0.050415
245
- },
246
- {
247
- "id": "enc_conv1a",
248
- "durationMs": 1.240337
249
- },
250
- {
251
- "id": "enc_conv1b",
252
- "durationMs": 8.568573
253
- },
254
- {
255
- "id": "pool1",
256
- "durationMs": 0.48761
257
- },
258
- {
259
- "id": "enc_conv2a",
260
- "durationMs": 3.126112
261
- },
262
- {
263
- "id": "enc_conv2b",
264
- "durationMs": 5.391836
265
- },
266
- {
267
- "id": "pool2",
268
- "durationMs": 0.074414
269
- },
270
- {
271
- "id": "enc_conv3a",
272
- "durationMs": 1.079676
273
- },
274
- {
275
- "id": "enc_conv3b",
276
- "durationMs": 1.495954
277
- },
278
- {
279
- "id": "pool3",
280
- "durationMs": 0.018957
281
- },
282
- {
283
- "id": "enc_conv4a",
284
- "durationMs": 0.5754
285
- },
286
- {
287
- "id": "enc_conv4b",
288
- "durationMs": 0.839557
289
- },
290
- {
291
- "id": "pool4",
292
- "durationMs": 0.012292
293
- },
294
- {
295
- "id": "enc_conv5a",
296
- "durationMs": 0.321657
297
- },
298
- {
299
- "id": "enc_conv5b",
300
- "durationMs": 0.434737
301
- },
302
- {
303
- "id": "dec_conv4a",
304
- "durationMs": 1.667574
305
- },
306
- {
307
- "id": "dec_conv4b",
308
- "durationMs": 0.900514
309
- },
310
- {
311
- "id": "dec_conv3a",
312
- "durationMs": 3.457394
313
- },
314
- {
315
- "id": "dec_conv3b",
316
- "durationMs": 1.449163
317
- },
318
- {
319
- "id": "dec_conv2a",
320
- "durationMs": 6.764835
321
- },
322
- {
323
- "id": "dec_conv2b",
324
- "durationMs": 5.496249
325
- },
326
- {
327
- "id": "dec_conv1a",
328
- "durationMs": 9.602999
329
- },
330
- {
331
- "id": "dec_conv1b",
332
- "durationMs": 8.662778
333
- },
334
- {
335
- "id": "dec_conv1c",
336
- "durationMs": 0.481277
337
- }
338
- ]
339
- },
340
- "runtimeInfo": {
341
- "configuredEngine": "wgsl",
342
- "gpuEngine": "wgsl",
343
- "precision": "fp32",
344
- "kernel": {
345
- "configured": "direct",
346
- "maxSpatialInputBlocks": 0,
347
- "subgroupsAvailable": false
348
- },
349
- "model": "oidn-unet-large-v1",
350
- "modelFamily": "oidn-unet-large",
351
- "inputChannels": 9,
352
- "dynamicTile": {
353
- "enabled": false,
354
- "currentTileSize": 512,
355
- "minTileSize": 256,
356
- "maxTileSize": 512,
357
- "targetTileTimeMs": 16
358
- },
359
- "lastExecution": {
360
- "width": 512,
361
- "height": 512,
362
- "tileWidth": 512,
363
- "tileHeight": 512,
364
- "tileCount": 1,
365
- "durationMs": 64,
366
- "tileTimeMs": {
367
- "min": 64,
368
- "median": 64,
369
- "mean": 64,
370
- "max": 64
371
- }
372
- }
373
- },
374
- "supportsFP16": true,
375
- "adapter": {
376
- "vendor": "apple",
377
- "architecture": "metal-3",
378
- "device": "",
379
- "description": ""
380
- },
381
- "summary": {
382
- "minMs": 63,
383
- "medianMs": 63.29999999701977,
384
- "meanMs": 63.25999999940395,
385
- "p95Ms": 63.400000005960464,
386
- "maxMs": 63.400000005960464
387
- },
388
- "messages": [],
389
- "validation": {
390
- "sampleCount": 6144,
391
- "meanAbsoluteError": 0.0000011096847932397698,
392
- "rootMeanSquaredError": 0.0000018071588418628667,
393
- "maxAbsoluteError": 0.000013589859008789062,
394
- "passed": true,
395
- "thresholds": {
396
- "maxMeanError": 0.0001,
397
- "maxAbsoluteError": 0.001
398
- }
399
- }
400
- },
401
- {
402
- "label": "WGSL FP16 Direct",
403
- "bundle": "current",
404
- "baseline": false,
405
- "precision": "fp16",
406
- "kernel": "direct",
407
- "initializationMs": 27.600000001490116,
408
- "timesMs": [
409
- 27.899999998509884,
410
- 27.799999997019768,
411
- 27.700000002980232,
412
- 28,
413
- 27.700000002980232
414
- ],
415
- "executionProfile": {
416
- "totalMs": 27.068057,
417
- "layers": [
418
- {
419
- "id": "input-pack",
420
- "durationMs": 0.044164
421
- },
422
- {
423
- "id": "enc_conv1a",
424
- "durationMs": 0.621504
425
- },
426
- {
427
- "id": "enc_conv1b",
428
- "durationMs": 3.194639
429
- },
430
- {
431
- "id": "pool1",
432
- "durationMs": 0.344979
433
- },
434
- {
435
- "id": "enc_conv2a",
436
- "durationMs": 1.161679
437
- },
438
- {
439
- "id": "enc_conv2b",
440
- "durationMs": 2.002586
441
- },
442
- {
443
- "id": "pool2",
444
- "durationMs": 0.050497
445
- },
446
- {
447
- "id": "enc_conv3a",
448
- "durationMs": 0.677999
449
- },
450
- {
451
- "id": "enc_conv3b",
452
- "durationMs": 0.843074
453
- },
454
- {
455
- "id": "pool3",
456
- "durationMs": 0.017041
457
- },
458
- {
459
- "id": "enc_conv4a",
460
- "durationMs": 0.344396
461
- },
462
- {
463
- "id": "enc_conv4b",
464
- "durationMs": 0.535425
465
- },
466
- {
467
- "id": "pool4",
468
- "durationMs": 0.011332
469
- },
470
- {
471
- "id": "enc_conv5a",
472
- "durationMs": 0.183989
473
- },
474
- {
475
- "id": "enc_conv5b",
476
- "durationMs": 0.230278
477
- },
478
- {
479
- "id": "dec_conv4a",
480
- "durationMs": 0.947609
481
- },
482
- {
483
- "id": "dec_conv4b",
484
- "durationMs": 0.571924
485
- },
486
- {
487
- "id": "dec_conv3a",
488
- "durationMs": 1.697731
489
- },
490
- {
491
- "id": "dec_conv3b",
492
- "durationMs": 0.850823
493
- },
494
- {
495
- "id": "dec_conv2a",
496
- "durationMs": 2.973776
497
- },
498
- {
499
- "id": "dec_conv2b",
500
- "durationMs": 1.961422
501
- },
502
- {
503
- "id": "dec_conv1a",
504
- "durationMs": 4.508641
505
- },
506
- {
507
- "id": "dec_conv1b",
508
- "durationMs": 3.097936
509
- },
510
- {
511
- "id": "dec_conv1c",
512
- "durationMs": 0.194613
513
- }
514
- ]
515
- },
516
- "runtimeInfo": {
517
- "configuredEngine": "wgsl",
518
- "gpuEngine": "wgsl",
519
- "precision": "fp16",
520
- "kernel": {
521
- "configured": "direct",
522
- "maxSpatialInputBlocks": 40,
523
- "subgroupsAvailable": false
524
- },
525
- "model": "oidn-unet-large-v1",
526
- "modelFamily": "oidn-unet-large",
527
- "inputChannels": 9,
528
- "dynamicTile": {
529
- "enabled": false,
530
- "currentTileSize": 512,
531
- "minTileSize": 256,
532
- "maxTileSize": 512,
533
- "targetTileTimeMs": 16
534
- },
535
- "lastExecution": {
536
- "width": 512,
537
- "height": 512,
538
- "tileWidth": 512,
539
- "tileHeight": 512,
540
- "tileCount": 1,
541
- "durationMs": 28.700000002980232,
542
- "tileTimeMs": {
543
- "min": 28.600000001490116,
544
- "median": 28.600000001490116,
545
- "mean": 28.600000001490116,
546
- "max": 28.600000001490116
547
- }
548
- }
549
- },
550
- "supportsFP16": true,
551
- "adapter": {
552
- "vendor": "apple",
553
- "architecture": "metal-3",
554
- "device": "",
555
- "description": ""
556
- },
557
- "summary": {
558
- "minMs": 27.700000002980232,
559
- "medianMs": 27.799999997019768,
560
- "meanMs": 27.820000000298023,
561
- "p95Ms": 28,
562
- "maxMs": 28
563
- },
564
- "messages": [],
565
- "validation": {
566
- "sampleCount": 6144,
567
- "meanAbsoluteError": 0.0010210334021394374,
568
- "rootMeanSquaredError": 0.001609680379854656,
569
- "maxAbsoluteError": 0.012395620346069336,
570
- "passed": true,
571
- "thresholds": {
572
- "maxMeanError": 0.005,
573
- "maxAbsoluteError": 0.05
574
- }
575
- }
576
- },
577
- {
578
- "label": "WGSL FP16 Implicit GEMM",
579
- "bundle": "current",
580
- "baseline": false,
581
- "precision": "fp16",
582
- "kernel": "implicit-gemm",
583
- "initializationMs": 30.299999997019768,
584
- "timesMs": [
585
- 29.200000002980232,
586
- 29.19999999552965,
587
- 29.200000002980232,
588
- 29.19999999552965,
589
- 29.30000000447035
590
- ],
591
- "executionProfile": {
592
- "totalMs": 28.770743999999997,
593
- "layers": [
594
- {
595
- "id": "input-pack",
596
- "durationMs": 0.043997
597
- },
598
- {
599
- "id": "enc_conv1a",
600
- "durationMs": 0.6835
601
- },
602
- {
603
- "id": "enc_conv1b",
604
- "durationMs": 2.931029
605
- },
606
- {
607
- "id": "pool1",
608
- "durationMs": 0.348604
609
- },
610
- {
611
- "id": "enc_conv2a",
612
- "durationMs": 1.232384
613
- },
614
- {
615
- "id": "enc_conv2b",
616
- "durationMs": 1.765017
617
- },
618
- {
619
- "id": "pool2",
620
- "durationMs": 0.050122
621
- },
622
- {
623
- "id": "enc_conv3a",
624
- "durationMs": 0.617837
625
- },
626
- {
627
- "id": "enc_conv3b",
628
- "durationMs": 0.794452
629
- },
630
- {
631
- "id": "pool3",
632
- "durationMs": 0.017249
633
- },
634
- {
635
- "id": "enc_conv4a",
636
- "durationMs": 0.326021
637
- },
638
- {
639
- "id": "enc_conv4b",
640
- "durationMs": 0.509677
641
- },
642
- {
643
- "id": "pool4",
644
- "durationMs": 0.008416
645
- },
646
- {
647
- "id": "enc_conv5a",
648
- "durationMs": 0.231527
649
- },
650
- {
651
- "id": "enc_conv5b",
652
- "durationMs": 0.298648
653
- },
654
- {
655
- "id": "dec_conv4a",
656
- "durationMs": 1.043728
657
- },
658
- {
659
- "id": "dec_conv4b",
660
- "durationMs": 0.507969
661
- },
662
- {
663
- "id": "dec_conv3a",
664
- "durationMs": 1.904218
665
- },
666
- {
667
- "id": "dec_conv3b",
668
- "durationMs": 0.935235
669
- },
670
- {
671
- "id": "dec_conv2a",
672
- "durationMs": 3.660818
673
- },
674
- {
675
- "id": "dec_conv2b",
676
- "durationMs": 1.883677
677
- },
678
- {
679
- "id": "dec_conv1a",
680
- "durationMs": 5.852393
681
- },
682
- {
683
- "id": "dec_conv1b",
684
- "durationMs": 2.931988
685
- },
686
- {
687
- "id": "dec_conv1c",
688
- "durationMs": 0.192238
689
- }
690
- ]
691
- },
692
- "runtimeInfo": {
693
- "configuredEngine": "wgsl",
694
- "gpuEngine": "wgsl",
695
- "precision": "fp16",
696
- "kernel": {
697
- "configured": "implicit-gemm",
698
- "maxSpatialInputBlocks": 40,
699
- "subgroupsAvailable": false
700
- },
701
- "model": "oidn-unet-large-v1",
702
- "modelFamily": "oidn-unet-large",
703
- "inputChannels": 9,
704
- "dynamicTile": {
705
- "enabled": false,
706
- "currentTileSize": 512,
707
- "minTileSize": 256,
708
- "maxTileSize": 512,
709
- "targetTileTimeMs": 16
710
- },
711
- "lastExecution": {
712
- "width": 512,
713
- "height": 512,
714
- "tileWidth": 512,
715
- "tileHeight": 512,
716
- "tileCount": 1,
717
- "durationMs": 30.399999998509884,
718
- "tileTimeMs": {
719
- "min": 30.399999998509884,
720
- "median": 30.399999998509884,
721
- "mean": 30.399999998509884,
722
- "max": 30.399999998509884
723
- }
724
- }
725
- },
726
- "supportsFP16": true,
727
- "adapter": {
728
- "vendor": "apple",
729
- "architecture": "metal-3",
730
- "device": "",
731
- "description": ""
732
- },
733
- "summary": {
734
- "minMs": 29.19999999552965,
735
- "medianMs": 29.200000002980232,
736
- "meanMs": 29.220000000298022,
737
- "p95Ms": 29.30000000447035,
738
- "maxMs": 29.30000000447035
739
- },
740
- "messages": [],
741
- "validation": {
742
- "sampleCount": 6144,
743
- "meanAbsoluteError": 0.001559715069864372,
744
- "rootMeanSquaredError": 0.0025477948380839928,
745
- "maxAbsoluteError": 0.04479837417602539,
746
- "passed": true,
747
- "thresholds": {
748
- "maxMeanError": 0.005,
749
- "maxAbsoluteError": 0.05
750
- }
751
- }
752
- },
753
- {
754
- "label": "WGSL FP16 Spatial (experimental)",
755
- "bundle": "current",
756
- "baseline": false,
757
- "precision": "fp16",
758
- "kernel": "spatial",
759
- "initializationMs": 28.30000000447035,
760
- "timesMs": [
761
- 61.399999998509884,
762
- 62.100000001490116,
763
- 61.69999999552965,
764
- 61.600000001490116,
765
- 62
766
- ],
767
- "executionProfile": {
768
- "totalMs": 61.423213000000004,
769
- "layers": [
770
- {
771
- "id": "input-pack",
772
- "durationMs": 0.043832
773
- },
774
- {
775
- "id": "enc_conv1a",
776
- "durationMs": 0.717853
777
- },
778
- {
779
- "id": "enc_conv1b",
780
- "durationMs": 5.429292
781
- },
782
- {
783
- "id": "pool1",
784
- "durationMs": 0.355989
785
- },
786
- {
787
- "id": "enc_conv2a",
788
- "durationMs": 2.117644
789
- },
790
- {
791
- "id": "enc_conv2b",
792
- "durationMs": 4.407325
793
- },
794
- {
795
- "id": "pool2",
796
- "durationMs": 0.050124
797
- },
798
- {
799
- "id": "enc_conv3a",
800
- "durationMs": 1.542328
801
- },
802
- {
803
- "id": "enc_conv3b",
804
- "durationMs": 2.957327
805
- },
806
- {
807
- "id": "pool3",
808
- "durationMs": 0.017
809
- },
810
- {
811
- "id": "enc_conv4a",
812
- "durationMs": 1.363166
813
- },
814
- {
815
- "id": "enc_conv4b",
816
- "durationMs": 0.526526
817
- },
818
- {
819
- "id": "pool4",
820
- "durationMs": 0.010708
821
- },
822
- {
823
- "id": "enc_conv5a",
824
- "durationMs": 0.179577
825
- },
826
- {
827
- "id": "enc_conv5b",
828
- "durationMs": 0.237493
829
- },
830
- {
831
- "id": "dec_conv4a",
832
- "durationMs": 0.946013
833
- },
834
- {
835
- "id": "dec_conv4b",
836
- "durationMs": 0.531443
837
- },
838
- {
839
- "id": "dec_conv3a",
840
- "durationMs": 1.699656
841
- },
842
- {
843
- "id": "dec_conv3b",
844
- "durationMs": 2.860622
845
- },
846
- {
847
- "id": "dec_conv2a",
848
- "durationMs": 2.973368
849
- },
850
- {
851
- "id": "dec_conv2b",
852
- "durationMs": 4.408491
853
- },
854
- {
855
- "id": "dec_conv1a",
856
- "durationMs": 22.280279
857
- },
858
- {
859
- "id": "dec_conv1b",
860
- "durationMs": 5.407085
861
- },
862
- {
863
- "id": "dec_conv1c",
864
- "durationMs": 0.360072
865
- }
866
- ]
867
- },
868
- "runtimeInfo": {
869
- "configuredEngine": "wgsl",
870
- "gpuEngine": "wgsl",
871
- "precision": "fp16",
872
- "kernel": {
873
- "configured": "spatial",
874
- "maxSpatialInputBlocks": 40,
875
- "subgroupsAvailable": false
876
- },
877
- "model": "oidn-unet-large-v1",
878
- "modelFamily": "oidn-unet-large",
879
- "inputChannels": 9,
880
- "dynamicTile": {
881
- "enabled": false,
882
- "currentTileSize": 512,
883
- "minTileSize": 256,
884
- "maxTileSize": 512,
885
- "targetTileTimeMs": 16
886
- },
887
- "lastExecution": {
888
- "width": 512,
889
- "height": 512,
890
- "tileWidth": 512,
891
- "tileHeight": 512,
892
- "tileCount": 1,
893
- "durationMs": 63.100000001490116,
894
- "tileTimeMs": {
895
- "min": 63.100000001490116,
896
- "median": 63.100000001490116,
897
- "mean": 63.100000001490116,
898
- "max": 63.100000001490116
899
- }
900
- }
901
- },
902
- "supportsFP16": true,
903
- "adapter": {
904
- "vendor": "apple",
905
- "architecture": "metal-3",
906
- "device": "",
907
- "description": ""
908
- },
909
- "summary": {
910
- "minMs": 61.399999998509884,
911
- "medianMs": 61.69999999552965,
912
- "meanMs": 61.75999999940395,
913
- "p95Ms": 62.100000001490116,
914
- "maxMs": 62.100000001490116
915
- },
916
- "messages": [],
917
- "validation": {
918
- "sampleCount": 6144,
919
- "meanAbsoluteError": 0.0010210334021394374,
920
- "rootMeanSquaredError": 0.001609680379854656,
921
- "maxAbsoluteError": 0.012395620346069336,
922
- "passed": true,
923
- "thresholds": {
924
- "maxMeanError": 0.005,
925
- "maxAbsoluteError": 0.05
926
- }
927
- }
928
- },
929
- {
930
- "label": "WGSL FP16 Subgroup (experimental)",
931
- "bundle": "current",
932
- "baseline": false,
933
- "precision": "fp16",
934
- "kernel": "subgroup",
935
- "initializationMs": 29.19999999552965,
936
- "timesMs": [
937
- 29.299999997019768,
938
- 29.600000001490116,
939
- 29.299999997019768,
940
- 29.600000001490116,
941
- 29.5
942
- ],
943
- "executionProfile": {
944
- "totalMs": 29.052977,
945
- "layers": [
946
- {
947
- "id": "input-pack",
948
- "durationMs": 0.044914
949
- },
950
- {
951
- "id": "enc_conv1a",
952
- "durationMs": 0.773328
953
- },
954
- {
955
- "id": "enc_conv1b",
956
- "durationMs": 3.474454
957
- },
958
- {
959
- "id": "pool1",
960
- "durationMs": 0.341979
961
- },
962
- {
963
- "id": "enc_conv2a",
964
- "durationMs": 1.435662
965
- },
966
- {
967
- "id": "enc_conv2b",
968
- "durationMs": 2.159119
969
- },
970
- {
971
- "id": "pool2",
972
- "durationMs": 0.050206
973
- },
974
- {
975
- "id": "enc_conv3a",
976
- "durationMs": 0.740205
977
- },
978
- {
979
- "id": "enc_conv3b",
980
- "durationMs": 0.92936
981
- },
982
- {
983
- "id": "pool3",
984
- "durationMs": 0.017666
985
- },
986
- {
987
- "id": "enc_conv4a",
988
- "durationMs": 0.385185
989
- },
990
- {
991
- "id": "enc_conv4b",
992
- "durationMs": 0.567091
993
- },
994
- {
995
- "id": "pool4",
996
- "durationMs": 0.010541
997
- },
998
- {
999
- "id": "enc_conv5a",
1000
- "durationMs": 0.201072
1001
- },
1002
- {
1003
- "id": "enc_conv5b",
1004
- "durationMs": 0.261109
1005
- },
1006
- {
1007
- "id": "dec_conv4a",
1008
- "durationMs": 0.957524
1009
- },
1010
- {
1011
- "id": "dec_conv4b",
1012
- "durationMs": 0.568756
1013
- },
1014
- {
1015
- "id": "dec_conv3a",
1016
- "durationMs": 1.85472
1017
- },
1018
- {
1019
- "id": "dec_conv3b",
1020
- "durationMs": 0.926777
1021
- },
1022
- {
1023
- "id": "dec_conv2a",
1024
- "durationMs": 3.110852
1025
- },
1026
- {
1027
- "id": "dec_conv2b",
1028
- "durationMs": 2.087373
1029
- },
1030
- {
1031
- "id": "dec_conv1a",
1032
- "durationMs": 4.57872
1033
- },
1034
- {
1035
- "id": "dec_conv1b",
1036
- "durationMs": 3.350295
1037
- },
1038
- {
1039
- "id": "dec_conv1c",
1040
- "durationMs": 0.226069
1041
- }
1042
- ]
1043
- },
1044
- "runtimeInfo": {
1045
- "configuredEngine": "wgsl",
1046
- "gpuEngine": "wgsl",
1047
- "precision": "fp16",
1048
- "kernel": {
1049
- "configured": "subgroup",
1050
- "maxSpatialInputBlocks": 40,
1051
- "subgroupsAvailable": true
1052
- },
1053
- "model": "oidn-unet-large-v1",
1054
- "modelFamily": "oidn-unet-large",
1055
- "inputChannels": 9,
1056
- "dynamicTile": {
1057
- "enabled": false,
1058
- "currentTileSize": 512,
1059
- "minTileSize": 256,
1060
- "maxTileSize": 512,
1061
- "targetTileTimeMs": 16
1062
- },
1063
- "lastExecution": {
1064
- "width": 512,
1065
- "height": 512,
1066
- "tileWidth": 512,
1067
- "tileHeight": 512,
1068
- "tileCount": 1,
1069
- "durationMs": 31,
1070
- "tileTimeMs": {
1071
- "min": 31,
1072
- "median": 31,
1073
- "mean": 31,
1074
- "max": 31
1075
- }
1076
- }
1077
- },
1078
- "supportsFP16": true,
1079
- "adapter": {
1080
- "vendor": "apple",
1081
- "architecture": "metal-3",
1082
- "device": "",
1083
- "description": ""
1084
- },
1085
- "summary": {
1086
- "minMs": 29.299999997019768,
1087
- "medianMs": 29.5,
1088
- "meanMs": 29.459999999403955,
1089
- "p95Ms": 29.600000001490116,
1090
- "maxMs": 29.600000001490116
1091
- },
1092
- "messages": [],
1093
- "validation": {
1094
- "sampleCount": 6144,
1095
- "meanAbsoluteError": 0.0010210334021394374,
1096
- "rootMeanSquaredError": 0.001609680379854656,
1097
- "maxAbsoluteError": 0.012395620346069336,
1098
- "passed": true,
1099
- "thresholds": {
1100
- "maxMeanError": 0.005,
1101
- "maxAbsoluteError": 0.05
1102
- }
1103
- }
1104
- },
1105
- {
1106
- "label": "WebNN FP16 (experimental)",
1107
- "bundle": "current",
1108
- "baseline": false,
1109
- "precision": "fp16",
1110
- "engine": "webnn",
1111
- "skipped": "Error: WebNN FP16 WebGPU interop failed: NotSupportedError: Failed to execute 'createExportableTensor' on 'MLContext': WebGPU Interop is not supported.",
1112
- "messages": []
1113
- }
1114
- ]
1115
- }