Fast-ACVNet
A stereo network by Gangwei Xu et al. that uses attention-selected disparities and a MobileNetV2 backbone, in a base and a plus version. Commercially usable.
Commercial use: yes.
| variant | input | backend | time (ms) | peak memory (MiB, allocated / reserved) |
|---|---|---|---|---|
fast-acvnet-generalization | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels | 101 60.6 54.7 38.2 | 1784 / 1878 1421 / 1506 664 / 736 739 / 1042 |
fast-acvnet-plus-generalization | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels | 138 80.9 70.6 46.4 | 1861 / 1978 1441 / 1522 662 / 756 790 / 1120 |
Details
- Original code: https://github.com/gangweix/Fast-ACVNet at
61d5375e1816 - Code licence: MIT (permissive); files:
LICENSE - Weights licence: MIT (assumed from code)
- Licence evidence: https://github.com/gangweix/Fast-ACVNet/blob/61d5375e1816f124f4417cea506eeaddac1504e4/LICENSE.md
- Training data: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa)
fast-acvnet-kitti12: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI 2012)fast-acvnet-kitti15: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI 2015)fast-acvnet-plus-kitti12: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI 2012)fast-acvnet-plus-kitti15: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI 2015)
- Options:
cuda_graphs= True (speed only) - Kernel libraries:
igev,cutlass_conv,cudnn_hacc - Variants:
fast-acvnet-generalization,fast-acvnet-sceneflow,fast-acvnet-kitti12,fast-acvnet-kitti15,fast-acvnet-plus-generalization,fast-acvnet-plus-sceneflow,fast-acvnet-plus-kitti12,fast-acvnet-plus-kitti15 - Outputs: disparity
- Input size: any H x W >= 32, padded to a multiple of 32
- Tested up to (portable, fp16, RTX 5060 Ti 16 GB):
fast-acvnet-generalization3000x4000 (5.0 GiB peak allocated, 7.9 reserved);fast-acvnet-sceneflow3000x4000 (5.0 GiB peak allocated, 7.9 reserved);fast-acvnet-kitti123000x4000 (5.0 GiB peak allocated, 7.9 reserved);fast-acvnet-kitti153000x4000 (5.0 GiB peak allocated, 7.9 reserved);fast-acvnet-plus-generalization3000x4000 (4.9 GiB peak allocated, 7.9 reserved);fast-acvnet-plus-sceneflow3000x4000 (4.9 GiB peak allocated, 7.9 reserved);fast-acvnet-plus-kitti123000x4000 (4.9 GiB peak allocated, 7.9 reserved);fast-acvnet-plus-kitti153000x4000 (4.9 GiB peak allocated, 7.9 reserved) fast-acvnet-sceneflow,fast-acvnet-kitti12,fast-acvnet-kitti15: same network and settings asfast-acvnet-generalization, measured once (rows not repeated).fast-acvnet-plus-sceneflow,fast-acvnet-plus-kitti12,fast-acvnet-plus-kitti15: same network and settings asfast-acvnet-plus-generalization, measured once (rows not repeated).fast-acvnet-generalizationoriginal 994x1482: torch.autocast(fp16) around the forwardfast-acvnet-generalizationportable 994x1482, kernels 994x1482: measured on fast-acvnet-sceneflow (same architecture, other checkpoint)fast-acvnet-plus-generalizationoriginal 994x1482: torch.autocast(fp16) around the forwardfast-acvnet-plus-generalizationportable 994x1482, kernels 994x1482: measured on fast-acvnet-plus-sceneflow (same architecture, other checkpoint)fast-acvnet-generalizationload / first call: original 0.24 s / 1.732 s (375x1242), portable 0.18 s / 0.079† s, kernels 0.2† s / 0.043† sfast-acvnet-sceneflowload / first call: original 0.24 s / 1.732 s (375x1242), portable 0.18 s / 0.079† s, kernels 0.2† s / 0.043† sfast-acvnet-kitti12load / first call: original 0.24 s / 1.732 s (375x1242), portable 0.18 s / 0.079† s, kernels 0.2† s / 0.043† sfast-acvnet-kitti15load / first call: original 0.24 s / 1.732 s (375x1242), portable 0.18 s / 0.079† s, kernels 0.2† s / 0.043† sfast-acvnet-plus-generalizationload / first call: original 0.23 s / 0.037 s (375x1242), portable 0.1 s / 0.071† s, kernels 0.1† s / 0.047† sfast-acvnet-plus-sceneflowload / first call: original 0.23 s / 0.037 s (375x1242), portable 0.1 s / 0.071† s, kernels 0.1† s / 0.047† sfast-acvnet-plus-kitti12load / first call: original 0.23 s / 0.037 s (375x1242), portable 0.1 s / 0.071† s, kernels 0.1† s / 0.047† sfast-acvnet-plus-kitti15load / first call: original 0.23 s / 0.037 s (375x1242), portable 0.1 s / 0.071† s, kernels 0.1† s / 0.047† s- † measured in the speed sweep after the portable load (or an earlier size) in the same process: file cache and kernels are warm, so the time is lower than a fresh start.
- Protocol, median of 9 after 3 warm-up, uint8 CUDA input (synthetic for bench_inputs sizes), card defaults; gc before each load; peak = max over the first call and the timed calls
Measured
Original = the original code named under Details, same checkpoint and protocol.
| variant | dataset | original fp32 | original fp16 | portable | kernels | note |
|---|---|---|---|---|---|---|
fast-acvnet-generalization | ETH3D two-view train, bad > 1 px % / EPE | 6.50 / 0.775 | 6.51 / 0.778 | 6.50 / 0.776 | 6.51 / 0.776 | |
fast-acvnet-generalization | Middlebury 2014 trainingH, bad > 2 px % / EPE | 18.57 / 4.203 | 18.62 / 4.216 | 18.61 / 4.224 | 18.60 / 4.220 | |
fast-acvnet-sceneflow | ETH3D two-view train, bad > 1 px % / EPE | 8.40 / 0.654 | 8.44 / 0.659 | 8.40 / 0.657 | 8.43 / 0.657 | |
fast-acvnet-sceneflow | Middlebury 2014 trainingH, bad > 2 px % / EPE | 25.53 / 7.667 | 25.55 / 7.686 | 25.53 / 7.676 | 25.55 / 7.690 | |
fast-acvnet-kitti12 | ETH3D two-view train, bad > 1 px % / EPE | 19.07 / 0.825 | 19.06 / 0.825 | 19.06 / 0.826 | 19.06 / 0.825 | |
fast-acvnet-kitti12 | Middlebury 2014 trainingH, bad > 2 px % / EPE | 28.20 / 6.892 | 28.23 / 6.888 | 28.21 / 6.880 | 28.21 / 6.886 | |
fast-acvnet-kitti15 | ETH3D two-view train, bad > 1 px % / EPE | 17.58 / 0.774 | 17.58 / 0.772 | 17.61 / 0.772 | 17.59 / 0.772 | |
fast-acvnet-kitti15 | Middlebury 2014 trainingH, bad > 2 px % / EPE | 28.67 / 6.920 | 28.71 / 6.918 | 28.67 / 6.918 | 28.69 / 6.928 | |
fast-acvnet-plus-generalization | ETH3D two-view train, bad > 1 px % / EPE | 6.19 / 0.638 | 6.19 / 0.640 | 6.23 / 0.640 | 6.20 / 0.637 | |
fast-acvnet-plus-generalization | Middlebury 2014 trainingH, bad > 2 px % / EPE | 18.68 / 4.225 | 18.70 / 4.227 | 18.69 / 4.229 | 18.69 / 4.229 | |
fast-acvnet-plus-sceneflow | ETH3D two-view train, bad > 1 px % / EPE | 12.64 / 3.063 | 12.61 / 3.061 | 12.61 / 3.059 | 12.62 / 3.065 | |
fast-acvnet-plus-sceneflow | Middlebury 2014 trainingH, bad > 2 px % / EPE | 33.29 / 9.716 | 33.28 / 9.701 | 33.27 / 9.689 | 33.29 / 9.705 | |
fast-acvnet-plus-kitti12 | ETH3D two-view train, bad > 1 px % / EPE | 21.63 / 0.821 | 21.64 / 0.821 | 21.61 / 0.821 | 21.62 / 0.821 | |
fast-acvnet-plus-kitti12 | Middlebury 2014 trainingH, bad > 2 px % / EPE | 29.87 / 7.098 | 29.88 / 7.104 | 29.87 / 7.103 | 29.87 / 7.105 | |
fast-acvnet-plus-kitti15 | ETH3D two-view train, bad > 1 px % / EPE | 21.62 / 0.822 | 21.63 / 0.822 | 21.61 / 0.822 | 21.63 / 0.822 | |
fast-acvnet-plus-kitti15 | Middlebury 2014 trainingH, bad > 2 px % / EPE | 28.09 / 6.656 | 28.10 / 6.664 | 28.09 / 6.663 | 28.09 / 6.662 |
Measured on portable: NVIDIA GeForce RTX 5060 Ti, torch 2.14.1+cu130, fastforks 468fba10, 2026-11-05; kernels: NVIDIA GeForce RTX 5060 Ti, torch 2.14.1+cu130, fastforks 939adfe8, 2026-11-06.
Parity
CPU, float32: max |diff| <= 0.002 vs the original. GPU, float16 (the default), portable and kernels: mean |diff| <= 0.02 px and p99 <= 0.25 px.
| variant | kernels error vs original, mean / p99 | GPU, torch | kernels used |
|---|---|---|---|
fast-acvnet-generalization | 0.00092 / 0.00938 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
fast-acvnet-sceneflow | 0.00216 / 0.03439 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
fast-acvnet-kitti12 | 0.00112 / 0.00401 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
fast-acvnet-kitti15 | 0.00147 / 0.00436 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
fast-acvnet-plus-generalization | 0.00114 / 0.01085 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
fast-acvnet-plus-sceneflow | 0.01838 / 0.06381 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
fast-acvnet-plus-kitti12 | 0.00068 / 0.00258 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
fast-acvnet-plus-kitti15 | 0.00125 / 0.01454 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |