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,575 +0,0 @@
1
- {
2
- "generatedAt": "2026-08-20T04:48:54.112Z",
3
- "currentCommit": "e6b8577b1c69cc8ce979022717984aec5b9ea881",
4
- "baselineCommit": "136c00c34aa5cf4561b4137034dbd643177f0a5f",
5
- "settings": {
6
- "width": 512,
7
- "height": 512,
8
- "tileSize": 512,
9
- "warmup": 2,
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,
27
- "timesMs": [
28
- 37.5,
29
- 37,
30
- 37.100000001490116,
31
- 37.29999999701977,
32
- 37.70000000298023
33
- ],
34
- "supportsFP16": true,
35
- "adapter": {
36
- "vendor": "apple",
37
- "architecture": "metal-3",
38
- "device": "",
39
- "description": ""
40
- },
41
- "summary": {
42
- "minMs": 37,
43
- "medianMs": 37.29999999701977,
44
- "meanMs": 37.32000000029802,
45
- "p95Ms": 37.70000000298023,
46
- "maxMs": 37.70000000298023
47
- },
48
- "messages": []
49
- },
50
- {
51
- "label": "WGSL FP32",
52
- "bundle": "current",
53
- "baseline": false,
54
- "precision": "fp32",
55
- "initializationMs": 38.600000001490116,
56
- "timesMs": [
57
- 37.900000005960464,
58
- 38,
59
- 37.29999999701977,
60
- 38.100000001490116,
61
- 37.29999999701977
62
- ],
63
- "executionProfile": {
64
- "totalMs": 37.46062,
65
- "layers": [
66
- {
67
- "id": "input-pack",
68
- "durationMs": 0.051206
69
- },
70
- {
71
- "id": "enc_conv1a",
72
- "durationMs": 1.406145
73
- },
74
- {
75
- "id": "enc_conv1b",
76
- "durationMs": 3.828992
77
- },
78
- {
79
- "id": "pool1",
80
- "durationMs": 0.417481
81
- },
82
- {
83
- "id": "enc_conv2a",
84
- "durationMs": 1.402811
85
- },
86
- {
87
- "id": "enc_conv2b",
88
- "durationMs": 2.168693
89
- },
90
- {
91
- "id": "pool2",
92
- "durationMs": 0.39194
93
- },
94
- {
95
- "id": "enc_conv3a",
96
- "durationMs": 0.943749
97
- },
98
- {
99
- "id": "enc_conv3b",
100
- "durationMs": 0.996538
101
- },
102
- {
103
- "id": "pool3",
104
- "durationMs": 0.018374
105
- },
106
- {
107
- "id": "enc_conv4a",
108
- "durationMs": 0.399774
109
- },
110
- {
111
- "id": "enc_conv4b",
112
- "durationMs": 0.609222
113
- },
114
- {
115
- "id": "pool4",
116
- "durationMs": 0.008582
117
- },
118
- {
119
- "id": "enc_conv5a",
120
- "durationMs": 0.256989
121
- },
122
- {
123
- "id": "enc_conv5b",
124
- "durationMs": 0.337401
125
- },
126
- {
127
- "id": "dec_conv4a",
128
- "durationMs": 1.243484
129
- },
130
- {
131
- "id": "dec_conv4b",
132
- "durationMs": 0.609264
133
- },
134
- {
135
- "id": "dec_conv3a",
136
- "durationMs": 2.330977
137
- },
138
- {
139
- "id": "dec_conv3b",
140
- "durationMs": 1.270983
141
- },
142
- {
143
- "id": "dec_conv2a",
144
- "durationMs": 4.547001
145
- },
146
- {
147
- "id": "dec_conv2b",
148
- "durationMs": 2.158151
149
- },
150
- {
151
- "id": "dec_conv1a",
152
- "durationMs": 7.394786
153
- },
154
- {
155
- "id": "dec_conv1b",
156
- "durationMs": 4.171225
157
- },
158
- {
159
- "id": "dec_conv1c",
160
- "durationMs": 0.496852
161
- }
162
- ]
163
- },
164
- "runtimeInfo": {
165
- "configuredEngine": "wgsl",
166
- "gpuEngine": "wgsl",
167
- "precision": "fp32",
168
- "kernel": {
169
- "configured": "auto",
170
- "maxSpatialInputBlocks": 0
171
- },
172
- "model": "oidn-unet-large-v1",
173
- "modelFamily": "oidn-unet-large",
174
- "inputChannels": 9,
175
- "dynamicTile": {
176
- "enabled": false,
177
- "currentTileSize": 512,
178
- "minTileSize": 256,
179
- "maxTileSize": 512,
180
- "targetTileTimeMs": 16
181
- },
182
- "lastExecution": {
183
- "width": 512,
184
- "height": 512,
185
- "tileWidth": 512,
186
- "tileHeight": 512,
187
- "tileCount": 1,
188
- "durationMs": 39.20000000298023,
189
- "tileTimeMs": {
190
- "min": 39.20000000298023,
191
- "median": 39.20000000298023,
192
- "mean": 39.20000000298023,
193
- "max": 39.20000000298023
194
- }
195
- }
196
- },
197
- "supportsFP16": true,
198
- "adapter": {
199
- "vendor": "apple",
200
- "architecture": "metal-3",
201
- "device": "",
202
- "description": ""
203
- },
204
- "summary": {
205
- "minMs": 37.29999999701977,
206
- "medianMs": 37.900000005960464,
207
- "meanMs": 37.72000000029802,
208
- "p95Ms": 38.100000001490116,
209
- "maxMs": 38.100000001490116
210
- },
211
- "messages": [],
212
- "validation": {
213
- "sampleCount": 6144,
214
- "meanAbsoluteError": 0.0000011096847932397698,
215
- "rootMeanSquaredError": 0.0000018071588418628667,
216
- "maxAbsoluteError": 0.000013589859008789062,
217
- "passed": true,
218
- "thresholds": {
219
- "maxMeanError": 0.0001,
220
- "maxAbsoluteError": 0.001
221
- }
222
- }
223
- },
224
- {
225
- "label": "WGSL FP16 Direct",
226
- "bundle": "current",
227
- "baseline": false,
228
- "precision": "fp16",
229
- "kernel": "direct",
230
- "initializationMs": 30.69999999552965,
231
- "timesMs": [
232
- 30.299999997019768,
233
- 30.30000000447035,
234
- 29.399999998509884,
235
- 30.100000001490116,
236
- 29.899999998509884
237
- ],
238
- "executionProfile": {
239
- "totalMs": 29.140974999999997,
240
- "layers": [
241
- {
242
- "id": "input-pack",
243
- "durationMs": 0.446681
244
- },
245
- {
246
- "id": "enc_conv1a",
247
- "durationMs": 0.634003
248
- },
249
- {
250
- "id": "enc_conv1b",
251
- "durationMs": 3.123184
252
- },
253
- {
254
- "id": "pool1",
255
- "durationMs": 0.337396
256
- },
257
- {
258
- "id": "enc_conv2a",
259
- "durationMs": 1.162887
260
- },
261
- {
262
- "id": "enc_conv2b",
263
- "durationMs": 1.97238
264
- },
265
- {
266
- "id": "pool2",
267
- "durationMs": 0.050289
268
- },
269
- {
270
- "id": "enc_conv3a",
271
- "durationMs": 1.250132
272
- },
273
- {
274
- "id": "enc_conv3b",
275
- "durationMs": 0.896529
276
- },
277
- {
278
- "id": "pool3",
279
- "durationMs": 0.018166
280
- },
281
- {
282
- "id": "enc_conv4a",
283
- "durationMs": 0.342479
284
- },
285
- {
286
- "id": "enc_conv4b",
287
- "durationMs": 0.531717
288
- },
289
- {
290
- "id": "pool4",
291
- "durationMs": 0.010958
292
- },
293
- {
294
- "id": "enc_conv5a",
295
- "durationMs": 0.187323
296
- },
297
- {
298
- "id": "enc_conv5b",
299
- "durationMs": 0.23082
300
- },
301
- {
302
- "id": "dec_conv4a",
303
- "durationMs": 0.945734
304
- },
305
- {
306
- "id": "dec_conv4b",
307
- "durationMs": 0.535134
308
- },
309
- {
310
- "id": "dec_conv3a",
311
- "durationMs": 1.69773
312
- },
313
- {
314
- "id": "dec_conv3b",
315
- "durationMs": 0.835783
316
- },
317
- {
318
- "id": "dec_conv2a",
319
- "durationMs": 3.644611
320
- },
321
- {
322
- "id": "dec_conv2b",
323
- "durationMs": 1.975421
324
- },
325
- {
326
- "id": "dec_conv1a",
327
- "durationMs": 5.004736
328
- },
329
- {
330
- "id": "dec_conv1b",
331
- "durationMs": 3.114102
332
- },
333
- {
334
- "id": "dec_conv1c",
335
- "durationMs": 0.19278
336
- }
337
- ]
338
- },
339
- "runtimeInfo": {
340
- "configuredEngine": "wgsl",
341
- "gpuEngine": "wgsl",
342
- "precision": "fp16",
343
- "kernel": {
344
- "configured": "direct",
345
- "maxSpatialInputBlocks": 40
346
- },
347
- "model": "oidn-unet-large-v1",
348
- "modelFamily": "oidn-unet-large",
349
- "inputChannels": 9,
350
- "dynamicTile": {
351
- "enabled": false,
352
- "currentTileSize": 512,
353
- "minTileSize": 256,
354
- "maxTileSize": 512,
355
- "targetTileTimeMs": 16
356
- },
357
- "lastExecution": {
358
- "width": 512,
359
- "height": 512,
360
- "tileWidth": 512,
361
- "tileHeight": 512,
362
- "tileCount": 1,
363
- "durationMs": 30.69999999552965,
364
- "tileTimeMs": {
365
- "min": 30.69999999552965,
366
- "median": 30.69999999552965,
367
- "mean": 30.69999999552965,
368
- "max": 30.69999999552965
369
- }
370
- }
371
- },
372
- "supportsFP16": true,
373
- "adapter": {
374
- "vendor": "apple",
375
- "architecture": "metal-3",
376
- "device": "",
377
- "description": ""
378
- },
379
- "summary": {
380
- "minMs": 29.399999998509884,
381
- "medianMs": 30.100000001490116,
382
- "meanMs": 30,
383
- "p95Ms": 30.30000000447035,
384
- "maxMs": 30.30000000447035
385
- },
386
- "messages": [],
387
- "validation": {
388
- "sampleCount": 6144,
389
- "meanAbsoluteError": 0.0010210334021394374,
390
- "rootMeanSquaredError": 0.001609680379854656,
391
- "maxAbsoluteError": 0.012395620346069336,
392
- "passed": true,
393
- "thresholds": {
394
- "maxMeanError": 0.005,
395
- "maxAbsoluteError": 0.05
396
- }
397
- }
398
- },
399
- {
400
- "label": "WGSL FP16 Adaptive",
401
- "bundle": "current",
402
- "baseline": false,
403
- "precision": "fp16",
404
- "kernel": "auto",
405
- "initializationMs": 123.89999999850988,
406
- "timesMs": [
407
- 65.89999999850988,
408
- 65.60000000149012,
409
- 64.5,
410
- 65.5,
411
- 65.20000000298023
412
- ],
413
- "executionProfile": {
414
- "totalMs": 65.040055,
415
- "layers": [
416
- {
417
- "id": "input-pack",
418
- "durationMs": 0.044998
419
- },
420
- {
421
- "id": "enc_conv1a",
422
- "durationMs": 0.720644
423
- },
424
- {
425
- "id": "enc_conv1b",
426
- "durationMs": 6.022776
427
- },
428
- {
429
- "id": "pool1",
430
- "durationMs": 0.34803
431
- },
432
- {
433
- "id": "enc_conv2a",
434
- "durationMs": 2.047354
435
- },
436
- {
437
- "id": "enc_conv2b",
438
- "durationMs": 4.902892
439
- },
440
- {
441
- "id": "pool2",
442
- "durationMs": 0.054665
443
- },
444
- {
445
- "id": "enc_conv3a",
446
- "durationMs": 1.430082
447
- },
448
- {
449
- "id": "enc_conv3b",
450
- "durationMs": 2.580421
451
- },
452
- {
453
- "id": "pool3",
454
- "durationMs": 0.015666
455
- },
456
- {
457
- "id": "enc_conv4a",
458
- "durationMs": 1.410749
459
- },
460
- {
461
- "id": "enc_conv4b",
462
- "durationMs": 0.933222
463
- },
464
- {
465
- "id": "pool4",
466
- "durationMs": 0.053623
467
- },
468
- {
469
- "id": "enc_conv5a",
470
- "durationMs": 0.191161
471
- },
472
- {
473
- "id": "enc_conv5b",
474
- "durationMs": 0.237993
475
- },
476
- {
477
- "id": "dec_conv4a",
478
- "durationMs": 0.96847
479
- },
480
- {
481
- "id": "dec_conv4b",
482
- "durationMs": 0.535859
483
- },
484
- {
485
- "id": "dec_conv3a",
486
- "durationMs": 1.717239
487
- },
488
- {
489
- "id": "dec_conv3b",
490
- "durationMs": 2.881037
491
- },
492
- {
493
- "id": "dec_conv2a",
494
- "durationMs": 3.642306
495
- },
496
- {
497
- "id": "dec_conv2b",
498
- "durationMs": 4.314618
499
- },
500
- {
501
- "id": "dec_conv1a",
502
- "durationMs": 23.615654
503
- },
504
- {
505
- "id": "dec_conv1b",
506
- "durationMs": 6.005524
507
- },
508
- {
509
- "id": "dec_conv1c",
510
- "durationMs": 0.365072
511
- }
512
- ]
513
- },
514
- "runtimeInfo": {
515
- "configuredEngine": "wgsl",
516
- "gpuEngine": "wgsl",
517
- "precision": "fp16",
518
- "kernel": {
519
- "configured": "auto",
520
- "maxSpatialInputBlocks": 40
521
- },
522
- "model": "oidn-unet-large-v1",
523
- "modelFamily": "oidn-unet-large",
524
- "inputChannels": 9,
525
- "dynamicTile": {
526
- "enabled": false,
527
- "currentTileSize": 512,
528
- "minTileSize": 256,
529
- "maxTileSize": 512,
530
- "targetTileTimeMs": 16
531
- },
532
- "lastExecution": {
533
- "width": 512,
534
- "height": 512,
535
- "tileWidth": 512,
536
- "tileHeight": 512,
537
- "tileCount": 1,
538
- "durationMs": 66.60000000149012,
539
- "tileTimeMs": {
540
- "min": 66.60000000149012,
541
- "median": 66.60000000149012,
542
- "mean": 66.60000000149012,
543
- "max": 66.60000000149012
544
- }
545
- }
546
- },
547
- "supportsFP16": true,
548
- "adapter": {
549
- "vendor": "apple",
550
- "architecture": "metal-3",
551
- "device": "",
552
- "description": ""
553
- },
554
- "summary": {
555
- "minMs": 64.5,
556
- "medianMs": 65.5,
557
- "meanMs": 65.34000000059605,
558
- "p95Ms": 65.89999999850988,
559
- "maxMs": 65.89999999850988
560
- },
561
- "messages": [],
562
- "validation": {
563
- "sampleCount": 6144,
564
- "meanAbsoluteError": 0.0010210334021394374,
565
- "rootMeanSquaredError": 0.001609680379854656,
566
- "maxAbsoluteError": 0.012395620346069336,
567
- "passed": true,
568
- "thresholds": {
569
- "maxMeanError": 0.005,
570
- "maxAbsoluteError": 0.05
571
- }
572
- }
573
- }
574
- ]
575
- }
@@ -1,61 +0,0 @@
1
- # oidn-web benchmark
2
-
3
- - Current: `e6b8577b1c69cc8ce979022717984aec5b9ea881`
4
- - TFJS baseline: `136c00c34aa5cf4561b4137034dbd643177f0a5f`
5
- - Input: 512x512, fixed tile 512, 5 runs after 2 warmup(s)
6
- - Adapter: apple
7
-
8
- | Runtime | Init ms | Median ms | P95 ms | Speedup | Precision |
9
- | --- | ---: | ---: | ---: | ---: | --- |
10
- | TFJS (136c00c) | 9.00 | 37.30 | 37.70 | 1.00x | fp32 |
11
- | WGSL FP32 | 38.60 | 37.90 | 38.10 | 0.98x | fp32 |
12
- | WGSL FP16 Direct | 30.70 | 30.10 | 30.30 | 1.24x | fp16 |
13
- | WGSL FP16 Adaptive | 123.90 | 65.50 | 65.90 | 0.57x | fp16 |
14
-
15
- ## Output validation
16
-
17
- Compared against sampled TFJS FP32 output.
18
-
19
- | Runtime | Status | MAE | RMSE | Max error | Samples |
20
- | --- | --- | ---: | ---: | ---: | ---: |
21
- | WGSL FP32 | pass | 1.11e-6 | 1.81e-6 | 1.36e-5 | 6144 |
22
- | WGSL FP16 Direct | pass | 1.02e-3 | 1.61e-3 | 1.24e-2 | 6144 |
23
- | WGSL FP16 Adaptive | pass | 1.02e-3 | 1.61e-3 | 1.24e-2 | 6144 |
24
-
25
- ## GPU hot layers
26
-
27
- ### WGSL FP32
28
-
29
- Profiled GPU total: 37.46 ms
30
-
31
- | Node | GPU ms |
32
- | --- | ---: |
33
- | dec_conv1a | 7.39 |
34
- | dec_conv2a | 4.55 |
35
- | dec_conv1b | 4.17 |
36
- | enc_conv1b | 3.83 |
37
- | dec_conv3a | 2.33 |
38
-
39
- ### WGSL FP16 Direct
40
-
41
- Profiled GPU total: 29.14 ms
42
-
43
- | Node | GPU ms |
44
- | --- | ---: |
45
- | dec_conv1a | 5.00 |
46
- | dec_conv2a | 3.64 |
47
- | enc_conv1b | 3.12 |
48
- | dec_conv1b | 3.11 |
49
- | dec_conv2b | 1.98 |
50
-
51
- ### WGSL FP16 Adaptive
52
-
53
- Profiled GPU total: 65.04 ms
54
-
55
- | Node | GPU ms |
56
- | --- | ---: |
57
- | dec_conv1a | 23.62 |
58
- | enc_conv1b | 6.02 |
59
- | dec_conv1b | 6.01 |
60
- | enc_conv2b | 4.90 |
61
- | dec_conv2b | 4.31 |