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,1413 +0,0 @@
1
- {
2
- "generatedAt": "2026-08-20T06:20:52.321Z",
3
- "currentCommit": "4dc1797b24c64aa0d647eada0cb3389fb0d24705",
4
- "baselineCommit": "136c00c34aa5cf4561b4137034dbd643177f0a5f",
5
- "settings": {
6
- "width": 512,
7
- "height": 512,
8
- "tileSize": 512,
9
- "warmup": 1,
10
- "runs": 2,
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.800000004470348,
27
- "timesMs": [
28
- 36.80000000447035,
29
- 37
30
- ],
31
- "supportsFP16": true,
32
- "adapter": {
33
- "vendor": "apple",
34
- "architecture": "metal-3",
35
- "device": "",
36
- "description": ""
37
- },
38
- "summary": {
39
- "minMs": 36.80000000447035,
40
- "medianMs": 36.900000002235174,
41
- "meanMs": 36.900000002235174,
42
- "p95Ms": 37,
43
- "maxMs": 37
44
- },
45
- "messages": []
46
- },
47
- {
48
- "label": "WGSL FP32 Auto",
49
- "bundle": "current",
50
- "baseline": false,
51
- "precision": "fp32",
52
- "initializationMs": 39.599999994039536,
53
- "timesMs": [
54
- 37.69999999552965,
55
- 38.100000001490116
56
- ],
57
- "executionProfile": {
58
- "totalMs": 36.800942,
59
- "layers": [
60
- {
61
- "id": "input-pack",
62
- "durationMs": 0.05016
63
- },
64
- {
65
- "id": "enc_conv1a",
66
- "durationMs": 0.839745
67
- },
68
- {
69
- "id": "enc_conv1b",
70
- "durationMs": 3.69298
71
- },
72
- {
73
- "id": "pool1",
74
- "durationMs": 0.409706
75
- },
76
- {
77
- "id": "enc_conv2a",
78
- "durationMs": 1.404017
79
- },
80
- {
81
- "id": "enc_conv2b",
82
- "durationMs": 2.512899
83
- },
84
- {
85
- "id": "pool2",
86
- "durationMs": 0.23485
87
- },
88
- {
89
- "id": "enc_conv3a",
90
- "durationMs": 0.788499
91
- },
92
- {
93
- "id": "enc_conv3b",
94
- "durationMs": 0.991394
95
- },
96
- {
97
- "id": "pool3",
98
- "durationMs": 0.018164
99
- },
100
- {
101
- "id": "enc_conv4a",
102
- "durationMs": 0.396123
103
- },
104
- {
105
- "id": "enc_conv4b",
106
- "durationMs": 0.715049
107
- },
108
- {
109
- "id": "pool4",
110
- "durationMs": 0.008541
111
- },
112
- {
113
- "id": "enc_conv5a",
114
- "durationMs": 0.258222
115
- },
116
- {
117
- "id": "enc_conv5b",
118
- "durationMs": 0.333006
119
- },
120
- {
121
- "id": "dec_conv4a",
122
- "durationMs": 1.242783
123
- },
124
- {
125
- "id": "dec_conv4b",
126
- "durationMs": 0.670928
127
- },
128
- {
129
- "id": "dec_conv3a",
130
- "durationMs": 2.730376
131
- },
132
- {
133
- "id": "dec_conv3b",
134
- "durationMs": 0.988936
135
- },
136
- {
137
- "id": "dec_conv2a",
138
- "durationMs": 4.556389
139
- },
140
- {
141
- "id": "dec_conv2b",
142
- "durationMs": 2.447363
143
- },
144
- {
145
- "id": "dec_conv1a",
146
- "durationMs": 7.322384
147
- },
148
- {
149
- "id": "dec_conv1b",
150
- "durationMs": 3.693314
151
- },
152
- {
153
- "id": "dec_conv1c",
154
- "durationMs": 0.495114
155
- }
156
- ]
157
- },
158
- "runtimeInfo": {
159
- "configuredEngine": "wgsl",
160
- "gpuEngine": "wgsl",
161
- "precision": "fp32",
162
- "kernel": {
163
- "configured": "auto",
164
- "maxSpatialInputBlocks": 0,
165
- "subgroupsAvailable": false
166
- },
167
- "resources": {
168
- "live": 68,
169
- "created": 71,
170
- "destroyed": 3,
171
- "peakLive": 71,
172
- "pending": 0,
173
- "byKind": {
174
- "gpu-buffer": {
175
- "created": 70,
176
- "destroyed": 2,
177
- "live": 68,
178
- "peakLive": 70
179
- },
180
- "gpu-query-set": {
181
- "created": 1,
182
- "destroyed": 1,
183
- "live": 0,
184
- "peakLive": 1
185
- }
186
- }
187
- },
188
- "model": "oidn-unet-large-v1",
189
- "modelFamily": "oidn-unet-large",
190
- "inputChannels": 9,
191
- "dynamicTile": {
192
- "enabled": false,
193
- "currentTileSize": 512,
194
- "minTileSize": 256,
195
- "maxTileSize": 512,
196
- "targetTileTimeMs": 16
197
- },
198
- "lastExecution": {
199
- "width": 512,
200
- "height": 512,
201
- "tileWidth": 512,
202
- "tileHeight": 512,
203
- "tileCount": 1,
204
- "durationMs": 38.600000001490116,
205
- "tileTimeMs": {
206
- "min": 38.600000001490116,
207
- "median": 38.600000001490116,
208
- "mean": 38.600000001490116,
209
- "max": 38.600000001490116
210
- }
211
- }
212
- },
213
- "supportsFP16": true,
214
- "adapter": {
215
- "vendor": "apple",
216
- "architecture": "metal-3",
217
- "device": "",
218
- "description": ""
219
- },
220
- "summary": {
221
- "minMs": 37.69999999552965,
222
- "medianMs": 37.899999998509884,
223
- "meanMs": 37.899999998509884,
224
- "p95Ms": 38.100000001490116,
225
- "maxMs": 38.100000001490116
226
- },
227
- "messages": [],
228
- "validation": {
229
- "sampleCount": 6144,
230
- "meanAbsoluteError": 0.0000011096847932397698,
231
- "rootMeanSquaredError": 0.0000018071588418628667,
232
- "maxAbsoluteError": 0.000013589859008789062,
233
- "passed": true,
234
- "thresholds": {
235
- "maxMeanError": 0.0001,
236
- "maxAbsoluteError": 0.001
237
- }
238
- }
239
- },
240
- {
241
- "label": "WGSL FP32 Direct",
242
- "bundle": "current",
243
- "baseline": false,
244
- "precision": "fp32",
245
- "kernel": "direct",
246
- "initializationMs": 37.69999999552965,
247
- "timesMs": [
248
- 66.29999999701977,
249
- 66
250
- ],
251
- "executionProfile": {
252
- "totalMs": 65.62849200000001,
253
- "layers": [
254
- {
255
- "id": "input-pack",
256
- "durationMs": 0.051122
257
- },
258
- {
259
- "id": "enc_conv1a",
260
- "durationMs": 1.240133
261
- },
262
- {
263
- "id": "enc_conv1b",
264
- "durationMs": 9.239186
265
- },
266
- {
267
- "id": "pool1",
268
- "durationMs": 0.460972
269
- },
270
- {
271
- "id": "enc_conv2a",
272
- "durationMs": 3.495579
273
- },
274
- {
275
- "id": "enc_conv2b",
276
- "durationMs": 5.376546
277
- },
278
- {
279
- "id": "pool2",
280
- "durationMs": 0.072287
281
- },
282
- {
283
- "id": "enc_conv3a",
284
- "durationMs": 1.268297
285
- },
286
- {
287
- "id": "enc_conv3b",
288
- "durationMs": 1.818056
289
- },
290
- {
291
- "id": "pool3",
292
- "durationMs": 0.019832
293
- },
294
- {
295
- "id": "enc_conv4a",
296
- "durationMs": 0.565257
297
- },
298
- {
299
- "id": "enc_conv4b",
300
- "durationMs": 0.831324
301
- },
302
- {
303
- "id": "pool4",
304
- "durationMs": 0.01229
305
- },
306
- {
307
- "id": "enc_conv5a",
308
- "durationMs": 0.32623
309
- },
310
- {
311
- "id": "enc_conv5b",
312
- "durationMs": 0.437515
313
- },
314
- {
315
- "id": "dec_conv4a",
316
- "durationMs": 1.669024
317
- },
318
- {
319
- "id": "dec_conv4b",
320
- "durationMs": 0.84599
321
- },
322
- {
323
- "id": "dec_conv3a",
324
- "durationMs": 3.665192
325
- },
326
- {
327
- "id": "dec_conv3b",
328
- "durationMs": 1.559863
329
- },
330
- {
331
- "id": "dec_conv2a",
332
- "durationMs": 7.085776
333
- },
334
- {
335
- "id": "dec_conv2b",
336
- "durationMs": 5.397545
337
- },
338
- {
339
- "id": "dec_conv1a",
340
- "durationMs": 10.480736
341
- },
342
- {
343
- "id": "dec_conv1b",
344
- "durationMs": 9.220603
345
- },
346
- {
347
- "id": "dec_conv1c",
348
- "durationMs": 0.489137
349
- }
350
- ]
351
- },
352
- "runtimeInfo": {
353
- "configuredEngine": "wgsl",
354
- "gpuEngine": "wgsl",
355
- "precision": "fp32",
356
- "kernel": {
357
- "configured": "direct",
358
- "maxSpatialInputBlocks": 0,
359
- "subgroupsAvailable": false
360
- },
361
- "resources": {
362
- "live": 68,
363
- "created": 71,
364
- "destroyed": 3,
365
- "peakLive": 71,
366
- "pending": 0,
367
- "byKind": {
368
- "gpu-buffer": {
369
- "created": 70,
370
- "destroyed": 2,
371
- "live": 68,
372
- "peakLive": 70
373
- },
374
- "gpu-query-set": {
375
- "created": 1,
376
- "destroyed": 1,
377
- "live": 0,
378
- "peakLive": 1
379
- }
380
- }
381
- },
382
- "model": "oidn-unet-large-v1",
383
- "modelFamily": "oidn-unet-large",
384
- "inputChannels": 9,
385
- "dynamicTile": {
386
- "enabled": false,
387
- "currentTileSize": 512,
388
- "minTileSize": 256,
389
- "maxTileSize": 512,
390
- "targetTileTimeMs": 16
391
- },
392
- "lastExecution": {
393
- "width": 512,
394
- "height": 512,
395
- "tileWidth": 512,
396
- "tileHeight": 512,
397
- "tileCount": 1,
398
- "durationMs": 67.29999999701977,
399
- "tileTimeMs": {
400
- "min": 67.29999999701977,
401
- "median": 67.29999999701977,
402
- "mean": 67.29999999701977,
403
- "max": 67.29999999701977
404
- }
405
- }
406
- },
407
- "supportsFP16": true,
408
- "adapter": {
409
- "vendor": "apple",
410
- "architecture": "metal-3",
411
- "device": "",
412
- "description": ""
413
- },
414
- "summary": {
415
- "minMs": 66,
416
- "medianMs": 66.14999999850988,
417
- "meanMs": 66.14999999850988,
418
- "p95Ms": 66.29999999701977,
419
- "maxMs": 66.29999999701977
420
- },
421
- "messages": [],
422
- "validation": {
423
- "sampleCount": 6144,
424
- "meanAbsoluteError": 0.0000011096847932397698,
425
- "rootMeanSquaredError": 0.0000018071588418628667,
426
- "maxAbsoluteError": 0.000013589859008789062,
427
- "passed": true,
428
- "thresholds": {
429
- "maxMeanError": 0.0001,
430
- "maxAbsoluteError": 0.001
431
- }
432
- }
433
- },
434
- {
435
- "label": "WGSL FP16 Direct",
436
- "bundle": "current",
437
- "baseline": false,
438
- "precision": "fp16",
439
- "kernel": "direct",
440
- "initializationMs": 30.200000002980232,
441
- "timesMs": [
442
- 29.200000002980232,
443
- 30.5
444
- ],
445
- "executionProfile": {
446
- "totalMs": 29.442859000000002,
447
- "layers": [
448
- {
449
- "id": "input-pack",
450
- "durationMs": 0.044329
451
- },
452
- {
453
- "id": "enc_conv1a",
454
- "durationMs": 0.619642
455
- },
456
- {
457
- "id": "enc_conv1b",
458
- "durationMs": 3.825549
459
- },
460
- {
461
- "id": "pool1",
462
- "durationMs": 0.365836
463
- },
464
- {
465
- "id": "enc_conv2a",
466
- "durationMs": 1.165251
467
- },
468
- {
469
- "id": "enc_conv2b",
470
- "durationMs": 1.971289
471
- },
472
- {
473
- "id": "pool2",
474
- "durationMs": 0.049912
475
- },
476
- {
477
- "id": "enc_conv3a",
478
- "durationMs": 0.681843
479
- },
480
- {
481
- "id": "enc_conv3b",
482
- "durationMs": 0.834119
483
- },
484
- {
485
- "id": "pool3",
486
- "durationMs": 0.016415
487
- },
488
- {
489
- "id": "enc_conv4a",
490
- "durationMs": 0.343297
491
- },
492
- {
493
- "id": "enc_conv4b",
494
- "durationMs": 0.531361
495
- },
496
- {
497
- "id": "pool4",
498
- "durationMs": 0.012874
499
- },
500
- {
501
- "id": "enc_conv5a",
502
- "durationMs": 0.201521
503
- },
504
- {
505
- "id": "enc_conv5b",
506
- "durationMs": 0.411373
507
- },
508
- {
509
- "id": "dec_conv4a",
510
- "durationMs": 1.273156
511
- },
512
- {
513
- "id": "dec_conv4b",
514
- "durationMs": 0.537567
515
- },
516
- {
517
- "id": "dec_conv3a",
518
- "durationMs": 1.717192
519
- },
520
- {
521
- "id": "dec_conv3b",
522
- "durationMs": 0.836827
523
- },
524
- {
525
- "id": "dec_conv2a",
526
- "durationMs": 2.979724
527
- },
528
- {
529
- "id": "dec_conv2b",
530
- "durationMs": 2.637885
531
- },
532
- {
533
- "id": "dec_conv1a",
534
- "durationMs": 4.390531
535
- },
536
- {
537
- "id": "dec_conv1b",
538
- "durationMs": 3.799428
539
- },
540
- {
541
- "id": "dec_conv1c",
542
- "durationMs": 0.195938
543
- }
544
- ]
545
- },
546
- "runtimeInfo": {
547
- "configuredEngine": "wgsl",
548
- "gpuEngine": "wgsl",
549
- "precision": "fp16",
550
- "kernel": {
551
- "configured": "direct",
552
- "maxSpatialInputBlocks": 40,
553
- "subgroupsAvailable": false
554
- },
555
- "resources": {
556
- "live": 68,
557
- "created": 71,
558
- "destroyed": 3,
559
- "peakLive": 71,
560
- "pending": 0,
561
- "byKind": {
562
- "gpu-buffer": {
563
- "created": 70,
564
- "destroyed": 2,
565
- "live": 68,
566
- "peakLive": 70
567
- },
568
- "gpu-query-set": {
569
- "created": 1,
570
- "destroyed": 1,
571
- "live": 0,
572
- "peakLive": 1
573
- }
574
- }
575
- },
576
- "model": "oidn-unet-large-v1",
577
- "modelFamily": "oidn-unet-large",
578
- "inputChannels": 9,
579
- "dynamicTile": {
580
- "enabled": false,
581
- "currentTileSize": 512,
582
- "minTileSize": 256,
583
- "maxTileSize": 512,
584
- "targetTileTimeMs": 16
585
- },
586
- "lastExecution": {
587
- "width": 512,
588
- "height": 512,
589
- "tileWidth": 512,
590
- "tileHeight": 512,
591
- "tileCount": 1,
592
- "durationMs": 31,
593
- "tileTimeMs": {
594
- "min": 31,
595
- "median": 31,
596
- "mean": 31,
597
- "max": 31
598
- }
599
- }
600
- },
601
- "supportsFP16": true,
602
- "adapter": {
603
- "vendor": "apple",
604
- "architecture": "metal-3",
605
- "device": "",
606
- "description": ""
607
- },
608
- "summary": {
609
- "minMs": 29.200000002980232,
610
- "medianMs": 29.850000001490116,
611
- "meanMs": 29.850000001490116,
612
- "p95Ms": 30.5,
613
- "maxMs": 30.5
614
- },
615
- "messages": [],
616
- "validation": {
617
- "sampleCount": 6144,
618
- "meanAbsoluteError": 0.0010210334021394374,
619
- "rootMeanSquaredError": 0.001609680379854656,
620
- "maxAbsoluteError": 0.012395620346069336,
621
- "passed": true,
622
- "thresholds": {
623
- "maxMeanError": 0.005,
624
- "maxAbsoluteError": 0.05
625
- }
626
- }
627
- },
628
- {
629
- "label": "WGSL FP16 Implicit GEMM",
630
- "bundle": "current",
631
- "baseline": false,
632
- "precision": "fp16",
633
- "kernel": "implicit-gemm",
634
- "initializationMs": 29.700000002980232,
635
- "timesMs": [
636
- 30.400000005960464,
637
- 30.899999998509884
638
- ],
639
- "executionProfile": {
640
- "totalMs": 30.439662,
641
- "layers": [
642
- {
643
- "id": "input-pack",
644
- "durationMs": 0.044495
645
- },
646
- {
647
- "id": "enc_conv1a",
648
- "durationMs": 0.683927
649
- },
650
- {
651
- "id": "enc_conv1b",
652
- "durationMs": 3.514
653
- },
654
- {
655
- "id": "pool1",
656
- "durationMs": 0.36167
657
- },
658
- {
659
- "id": "enc_conv2a",
660
- "durationMs": 1.233493
661
- },
662
- {
663
- "id": "enc_conv2b",
664
- "durationMs": 1.753437
665
- },
666
- {
667
- "id": "pool2",
668
- "durationMs": 0.048995
669
- },
670
- {
671
- "id": "enc_conv3a",
672
- "durationMs": 0.618892
673
- },
674
- {
675
- "id": "enc_conv3b",
676
- "durationMs": 0.791665
677
- },
678
- {
679
- "id": "pool3",
680
- "durationMs": 0.015916
681
- },
682
- {
683
- "id": "enc_conv4a",
684
- "durationMs": 0.326298
685
- },
686
- {
687
- "id": "enc_conv4b",
688
- "durationMs": 0.509237
689
- },
690
- {
691
- "id": "pool4",
692
- "durationMs": 0.008665
693
- },
694
- {
695
- "id": "enc_conv5a",
696
- "durationMs": 0.232892
697
- },
698
- {
699
- "id": "enc_conv5b",
700
- "durationMs": 0.318175
701
- },
702
- {
703
- "id": "dec_conv4a",
704
- "durationMs": 1.265157
705
- },
706
- {
707
- "id": "dec_conv4b",
708
- "durationMs": 0.64818
709
- },
710
- {
711
- "id": "dec_conv3a",
712
- "durationMs": 1.89988
713
- },
714
- {
715
- "id": "dec_conv3b",
716
- "durationMs": 0.793248
717
- },
718
- {
719
- "id": "dec_conv2a",
720
- "durationMs": 3.58445
721
- },
722
- {
723
- "id": "dec_conv2b",
724
- "durationMs": 2.349082
725
- },
726
- {
727
- "id": "dec_conv1a",
728
- "durationMs": 5.723388
729
- },
730
- {
731
- "id": "dec_conv1b",
732
- "durationMs": 3.520082
733
- },
734
- {
735
- "id": "dec_conv1c",
736
- "durationMs": 0.194438
737
- }
738
- ]
739
- },
740
- "runtimeInfo": {
741
- "configuredEngine": "wgsl",
742
- "gpuEngine": "wgsl",
743
- "precision": "fp16",
744
- "kernel": {
745
- "configured": "implicit-gemm",
746
- "maxSpatialInputBlocks": 40,
747
- "subgroupsAvailable": false
748
- },
749
- "resources": {
750
- "live": 68,
751
- "created": 71,
752
- "destroyed": 3,
753
- "peakLive": 71,
754
- "pending": 0,
755
- "byKind": {
756
- "gpu-buffer": {
757
- "created": 70,
758
- "destroyed": 2,
759
- "live": 68,
760
- "peakLive": 70
761
- },
762
- "gpu-query-set": {
763
- "created": 1,
764
- "destroyed": 1,
765
- "live": 0,
766
- "peakLive": 1
767
- }
768
- }
769
- },
770
- "model": "oidn-unet-large-v1",
771
- "modelFamily": "oidn-unet-large",
772
- "inputChannels": 9,
773
- "dynamicTile": {
774
- "enabled": false,
775
- "currentTileSize": 512,
776
- "minTileSize": 256,
777
- "maxTileSize": 512,
778
- "targetTileTimeMs": 16
779
- },
780
- "lastExecution": {
781
- "width": 512,
782
- "height": 512,
783
- "tileWidth": 512,
784
- "tileHeight": 512,
785
- "tileCount": 1,
786
- "durationMs": 32,
787
- "tileTimeMs": {
788
- "min": 32,
789
- "median": 32,
790
- "mean": 32,
791
- "max": 32
792
- }
793
- }
794
- },
795
- "supportsFP16": true,
796
- "adapter": {
797
- "vendor": "apple",
798
- "architecture": "metal-3",
799
- "device": "",
800
- "description": ""
801
- },
802
- "summary": {
803
- "minMs": 30.400000005960464,
804
- "medianMs": 30.650000002235174,
805
- "meanMs": 30.650000002235174,
806
- "p95Ms": 30.899999998509884,
807
- "maxMs": 30.899999998509884
808
- },
809
- "messages": [],
810
- "validation": {
811
- "sampleCount": 6144,
812
- "meanAbsoluteError": 0.001559715069864372,
813
- "rootMeanSquaredError": 0.0025477948380839928,
814
- "maxAbsoluteError": 0.04479837417602539,
815
- "passed": true,
816
- "thresholds": {
817
- "maxMeanError": 0.005,
818
- "maxAbsoluteError": 0.05
819
- }
820
- }
821
- },
822
- {
823
- "label": "WGSL FP16 Spatial (experimental)",
824
- "bundle": "current",
825
- "baseline": false,
826
- "precision": "fp16",
827
- "kernel": "spatial",
828
- "initializationMs": 28.399999998509884,
829
- "timesMs": [
830
- 65.20000000298023,
831
- 65.39999999850988
832
- ],
833
- "executionProfile": {
834
- "totalMs": 64.73455,
835
- "layers": [
836
- {
837
- "id": "input-pack",
838
- "durationMs": 0.043747
839
- },
840
- {
841
- "id": "enc_conv1a",
842
- "durationMs": 0.714165
843
- },
844
- {
845
- "id": "enc_conv1b",
846
- "durationMs": 5.982135
847
- },
848
- {
849
- "id": "pool1",
850
- "durationMs": 0.357144
851
- },
852
- {
853
- "id": "enc_conv2a",
854
- "durationMs": 2.03446
855
- },
856
- {
857
- "id": "enc_conv2b",
858
- "durationMs": 4.923783
859
- },
860
- {
861
- "id": "pool2",
862
- "durationMs": 0.053372
863
- },
864
- {
865
- "id": "enc_conv3a",
866
- "durationMs": 1.431288
867
- },
868
- {
869
- "id": "enc_conv3b",
870
- "durationMs": 2.604091
871
- },
872
- {
873
- "id": "pool3",
874
- "durationMs": 0.016499
875
- },
876
- {
877
- "id": "enc_conv4a",
878
- "durationMs": 1.6354
879
- },
880
- {
881
- "id": "enc_conv4b",
882
- "durationMs": 0.638961
883
- },
884
- {
885
- "id": "pool4",
886
- "durationMs": 0.01125
887
- },
888
- {
889
- "id": "enc_conv5a",
890
- "durationMs": 0.187197
891
- },
892
- {
893
- "id": "enc_conv5b",
894
- "durationMs": 0.231569
895
- },
896
- {
897
- "id": "dec_conv4a",
898
- "durationMs": 0.966732
899
- },
900
- {
901
- "id": "dec_conv4b",
902
- "durationMs": 0.535508
903
- },
904
- {
905
- "id": "dec_conv3a",
906
- "durationMs": 1.705313
907
- },
908
- {
909
- "id": "dec_conv3b",
910
- "durationMs": 3.028815
911
- },
912
- {
913
- "id": "dec_conv2a",
914
- "durationMs": 3.433749
915
- },
916
- {
917
- "id": "dec_conv2b",
918
- "durationMs": 4.66734
919
- },
920
- {
921
- "id": "dec_conv1a",
922
- "durationMs": 23.200793
923
- },
924
- {
925
- "id": "dec_conv1b",
926
- "durationMs": 5.964969
927
- },
928
- {
929
- "id": "dec_conv1c",
930
- "durationMs": 0.36627
931
- }
932
- ]
933
- },
934
- "runtimeInfo": {
935
- "configuredEngine": "wgsl",
936
- "gpuEngine": "wgsl",
937
- "precision": "fp16",
938
- "kernel": {
939
- "configured": "spatial",
940
- "maxSpatialInputBlocks": 40,
941
- "subgroupsAvailable": false
942
- },
943
- "resources": {
944
- "live": 68,
945
- "created": 71,
946
- "destroyed": 3,
947
- "peakLive": 71,
948
- "pending": 0,
949
- "byKind": {
950
- "gpu-buffer": {
951
- "created": 70,
952
- "destroyed": 2,
953
- "live": 68,
954
- "peakLive": 70
955
- },
956
- "gpu-query-set": {
957
- "created": 1,
958
- "destroyed": 1,
959
- "live": 0,
960
- "peakLive": 1
961
- }
962
- }
963
- },
964
- "model": "oidn-unet-large-v1",
965
- "modelFamily": "oidn-unet-large",
966
- "inputChannels": 9,
967
- "dynamicTile": {
968
- "enabled": false,
969
- "currentTileSize": 512,
970
- "minTileSize": 256,
971
- "maxTileSize": 512,
972
- "targetTileTimeMs": 16
973
- },
974
- "lastExecution": {
975
- "width": 512,
976
- "height": 512,
977
- "tileWidth": 512,
978
- "tileHeight": 512,
979
- "tileCount": 1,
980
- "durationMs": 66.39999999850988,
981
- "tileTimeMs": {
982
- "min": 66.39999999850988,
983
- "median": 66.39999999850988,
984
- "mean": 66.39999999850988,
985
- "max": 66.39999999850988
986
- }
987
- }
988
- },
989
- "supportsFP16": true,
990
- "adapter": {
991
- "vendor": "apple",
992
- "architecture": "metal-3",
993
- "device": "",
994
- "description": ""
995
- },
996
- "summary": {
997
- "minMs": 65.20000000298023,
998
- "medianMs": 65.30000000074506,
999
- "meanMs": 65.30000000074506,
1000
- "p95Ms": 65.39999999850988,
1001
- "maxMs": 65.39999999850988
1002
- },
1003
- "messages": [],
1004
- "validation": {
1005
- "sampleCount": 6144,
1006
- "meanAbsoluteError": 0.0010210334021394374,
1007
- "rootMeanSquaredError": 0.001609680379854656,
1008
- "maxAbsoluteError": 0.012395620346069336,
1009
- "passed": true,
1010
- "thresholds": {
1011
- "maxMeanError": 0.005,
1012
- "maxAbsoluteError": 0.05
1013
- }
1014
- }
1015
- },
1016
- {
1017
- "label": "WGSL FP16 Subgroup (experimental)",
1018
- "bundle": "current",
1019
- "baseline": false,
1020
- "precision": "fp16",
1021
- "kernel": "subgroup",
1022
- "initializationMs": 29.200000002980232,
1023
- "timesMs": [
1024
- 31.200000002980232,
1025
- 30.799999997019768
1026
- ],
1027
- "executionProfile": {
1028
- "totalMs": 30.012249,
1029
- "layers": [
1030
- {
1031
- "id": "input-pack",
1032
- "durationMs": 0.044661
1033
- },
1034
- {
1035
- "id": "enc_conv1a",
1036
- "durationMs": 0.740129
1037
- },
1038
- {
1039
- "id": "enc_conv1b",
1040
- "durationMs": 3.366182
1041
- },
1042
- {
1043
- "id": "pool1",
1044
- "durationMs": 0.337005
1045
- },
1046
- {
1047
- "id": "enc_conv2a",
1048
- "durationMs": 1.26674
1049
- },
1050
- {
1051
- "id": "enc_conv2b",
1052
- "durationMs": 2.516648
1053
- },
1054
- {
1055
- "id": "pool2",
1056
- "durationMs": 0.199895
1057
- },
1058
- {
1059
- "id": "enc_conv3a",
1060
- "durationMs": 0.757586
1061
- },
1062
- {
1063
- "id": "enc_conv3b",
1064
- "durationMs": 0.925152
1065
- },
1066
- {
1067
- "id": "pool3",
1068
- "durationMs": 0.016873
1069
- },
1070
- {
1071
- "id": "enc_conv4a",
1072
- "durationMs": 0.378001
1073
- },
1074
- {
1075
- "id": "enc_conv4b",
1076
- "durationMs": 0.562065
1077
- },
1078
- {
1079
- "id": "pool4",
1080
- "durationMs": 0.014082
1081
- },
1082
- {
1083
- "id": "enc_conv5a",
1084
- "durationMs": 0.201353
1085
- },
1086
- {
1087
- "id": "enc_conv5b",
1088
- "durationMs": 0.257765
1089
- },
1090
- {
1091
- "id": "dec_conv4a",
1092
- "durationMs": 0.94744
1093
- },
1094
- {
1095
- "id": "dec_conv4b",
1096
- "durationMs": 0.571856
1097
- },
1098
- {
1099
- "id": "dec_conv3a",
1100
- "durationMs": 1.701026
1101
- },
1102
- {
1103
- "id": "dec_conv3b",
1104
- "durationMs": 1.517546
1105
- },
1106
- {
1107
- "id": "dec_conv2a",
1108
- "durationMs": 2.988889
1109
- },
1110
- {
1111
- "id": "dec_conv2b",
1112
- "durationMs": 2.028992
1113
- },
1114
- {
1115
- "id": "dec_conv1a",
1116
- "durationMs": 5.077623
1117
- },
1118
- {
1119
- "id": "dec_conv1b",
1120
- "durationMs": 3.369806
1121
- },
1122
- {
1123
- "id": "dec_conv1c",
1124
- "durationMs": 0.224934
1125
- }
1126
- ]
1127
- },
1128
- "runtimeInfo": {
1129
- "configuredEngine": "wgsl",
1130
- "gpuEngine": "wgsl",
1131
- "precision": "fp16",
1132
- "kernel": {
1133
- "configured": "subgroup",
1134
- "maxSpatialInputBlocks": 40,
1135
- "subgroupsAvailable": true
1136
- },
1137
- "resources": {
1138
- "live": 68,
1139
- "created": 71,
1140
- "destroyed": 3,
1141
- "peakLive": 71,
1142
- "pending": 0,
1143
- "byKind": {
1144
- "gpu-buffer": {
1145
- "created": 70,
1146
- "destroyed": 2,
1147
- "live": 68,
1148
- "peakLive": 70
1149
- },
1150
- "gpu-query-set": {
1151
- "created": 1,
1152
- "destroyed": 1,
1153
- "live": 0,
1154
- "peakLive": 1
1155
- }
1156
- }
1157
- },
1158
- "model": "oidn-unet-large-v1",
1159
- "modelFamily": "oidn-unet-large",
1160
- "inputChannels": 9,
1161
- "dynamicTile": {
1162
- "enabled": false,
1163
- "currentTileSize": 512,
1164
- "minTileSize": 256,
1165
- "maxTileSize": 512,
1166
- "targetTileTimeMs": 16
1167
- },
1168
- "lastExecution": {
1169
- "width": 512,
1170
- "height": 512,
1171
- "tileWidth": 512,
1172
- "tileHeight": 512,
1173
- "tileCount": 1,
1174
- "durationMs": 31.700000002980232,
1175
- "tileTimeMs": {
1176
- "min": 31.700000002980232,
1177
- "median": 31.700000002980232,
1178
- "mean": 31.700000002980232,
1179
- "max": 31.700000002980232
1180
- }
1181
- }
1182
- },
1183
- "supportsFP16": true,
1184
- "adapter": {
1185
- "vendor": "apple",
1186
- "architecture": "metal-3",
1187
- "device": "",
1188
- "description": ""
1189
- },
1190
- "summary": {
1191
- "minMs": 30.799999997019768,
1192
- "medianMs": 31,
1193
- "meanMs": 31,
1194
- "p95Ms": 31.200000002980232,
1195
- "maxMs": 31.200000002980232
1196
- },
1197
- "messages": [],
1198
- "validation": {
1199
- "sampleCount": 6144,
1200
- "meanAbsoluteError": 0.0010210334021394374,
1201
- "rootMeanSquaredError": 0.001609680379854656,
1202
- "maxAbsoluteError": 0.012395620346069336,
1203
- "passed": true,
1204
- "thresholds": {
1205
- "maxMeanError": 0.005,
1206
- "maxAbsoluteError": 0.05
1207
- }
1208
- }
1209
- },
1210
- {
1211
- "label": "WGSL INT8 weights / FP16 activations (experimental)",
1212
- "bundle": "current",
1213
- "baseline": false,
1214
- "precision": "int8",
1215
- "initializationMs": 41.5,
1216
- "timesMs": [
1217
- 101,
1218
- 100.90000000596046
1219
- ],
1220
- "executionProfile": {
1221
- "totalMs": 100.45182199999999,
1222
- "layers": [
1223
- {
1224
- "id": "input-pack",
1225
- "durationMs": 0.252781
1226
- },
1227
- {
1228
- "id": "enc_conv1a",
1229
- "durationMs": 2.051448
1230
- },
1231
- {
1232
- "id": "enc_conv1b",
1233
- "durationMs": 11.513307
1234
- },
1235
- {
1236
- "id": "pool1",
1237
- "durationMs": 0.353066
1238
- },
1239
- {
1240
- "id": "enc_conv2a",
1241
- "durationMs": 4.087647
1242
- },
1243
- {
1244
- "id": "enc_conv2b",
1245
- "durationMs": 6.661987
1246
- },
1247
- {
1248
- "id": "pool2",
1249
- "durationMs": 0.357943
1250
- },
1251
- {
1252
- "id": "enc_conv3a",
1253
- "durationMs": 2.401307
1254
- },
1255
- {
1256
- "id": "enc_conv3b",
1257
- "durationMs": 2.735334
1258
- },
1259
- {
1260
- "id": "pool3",
1261
- "durationMs": 0.016791
1262
- },
1263
- {
1264
- "id": "enc_conv4a",
1265
- "durationMs": 1.038537
1266
- },
1267
- {
1268
- "id": "enc_conv4b",
1269
- "durationMs": 1.552179
1270
- },
1271
- {
1272
- "id": "pool4",
1273
- "durationMs": 0.010749
1274
- },
1275
- {
1276
- "id": "enc_conv5a",
1277
- "durationMs": 0.543142
1278
- },
1279
- {
1280
- "id": "enc_conv5b",
1281
- "durationMs": 0.788422
1282
- },
1283
- {
1284
- "id": "dec_conv4a",
1285
- "durationMs": 3.426426
1286
- },
1287
- {
1288
- "id": "dec_conv4b",
1289
- "durationMs": 1.552804
1290
- },
1291
- {
1292
- "id": "dec_conv3a",
1293
- "durationMs": 6.609281
1294
- },
1295
- {
1296
- "id": "dec_conv3b",
1297
- "durationMs": 2.738582
1298
- },
1299
- {
1300
- "id": "dec_conv2a",
1301
- "durationMs": 13.259643
1302
- },
1303
- {
1304
- "id": "dec_conv2b",
1305
- "durationMs": 6.629821
1306
- },
1307
- {
1308
- "id": "dec_conv1a",
1309
- "durationMs": 19.208996
1310
- },
1311
- {
1312
- "id": "dec_conv1b",
1313
- "durationMs": 11.794502
1314
- },
1315
- {
1316
- "id": "dec_conv1c",
1317
- "durationMs": 0.867127
1318
- }
1319
- ]
1320
- },
1321
- "runtimeInfo": {
1322
- "configuredEngine": "wgsl",
1323
- "gpuEngine": "wgsl",
1324
- "precision": "int8",
1325
- "kernel": {
1326
- "configured": "auto",
1327
- "maxSpatialInputBlocks": 0,
1328
- "subgroupsAvailable": false
1329
- },
1330
- "resources": {
1331
- "live": 87,
1332
- "created": 90,
1333
- "destroyed": 3,
1334
- "peakLive": 90,
1335
- "pending": 0,
1336
- "byKind": {
1337
- "gpu-buffer": {
1338
- "created": 89,
1339
- "destroyed": 2,
1340
- "live": 87,
1341
- "peakLive": 89
1342
- },
1343
- "gpu-query-set": {
1344
- "created": 1,
1345
- "destroyed": 1,
1346
- "live": 0,
1347
- "peakLive": 1
1348
- }
1349
- }
1350
- },
1351
- "model": "oidn-unet-large-v1",
1352
- "modelFamily": "oidn-unet-large",
1353
- "inputChannels": 9,
1354
- "dynamicTile": {
1355
- "enabled": false,
1356
- "currentTileSize": 512,
1357
- "minTileSize": 256,
1358
- "maxTileSize": 512,
1359
- "targetTileTimeMs": 16
1360
- },
1361
- "lastExecution": {
1362
- "width": 512,
1363
- "height": 512,
1364
- "tileWidth": 512,
1365
- "tileHeight": 512,
1366
- "tileCount": 1,
1367
- "durationMs": 102.40000000596046,
1368
- "tileTimeMs": {
1369
- "min": 102.40000000596046,
1370
- "median": 102.40000000596046,
1371
- "mean": 102.40000000596046,
1372
- "max": 102.40000000596046
1373
- }
1374
- }
1375
- },
1376
- "supportsFP16": true,
1377
- "adapter": {
1378
- "vendor": "apple",
1379
- "architecture": "metal-3",
1380
- "device": "",
1381
- "description": ""
1382
- },
1383
- "summary": {
1384
- "minMs": 100.90000000596046,
1385
- "medianMs": 100.95000000298023,
1386
- "meanMs": 100.95000000298023,
1387
- "p95Ms": 101,
1388
- "maxMs": 101
1389
- },
1390
- "messages": [],
1391
- "validation": {
1392
- "sampleCount": 6144,
1393
- "meanAbsoluteError": 0.048552351923111324,
1394
- "rootMeanSquaredError": 0.06775677491006697,
1395
- "maxAbsoluteError": 0.3455777168273926,
1396
- "passed": true,
1397
- "thresholds": {
1398
- "maxMeanError": 0.1,
1399
- "maxAbsoluteError": 1
1400
- }
1401
- }
1402
- },
1403
- {
1404
- "label": "WebNN FP16 (experimental)",
1405
- "bundle": "current",
1406
- "baseline": false,
1407
- "precision": "fp16",
1408
- "engine": "webnn",
1409
- "skipped": "Error: WebNN FP16 WebGPU interop failed: NotSupportedError: Failed to execute 'createExportableTensor' on 'MLContext': WebGPU Interop is not supported.",
1410
- "messages": []
1411
- }
1412
- ]
1413
- }