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,1437 +0,0 @@
1
- {
2
- "generatedAt": "2026-08-20T06:20:10.614Z",
3
- "currentCommit": "4dc1797b24c64aa0d647eada0cb3389fb0d24705",
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.299999997019768,
27
- "timesMs": [
28
- 36.70000000298023,
29
- 37.099999994039536,
30
- 37.100000001490116,
31
- 36.600000001490116,
32
- 36.600000001490116
33
- ],
34
- "supportsFP16": true,
35
- "adapter": {
36
- "vendor": "apple",
37
- "architecture": "metal-3",
38
- "device": "",
39
- "description": ""
40
- },
41
- "summary": {
42
- "minMs": 36.600000001490116,
43
- "medianMs": 36.70000000298023,
44
- "meanMs": 36.82000000029802,
45
- "p95Ms": 37.100000001490116,
46
- "maxMs": 37.100000001490116
47
- },
48
- "messages": []
49
- },
50
- {
51
- "label": "WGSL FP32 Auto",
52
- "bundle": "current",
53
- "baseline": false,
54
- "precision": "fp32",
55
- "initializationMs": 38.600000001490116,
56
- "timesMs": [
57
- 37.70000000298023,
58
- 37.69999999552965,
59
- 37.80000000447035,
60
- 37.599999994039536,
61
- 37.600000001490116
62
- ],
63
- "executionProfile": {
64
- "totalMs": 37.100024999999995,
65
- "layers": [
66
- {
67
- "id": "input-pack",
68
- "durationMs": 0.05158
69
- },
70
- {
71
- "id": "enc_conv1a",
72
- "durationMs": 0.840865
73
- },
74
- {
75
- "id": "enc_conv1b",
76
- "durationMs": 4.250948
77
- },
78
- {
79
- "id": "pool1",
80
- "durationMs": 0.424724
81
- },
82
- {
83
- "id": "enc_conv2a",
84
- "durationMs": 1.74906
85
- },
86
- {
87
- "id": "enc_conv2b",
88
- "durationMs": 2.385146
89
- },
90
- {
91
- "id": "pool2",
92
- "durationMs": 0.055079
93
- },
94
- {
95
- "id": "enc_conv3a",
96
- "durationMs": 0.767161
97
- },
98
- {
99
- "id": "enc_conv3b",
100
- "durationMs": 0.98669
101
- },
102
- {
103
- "id": "pool3",
104
- "durationMs": 0.018082
105
- },
106
- {
107
- "id": "enc_conv4a",
108
- "durationMs": 0.397601
109
- },
110
- {
111
- "id": "enc_conv4b",
112
- "durationMs": 0.60867
113
- },
114
- {
115
- "id": "pool4",
116
- "durationMs": 0.008459
117
- },
118
- {
119
- "id": "enc_conv5a",
120
- "durationMs": 0.260443
121
- },
122
- {
123
- "id": "enc_conv5b",
124
- "durationMs": 0.338688
125
- },
126
- {
127
- "id": "dec_conv4a",
128
- "durationMs": 1.245799
129
- },
130
- {
131
- "id": "dec_conv4b",
132
- "durationMs": 0.750121
133
- },
134
- {
135
- "id": "dec_conv3a",
136
- "durationMs": 2.597466
137
- },
138
- {
139
- "id": "dec_conv3b",
140
- "durationMs": 0.990106
141
- },
142
- {
143
- "id": "dec_conv2a",
144
- "durationMs": 4.586345
145
- },
146
- {
147
- "id": "dec_conv2b",
148
- "durationMs": 2.353356
149
- },
150
- {
151
- "id": "dec_conv1a",
152
- "durationMs": 7.13494
153
- },
154
- {
155
- "id": "dec_conv1b",
156
- "durationMs": 3.803018
157
- },
158
- {
159
- "id": "dec_conv1c",
160
- "durationMs": 0.495678
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
- "resources": {
174
- "live": 68,
175
- "created": 71,
176
- "destroyed": 3,
177
- "peakLive": 71,
178
- "pending": 0,
179
- "byKind": {
180
- "gpu-buffer": {
181
- "created": 70,
182
- "destroyed": 2,
183
- "live": 68,
184
- "peakLive": 70
185
- },
186
- "gpu-query-set": {
187
- "created": 1,
188
- "destroyed": 1,
189
- "live": 0,
190
- "peakLive": 1
191
- }
192
- }
193
- },
194
- "model": "oidn-unet-large-v1",
195
- "modelFamily": "oidn-unet-large",
196
- "inputChannels": 9,
197
- "dynamicTile": {
198
- "enabled": false,
199
- "currentTileSize": 512,
200
- "minTileSize": 256,
201
- "maxTileSize": 512,
202
- "targetTileTimeMs": 16
203
- },
204
- "lastExecution": {
205
- "width": 512,
206
- "height": 512,
207
- "tileWidth": 512,
208
- "tileHeight": 512,
209
- "tileCount": 1,
210
- "durationMs": 38.899999998509884,
211
- "tileTimeMs": {
212
- "min": 38.79999999701977,
213
- "median": 38.79999999701977,
214
- "mean": 38.79999999701977,
215
- "max": 38.79999999701977
216
- }
217
- }
218
- },
219
- "supportsFP16": true,
220
- "adapter": {
221
- "vendor": "apple",
222
- "architecture": "metal-3",
223
- "device": "",
224
- "description": ""
225
- },
226
- "summary": {
227
- "minMs": 37.599999994039536,
228
- "medianMs": 37.69999999552965,
229
- "meanMs": 37.67999999970198,
230
- "p95Ms": 37.80000000447035,
231
- "maxMs": 37.80000000447035
232
- },
233
- "messages": [],
234
- "validation": {
235
- "sampleCount": 6144,
236
- "meanAbsoluteError": 0.0000011096847932397698,
237
- "rootMeanSquaredError": 0.0000018071588418628667,
238
- "maxAbsoluteError": 0.000013589859008789062,
239
- "passed": true,
240
- "thresholds": {
241
- "maxMeanError": 0.0001,
242
- "maxAbsoluteError": 0.001
243
- }
244
- }
245
- },
246
- {
247
- "label": "WGSL FP32 Direct",
248
- "bundle": "current",
249
- "baseline": false,
250
- "precision": "fp32",
251
- "kernel": "direct",
252
- "initializationMs": 37.600000001490116,
253
- "timesMs": [
254
- 66.39999999850988,
255
- 66.5,
256
- 65.70000000298023,
257
- 67.19999999552965,
258
- 66.80000000447035
259
- ],
260
- "executionProfile": {
261
- "totalMs": 65.767493,
262
- "layers": [
263
- {
264
- "id": "input-pack",
265
- "durationMs": 0.05004
266
- },
267
- {
268
- "id": "enc_conv1a",
269
- "durationMs": 1.239505
270
- },
271
- {
272
- "id": "enc_conv1b",
273
- "durationMs": 9.255425
274
- },
275
- {
276
- "id": "pool1",
277
- "durationMs": 0.679563
278
- },
279
- {
280
- "id": "enc_conv2a",
281
- "durationMs": 3.605849
282
- },
283
- {
284
- "id": "enc_conv2b",
285
- "durationMs": 5.619703
286
- },
287
- {
288
- "id": "pool2",
289
- "durationMs": 0.068457
290
- },
291
- {
292
- "id": "enc_conv3a",
293
- "durationMs": 1.090884
294
- },
295
- {
296
- "id": "enc_conv3b",
297
- "durationMs": 2.077019
298
- },
299
- {
300
- "id": "pool3",
301
- "durationMs": 0.020291
302
- },
303
- {
304
- "id": "enc_conv4a",
305
- "durationMs": 0.567025
306
- },
307
- {
308
- "id": "enc_conv4b",
309
- "durationMs": 0.902722
310
- },
311
- {
312
- "id": "pool4",
313
- "durationMs": 0.011125
314
- },
315
- {
316
- "id": "enc_conv5a",
317
- "durationMs": 0.32849
318
- },
319
- {
320
- "id": "enc_conv5b",
321
- "durationMs": 0.431112
322
- },
323
- {
324
- "id": "dec_conv4a",
325
- "durationMs": 1.65745
326
- },
327
- {
328
- "id": "dec_conv4b",
329
- "durationMs": 0.845515
330
- },
331
- {
332
- "id": "dec_conv3a",
333
- "durationMs": 3.539392
334
- },
335
- {
336
- "id": "dec_conv3b",
337
- "durationMs": 1.685241
338
- },
339
- {
340
- "id": "dec_conv2a",
341
- "durationMs": 6.988786
342
- },
343
- {
344
- "id": "dec_conv2b",
345
- "durationMs": 5.390918
346
- },
347
- {
348
- "id": "dec_conv1a",
349
- "durationMs": 10.509637
350
- },
351
- {
352
- "id": "dec_conv1b",
353
- "durationMs": 8.709234
354
- },
355
- {
356
- "id": "dec_conv1c",
357
- "durationMs": 0.49411
358
- }
359
- ]
360
- },
361
- "runtimeInfo": {
362
- "configuredEngine": "wgsl",
363
- "gpuEngine": "wgsl",
364
- "precision": "fp32",
365
- "kernel": {
366
- "configured": "direct",
367
- "maxSpatialInputBlocks": 0,
368
- "subgroupsAvailable": false
369
- },
370
- "resources": {
371
- "live": 68,
372
- "created": 71,
373
- "destroyed": 3,
374
- "peakLive": 71,
375
- "pending": 0,
376
- "byKind": {
377
- "gpu-buffer": {
378
- "created": 70,
379
- "destroyed": 2,
380
- "live": 68,
381
- "peakLive": 70
382
- },
383
- "gpu-query-set": {
384
- "created": 1,
385
- "destroyed": 1,
386
- "live": 0,
387
- "peakLive": 1
388
- }
389
- }
390
- },
391
- "model": "oidn-unet-large-v1",
392
- "modelFamily": "oidn-unet-large",
393
- "inputChannels": 9,
394
- "dynamicTile": {
395
- "enabled": false,
396
- "currentTileSize": 512,
397
- "minTileSize": 256,
398
- "maxTileSize": 512,
399
- "targetTileTimeMs": 16
400
- },
401
- "lastExecution": {
402
- "width": 512,
403
- "height": 512,
404
- "tileWidth": 512,
405
- "tileHeight": 512,
406
- "tileCount": 1,
407
- "durationMs": 67.5,
408
- "tileTimeMs": {
409
- "min": 67.5,
410
- "median": 67.5,
411
- "mean": 67.5,
412
- "max": 67.5
413
- }
414
- }
415
- },
416
- "supportsFP16": true,
417
- "adapter": {
418
- "vendor": "apple",
419
- "architecture": "metal-3",
420
- "device": "",
421
- "description": ""
422
- },
423
- "summary": {
424
- "minMs": 65.70000000298023,
425
- "medianMs": 66.5,
426
- "meanMs": 66.52000000029803,
427
- "p95Ms": 67.19999999552965,
428
- "maxMs": 67.19999999552965
429
- },
430
- "messages": [],
431
- "validation": {
432
- "sampleCount": 6144,
433
- "meanAbsoluteError": 0.0000011096847932397698,
434
- "rootMeanSquaredError": 0.0000018071588418628667,
435
- "maxAbsoluteError": 0.000013589859008789062,
436
- "passed": true,
437
- "thresholds": {
438
- "maxMeanError": 0.0001,
439
- "maxAbsoluteError": 0.001
440
- }
441
- }
442
- },
443
- {
444
- "label": "WGSL FP16 Direct",
445
- "bundle": "current",
446
- "baseline": false,
447
- "precision": "fp16",
448
- "kernel": "direct",
449
- "initializationMs": 26.899999998509884,
450
- "timesMs": [
451
- 30.19999999552965,
452
- 29.700000002980232,
453
- 30.200000002980232,
454
- 29.599999994039536,
455
- 30.100000001490116
456
- ],
457
- "executionProfile": {
458
- "totalMs": 29.505953,
459
- "layers": [
460
- {
461
- "id": "input-pack",
462
- "durationMs": 0.044663
463
- },
464
- {
465
- "id": "enc_conv1a",
466
- "durationMs": 0.616797
467
- },
468
- {
469
- "id": "enc_conv1b",
470
- "durationMs": 3.117518
471
- },
472
- {
473
- "id": "pool1",
474
- "durationMs": 0.340979
475
- },
476
- {
477
- "id": "enc_conv2a",
478
- "durationMs": 1.164512
479
- },
480
- {
481
- "id": "enc_conv2b",
482
- "durationMs": 2.594217
483
- },
484
- {
485
- "id": "pool2",
486
- "durationMs": 0.058788
487
- },
488
- {
489
- "id": "enc_conv3a",
490
- "durationMs": 0.677751
491
- },
492
- {
493
- "id": "enc_conv3b",
494
- "durationMs": 0.839866
495
- },
496
- {
497
- "id": "pool3",
498
- "durationMs": 0.016083
499
- },
500
- {
501
- "id": "enc_conv4a",
502
- "durationMs": 0.339812
503
- },
504
- {
505
- "id": "enc_conv4b",
506
- "durationMs": 0.531635
507
- },
508
- {
509
- "id": "pool4",
510
- "durationMs": 0.010999
511
- },
512
- {
513
- "id": "enc_conv5a",
514
- "durationMs": 0.185948
515
- },
516
- {
517
- "id": "enc_conv5b",
518
- "durationMs": 0.242861
519
- },
520
- {
521
- "id": "dec_conv4a",
522
- "durationMs": 1.505283
523
- },
524
- {
525
- "id": "dec_conv4b",
526
- "durationMs": 0.546009
527
- },
528
- {
529
- "id": "dec_conv3a",
530
- "durationMs": 1.76535
531
- },
532
- {
533
- "id": "dec_conv3b",
534
- "durationMs": 0.842491
535
- },
536
- {
537
- "id": "dec_conv2a",
538
- "durationMs": 2.973485
539
- },
540
- {
541
- "id": "dec_conv2b",
542
- "durationMs": 2.655171
543
- },
544
- {
545
- "id": "dec_conv1a",
546
- "durationMs": 4.420606
547
- },
548
- {
549
- "id": "dec_conv1b",
550
- "durationMs": 3.81935
551
- },
552
- {
553
- "id": "dec_conv1c",
554
- "durationMs": 0.195779
555
- }
556
- ]
557
- },
558
- "runtimeInfo": {
559
- "configuredEngine": "wgsl",
560
- "gpuEngine": "wgsl",
561
- "precision": "fp16",
562
- "kernel": {
563
- "configured": "direct",
564
- "maxSpatialInputBlocks": 40,
565
- "subgroupsAvailable": false
566
- },
567
- "resources": {
568
- "live": 68,
569
- "created": 71,
570
- "destroyed": 3,
571
- "peakLive": 71,
572
- "pending": 0,
573
- "byKind": {
574
- "gpu-buffer": {
575
- "created": 70,
576
- "destroyed": 2,
577
- "live": 68,
578
- "peakLive": 70
579
- },
580
- "gpu-query-set": {
581
- "created": 1,
582
- "destroyed": 1,
583
- "live": 0,
584
- "peakLive": 1
585
- }
586
- }
587
- },
588
- "model": "oidn-unet-large-v1",
589
- "modelFamily": "oidn-unet-large",
590
- "inputChannels": 9,
591
- "dynamicTile": {
592
- "enabled": false,
593
- "currentTileSize": 512,
594
- "minTileSize": 256,
595
- "maxTileSize": 512,
596
- "targetTileTimeMs": 16
597
- },
598
- "lastExecution": {
599
- "width": 512,
600
- "height": 512,
601
- "tileWidth": 512,
602
- "tileHeight": 512,
603
- "tileCount": 1,
604
- "durationMs": 31.200000002980232,
605
- "tileTimeMs": {
606
- "min": 31.100000001490116,
607
- "median": 31.100000001490116,
608
- "mean": 31.100000001490116,
609
- "max": 31.100000001490116
610
- }
611
- }
612
- },
613
- "supportsFP16": true,
614
- "adapter": {
615
- "vendor": "apple",
616
- "architecture": "metal-3",
617
- "device": "",
618
- "description": ""
619
- },
620
- "summary": {
621
- "minMs": 29.599999994039536,
622
- "medianMs": 30.100000001490116,
623
- "meanMs": 29.959999999403955,
624
- "p95Ms": 30.200000002980232,
625
- "maxMs": 30.200000002980232
626
- },
627
- "messages": [],
628
- "validation": {
629
- "sampleCount": 6144,
630
- "meanAbsoluteError": 0.0010210334021394374,
631
- "rootMeanSquaredError": 0.001609680379854656,
632
- "maxAbsoluteError": 0.012395620346069336,
633
- "passed": true,
634
- "thresholds": {
635
- "maxMeanError": 0.005,
636
- "maxAbsoluteError": 0.05
637
- }
638
- }
639
- },
640
- {
641
- "label": "WGSL FP16 Implicit GEMM",
642
- "bundle": "current",
643
- "baseline": false,
644
- "precision": "fp16",
645
- "kernel": "implicit-gemm",
646
- "initializationMs": 31.19999999552965,
647
- "timesMs": [
648
- 31,
649
- 30.80000000447035,
650
- 30.399999998509884,
651
- 31,
652
- 30.799999997019768
653
- ],
654
- "executionProfile": {
655
- "totalMs": 29.739644999999996,
656
- "layers": [
657
- {
658
- "id": "input-pack",
659
- "durationMs": 0.044414
660
- },
661
- {
662
- "id": "enc_conv1a",
663
- "durationMs": 0.685583
664
- },
665
- {
666
- "id": "enc_conv1b",
667
- "durationMs": 2.941654
668
- },
669
- {
670
- "id": "pool1",
671
- "durationMs": 0.331104
672
- },
673
- {
674
- "id": "enc_conv2a",
675
- "durationMs": 1.121099
676
- },
677
- {
678
- "id": "enc_conv2b",
679
- "durationMs": 1.828846
680
- },
681
- {
682
- "id": "pool2",
683
- "durationMs": 0.395185
684
- },
685
- {
686
- "id": "enc_conv3a",
687
- "durationMs": 0.742038
688
- },
689
- {
690
- "id": "enc_conv3b",
691
- "durationMs": 0.79341
692
- },
693
- {
694
- "id": "pool3",
695
- "durationMs": 0.016958
696
- },
697
- {
698
- "id": "enc_conv4a",
699
- "durationMs": 0.328063
700
- },
701
- {
702
- "id": "enc_conv4b",
703
- "durationMs": 0.509761
704
- },
705
- {
706
- "id": "pool4",
707
- "durationMs": 0.011457
708
- },
709
- {
710
- "id": "enc_conv5a",
711
- "durationMs": 0.230986
712
- },
713
- {
714
- "id": "enc_conv5b",
715
- "durationMs": 0.300357
716
- },
717
- {
718
- "id": "dec_conv4a",
719
- "durationMs": 1.044936
720
- },
721
- {
722
- "id": "dec_conv4b",
723
- "durationMs": 0.509386
724
- },
725
- {
726
- "id": "dec_conv3a",
727
- "durationMs": 1.902801
728
- },
729
- {
730
- "id": "dec_conv3b",
731
- "durationMs": 0.826533
732
- },
733
- {
734
- "id": "dec_conv2a",
735
- "durationMs": 4.068877
736
- },
737
- {
738
- "id": "dec_conv2b",
739
- "durationMs": 1.751018
740
- },
741
- {
742
- "id": "dec_conv1a",
743
- "durationMs": 6.221871
744
- },
745
- {
746
- "id": "dec_conv1b",
747
- "durationMs": 2.941778
748
- },
749
- {
750
- "id": "dec_conv1c",
751
- "durationMs": 0.19153
752
- }
753
- ]
754
- },
755
- "runtimeInfo": {
756
- "configuredEngine": "wgsl",
757
- "gpuEngine": "wgsl",
758
- "precision": "fp16",
759
- "kernel": {
760
- "configured": "implicit-gemm",
761
- "maxSpatialInputBlocks": 40,
762
- "subgroupsAvailable": false
763
- },
764
- "resources": {
765
- "live": 68,
766
- "created": 71,
767
- "destroyed": 3,
768
- "peakLive": 71,
769
- "pending": 0,
770
- "byKind": {
771
- "gpu-buffer": {
772
- "created": 70,
773
- "destroyed": 2,
774
- "live": 68,
775
- "peakLive": 70
776
- },
777
- "gpu-query-set": {
778
- "created": 1,
779
- "destroyed": 1,
780
- "live": 0,
781
- "peakLive": 1
782
- }
783
- }
784
- },
785
- "model": "oidn-unet-large-v1",
786
- "modelFamily": "oidn-unet-large",
787
- "inputChannels": 9,
788
- "dynamicTile": {
789
- "enabled": false,
790
- "currentTileSize": 512,
791
- "minTileSize": 256,
792
- "maxTileSize": 512,
793
- "targetTileTimeMs": 16
794
- },
795
- "lastExecution": {
796
- "width": 512,
797
- "height": 512,
798
- "tileWidth": 512,
799
- "tileHeight": 512,
800
- "tileCount": 1,
801
- "durationMs": 31.400000005960464,
802
- "tileTimeMs": {
803
- "min": 31.400000005960464,
804
- "median": 31.400000005960464,
805
- "mean": 31.400000005960464,
806
- "max": 31.400000005960464
807
- }
808
- }
809
- },
810
- "supportsFP16": true,
811
- "adapter": {
812
- "vendor": "apple",
813
- "architecture": "metal-3",
814
- "device": "",
815
- "description": ""
816
- },
817
- "summary": {
818
- "minMs": 30.399999998509884,
819
- "medianMs": 30.80000000447035,
820
- "meanMs": 30.8,
821
- "p95Ms": 31,
822
- "maxMs": 31
823
- },
824
- "messages": [],
825
- "validation": {
826
- "sampleCount": 6144,
827
- "meanAbsoluteError": 0.001559715069864372,
828
- "rootMeanSquaredError": 0.0025477948380839928,
829
- "maxAbsoluteError": 0.04479837417602539,
830
- "passed": true,
831
- "thresholds": {
832
- "maxMeanError": 0.005,
833
- "maxAbsoluteError": 0.05
834
- }
835
- }
836
- },
837
- {
838
- "label": "WGSL FP16 Spatial (experimental)",
839
- "bundle": "current",
840
- "baseline": false,
841
- "precision": "fp16",
842
- "kernel": "spatial",
843
- "initializationMs": 28.600000001490116,
844
- "timesMs": [
845
- 65.29999999701977,
846
- 64.70000000298023,
847
- 65.69999999552965,
848
- 64.40000000596046,
849
- 65.09999999403954
850
- ],
851
- "executionProfile": {
852
- "totalMs": 64.84497800000001,
853
- "layers": [
854
- {
855
- "id": "input-pack",
856
- "durationMs": 0.04479
857
- },
858
- {
859
- "id": "enc_conv1a",
860
- "durationMs": 1.407457
861
- },
862
- {
863
- "id": "enc_conv1b",
864
- "durationMs": 5.439209
865
- },
866
- {
867
- "id": "pool1",
868
- "durationMs": 0.34049
869
- },
870
- {
871
- "id": "enc_conv2a",
872
- "durationMs": 2.165518
873
- },
874
- {
875
- "id": "enc_conv2b",
876
- "durationMs": 4.759813
877
- },
878
- {
879
- "id": "pool2",
880
- "durationMs": 0.05404
881
- },
882
- {
883
- "id": "enc_conv3a",
884
- "durationMs": 1.429998
885
- },
886
- {
887
- "id": "enc_conv3b",
888
- "durationMs": 3.246526
889
- },
890
- {
891
- "id": "pool3",
892
- "durationMs": 0.039874
893
- },
894
- {
895
- "id": "enc_conv4a",
896
- "durationMs": 1.374624
897
- },
898
- {
899
- "id": "enc_conv4b",
900
- "durationMs": 0.536858
901
- },
902
- {
903
- "id": "pool4",
904
- "durationMs": 0.011416
905
- },
906
- {
907
- "id": "enc_conv5a",
908
- "durationMs": 0.185911
909
- },
910
- {
911
- "id": "enc_conv5b",
912
- "durationMs": 0.234451
913
- },
914
- {
915
- "id": "dec_conv4a",
916
- "durationMs": 0.951971
917
- },
918
- {
919
- "id": "dec_conv4b",
920
- "durationMs": 0.531068
921
- },
922
- {
923
- "id": "dec_conv3a",
924
- "durationMs": 1.70224
925
- },
926
- {
927
- "id": "dec_conv3b",
928
- "durationMs": 3.232443
929
- },
930
- {
931
- "id": "dec_conv2a",
932
- "durationMs": 3.041115
933
- },
934
- {
935
- "id": "dec_conv2b",
936
- "durationMs": 4.29991
937
- },
938
- {
939
- "id": "dec_conv1a",
940
- "durationMs": 23.729359
941
- },
942
- {
943
- "id": "dec_conv1b",
944
- "durationMs": 5.720616
945
- },
946
- {
947
- "id": "dec_conv1c",
948
- "durationMs": 0.365281
949
- }
950
- ]
951
- },
952
- "runtimeInfo": {
953
- "configuredEngine": "wgsl",
954
- "gpuEngine": "wgsl",
955
- "precision": "fp16",
956
- "kernel": {
957
- "configured": "spatial",
958
- "maxSpatialInputBlocks": 40,
959
- "subgroupsAvailable": false
960
- },
961
- "resources": {
962
- "live": 68,
963
- "created": 71,
964
- "destroyed": 3,
965
- "peakLive": 71,
966
- "pending": 0,
967
- "byKind": {
968
- "gpu-buffer": {
969
- "created": 70,
970
- "destroyed": 2,
971
- "live": 68,
972
- "peakLive": 70
973
- },
974
- "gpu-query-set": {
975
- "created": 1,
976
- "destroyed": 1,
977
- "live": 0,
978
- "peakLive": 1
979
- }
980
- }
981
- },
982
- "model": "oidn-unet-large-v1",
983
- "modelFamily": "oidn-unet-large",
984
- "inputChannels": 9,
985
- "dynamicTile": {
986
- "enabled": false,
987
- "currentTileSize": 512,
988
- "minTileSize": 256,
989
- "maxTileSize": 512,
990
- "targetTileTimeMs": 16
991
- },
992
- "lastExecution": {
993
- "width": 512,
994
- "height": 512,
995
- "tileWidth": 512,
996
- "tileHeight": 512,
997
- "tileCount": 1,
998
- "durationMs": 66.60000000149012,
999
- "tileTimeMs": {
1000
- "min": 66.60000000149012,
1001
- "median": 66.60000000149012,
1002
- "mean": 66.60000000149012,
1003
- "max": 66.60000000149012
1004
- }
1005
- }
1006
- },
1007
- "supportsFP16": true,
1008
- "adapter": {
1009
- "vendor": "apple",
1010
- "architecture": "metal-3",
1011
- "device": "",
1012
- "description": ""
1013
- },
1014
- "summary": {
1015
- "minMs": 64.40000000596046,
1016
- "medianMs": 65.09999999403954,
1017
- "meanMs": 65.03999999910593,
1018
- "p95Ms": 65.69999999552965,
1019
- "maxMs": 65.69999999552965
1020
- },
1021
- "messages": [],
1022
- "validation": {
1023
- "sampleCount": 6144,
1024
- "meanAbsoluteError": 0.0010210334021394374,
1025
- "rootMeanSquaredError": 0.001609680379854656,
1026
- "maxAbsoluteError": 0.012395620346069336,
1027
- "passed": true,
1028
- "thresholds": {
1029
- "maxMeanError": 0.005,
1030
- "maxAbsoluteError": 0.05
1031
- }
1032
- }
1033
- },
1034
- {
1035
- "label": "WGSL FP16 Subgroup (experimental)",
1036
- "bundle": "current",
1037
- "baseline": false,
1038
- "precision": "fp16",
1039
- "kernel": "subgroup",
1040
- "initializationMs": 28.5,
1041
- "timesMs": [
1042
- 31.5,
1043
- 31.30000000447035,
1044
- 30.69999999552965,
1045
- 31,
1046
- 31.5
1047
- ],
1048
- "executionProfile": {
1049
- "totalMs": 30.593169999999997,
1050
- "layers": [
1051
- {
1052
- "id": "input-pack",
1053
- "durationMs": 0.044663
1054
- },
1055
- {
1056
- "id": "enc_conv1a",
1057
- "durationMs": 0.739289
1058
- },
1059
- {
1060
- "id": "enc_conv1b",
1061
- "durationMs": 4.020546
1062
- },
1063
- {
1064
- "id": "pool1",
1065
- "durationMs": 0.37531
1066
- },
1067
- {
1068
- "id": "enc_conv2a",
1069
- "durationMs": 1.267255
1070
- },
1071
- {
1072
- "id": "enc_conv2b",
1073
- "durationMs": 2.030917
1074
- },
1075
- {
1076
- "id": "pool2",
1077
- "durationMs": 0.049705
1078
- },
1079
- {
1080
- "id": "enc_conv3a",
1081
- "durationMs": 0.714916
1082
- },
1083
- {
1084
- "id": "enc_conv3b",
1085
- "durationMs": 0.921901
1086
- },
1087
- {
1088
- "id": "pool3",
1089
- "durationMs": 0.015707
1090
- },
1091
- {
1092
- "id": "enc_conv4a",
1093
- "durationMs": 0.376727
1094
- },
1095
- {
1096
- "id": "enc_conv4b",
1097
- "durationMs": 0.747746
1098
- },
1099
- {
1100
- "id": "pool4",
1101
- "durationMs": 0.160656
1102
- },
1103
- {
1104
- "id": "enc_conv5a",
1105
- "durationMs": 0.354812
1106
- },
1107
- {
1108
- "id": "enc_conv5b",
1109
- "durationMs": 0.342604
1110
- },
1111
- {
1112
- "id": "dec_conv4a",
1113
- "durationMs": 0.971108
1114
- },
1115
- {
1116
- "id": "dec_conv4b",
1117
- "durationMs": 0.576215
1118
- },
1119
- {
1120
- "id": "dec_conv3a",
1121
- "durationMs": 1.702979
1122
- },
1123
- {
1124
- "id": "dec_conv3b",
1125
- "durationMs": 0.919527
1126
- },
1127
- {
1128
- "id": "dec_conv2a",
1129
- "durationMs": 3.035607
1130
- },
1131
- {
1132
- "id": "dec_conv2b",
1133
- "durationMs": 2.547219
1134
- },
1135
- {
1136
- "id": "dec_conv1a",
1137
- "durationMs": 4.382815
1138
- },
1139
- {
1140
- "id": "dec_conv1b",
1141
- "durationMs": 4.068585
1142
- },
1143
- {
1144
- "id": "dec_conv1c",
1145
- "durationMs": 0.226361
1146
- }
1147
- ]
1148
- },
1149
- "runtimeInfo": {
1150
- "configuredEngine": "wgsl",
1151
- "gpuEngine": "wgsl",
1152
- "precision": "fp16",
1153
- "kernel": {
1154
- "configured": "subgroup",
1155
- "maxSpatialInputBlocks": 40,
1156
- "subgroupsAvailable": true
1157
- },
1158
- "resources": {
1159
- "live": 68,
1160
- "created": 71,
1161
- "destroyed": 3,
1162
- "peakLive": 71,
1163
- "pending": 0,
1164
- "byKind": {
1165
- "gpu-buffer": {
1166
- "created": 70,
1167
- "destroyed": 2,
1168
- "live": 68,
1169
- "peakLive": 70
1170
- },
1171
- "gpu-query-set": {
1172
- "created": 1,
1173
- "destroyed": 1,
1174
- "live": 0,
1175
- "peakLive": 1
1176
- }
1177
- }
1178
- },
1179
- "model": "oidn-unet-large-v1",
1180
- "modelFamily": "oidn-unet-large",
1181
- "inputChannels": 9,
1182
- "dynamicTile": {
1183
- "enabled": false,
1184
- "currentTileSize": 512,
1185
- "minTileSize": 256,
1186
- "maxTileSize": 512,
1187
- "targetTileTimeMs": 16
1188
- },
1189
- "lastExecution": {
1190
- "width": 512,
1191
- "height": 512,
1192
- "tileWidth": 512,
1193
- "tileHeight": 512,
1194
- "tileCount": 1,
1195
- "durationMs": 32.30000000447035,
1196
- "tileTimeMs": {
1197
- "min": 32.30000000447035,
1198
- "median": 32.30000000447035,
1199
- "mean": 32.30000000447035,
1200
- "max": 32.30000000447035
1201
- }
1202
- }
1203
- },
1204
- "supportsFP16": true,
1205
- "adapter": {
1206
- "vendor": "apple",
1207
- "architecture": "metal-3",
1208
- "device": "",
1209
- "description": ""
1210
- },
1211
- "summary": {
1212
- "minMs": 30.69999999552965,
1213
- "medianMs": 31.30000000447035,
1214
- "meanMs": 31.2,
1215
- "p95Ms": 31.5,
1216
- "maxMs": 31.5
1217
- },
1218
- "messages": [],
1219
- "validation": {
1220
- "sampleCount": 6144,
1221
- "meanAbsoluteError": 0.0010210334021394374,
1222
- "rootMeanSquaredError": 0.001609680379854656,
1223
- "maxAbsoluteError": 0.012395620346069336,
1224
- "passed": true,
1225
- "thresholds": {
1226
- "maxMeanError": 0.005,
1227
- "maxAbsoluteError": 0.05
1228
- }
1229
- }
1230
- },
1231
- {
1232
- "label": "WGSL INT8 weights / FP16 activations (experimental)",
1233
- "bundle": "current",
1234
- "baseline": false,
1235
- "precision": "int8",
1236
- "initializationMs": 152.10000000149012,
1237
- "timesMs": [
1238
- 100.89999999850988,
1239
- 101.60000000149012,
1240
- 100.79999999701977,
1241
- 101.29999999701977,
1242
- 101.40000000596046
1243
- ],
1244
- "executionProfile": {
1245
- "totalMs": 100.739128,
1246
- "layers": [
1247
- {
1248
- "id": "input-pack",
1249
- "durationMs": 0.044541
1250
- },
1251
- {
1252
- "id": "enc_conv1a",
1253
- "durationMs": 2.051302
1254
- },
1255
- {
1256
- "id": "enc_conv1b",
1257
- "durationMs": 11.634822
1258
- },
1259
- {
1260
- "id": "pool1",
1261
- "durationMs": 0.882987
1262
- },
1263
- {
1264
- "id": "enc_conv2a",
1265
- "durationMs": 4.188561
1266
- },
1267
- {
1268
- "id": "enc_conv2b",
1269
- "durationMs": 6.229197
1270
- },
1271
- {
1272
- "id": "pool2",
1273
- "durationMs": 0.370161
1274
- },
1275
- {
1276
- "id": "enc_conv3a",
1277
- "durationMs": 2.324798
1278
- },
1279
- {
1280
- "id": "enc_conv3b",
1281
- "durationMs": 2.912372
1282
- },
1283
- {
1284
- "id": "pool3",
1285
- "durationMs": 0.359952
1286
- },
1287
- {
1288
- "id": "enc_conv4a",
1289
- "durationMs": 1.120942
1290
- },
1291
- {
1292
- "id": "enc_conv4b",
1293
- "durationMs": 1.556143
1294
- },
1295
- {
1296
- "id": "pool4",
1297
- "durationMs": 0.013334
1298
- },
1299
- {
1300
- "id": "enc_conv5a",
1301
- "durationMs": 0.539534
1302
- },
1303
- {
1304
- "id": "enc_conv5b",
1305
- "durationMs": 0.720364
1306
- },
1307
- {
1308
- "id": "dec_conv4a",
1309
- "durationMs": 3.162035
1310
- },
1311
- {
1312
- "id": "dec_conv4b",
1313
- "durationMs": 1.864638
1314
- },
1315
- {
1316
- "id": "dec_conv3a",
1317
- "durationMs": 6.274571
1318
- },
1319
- {
1320
- "id": "dec_conv3b",
1321
- "durationMs": 3.106827
1322
- },
1323
- {
1324
- "id": "dec_conv2a",
1325
- "durationMs": 12.723222
1326
- },
1327
- {
1328
- "id": "dec_conv2b",
1329
- "durationMs": 6.588774
1330
- },
1331
- {
1332
- "id": "dec_conv1a",
1333
- "durationMs": 19.512118
1334
- },
1335
- {
1336
- "id": "dec_conv1b",
1337
- "durationMs": 11.858111
1338
- },
1339
- {
1340
- "id": "dec_conv1c",
1341
- "durationMs": 0.699822
1342
- }
1343
- ]
1344
- },
1345
- "runtimeInfo": {
1346
- "configuredEngine": "wgsl",
1347
- "gpuEngine": "wgsl",
1348
- "precision": "int8",
1349
- "kernel": {
1350
- "configured": "auto",
1351
- "maxSpatialInputBlocks": 0,
1352
- "subgroupsAvailable": false
1353
- },
1354
- "resources": {
1355
- "live": 87,
1356
- "created": 90,
1357
- "destroyed": 3,
1358
- "peakLive": 90,
1359
- "pending": 0,
1360
- "byKind": {
1361
- "gpu-buffer": {
1362
- "created": 89,
1363
- "destroyed": 2,
1364
- "live": 87,
1365
- "peakLive": 89
1366
- },
1367
- "gpu-query-set": {
1368
- "created": 1,
1369
- "destroyed": 1,
1370
- "live": 0,
1371
- "peakLive": 1
1372
- }
1373
- }
1374
- },
1375
- "model": "oidn-unet-large-v1",
1376
- "modelFamily": "oidn-unet-large",
1377
- "inputChannels": 9,
1378
- "dynamicTile": {
1379
- "enabled": false,
1380
- "currentTileSize": 512,
1381
- "minTileSize": 256,
1382
- "maxTileSize": 512,
1383
- "targetTileTimeMs": 16
1384
- },
1385
- "lastExecution": {
1386
- "width": 512,
1387
- "height": 512,
1388
- "tileWidth": 512,
1389
- "tileHeight": 512,
1390
- "tileCount": 1,
1391
- "durationMs": 102.5,
1392
- "tileTimeMs": {
1393
- "min": 102.5,
1394
- "median": 102.5,
1395
- "mean": 102.5,
1396
- "max": 102.5
1397
- }
1398
- }
1399
- },
1400
- "supportsFP16": true,
1401
- "adapter": {
1402
- "vendor": "apple",
1403
- "architecture": "metal-3",
1404
- "device": "",
1405
- "description": ""
1406
- },
1407
- "summary": {
1408
- "minMs": 100.79999999701977,
1409
- "medianMs": 101.29999999701977,
1410
- "meanMs": 101.2,
1411
- "p95Ms": 101.60000000149012,
1412
- "maxMs": 101.60000000149012
1413
- },
1414
- "messages": [],
1415
- "validation": {
1416
- "sampleCount": 6144,
1417
- "meanAbsoluteError": 0.525755935792707,
1418
- "rootMeanSquaredError": 0.7734487394187427,
1419
- "maxAbsoluteError": 2.5758755207061768,
1420
- "passed": false,
1421
- "thresholds": {
1422
- "maxMeanError": 0.1,
1423
- "maxAbsoluteError": 1
1424
- }
1425
- }
1426
- },
1427
- {
1428
- "label": "WebNN FP16 (experimental)",
1429
- "bundle": "current",
1430
- "baseline": false,
1431
- "precision": "fp16",
1432
- "engine": "webnn",
1433
- "skipped": "Error: WebNN FP16 WebGPU interop failed: NotSupportedError: Failed to execute 'createExportableTensor' on 'MLContext': WebGPU Interop is not supported.",
1434
- "messages": []
1435
- }
1436
- ]
1437
- }