Selective-IGEV
IGEV-Stereo with selective recurrent units, by Xianqi Wang et al., with checkpoints for several datasets. Commercially usable.
Commercial use: yes.
| variant | input | backend | time (ms) | peak memory (MiB, allocated / reserved) |
|---|---|---|---|---|
selective-igev-sceneflow | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels | 2201 1455 998 349 | 2888 / 3216 2013 / 2152 1238 / 1488 1109 / 1390 |
Details
- Original code: https://github.com/Windsrain/Selective-Stereo at
c39acbfef9fb - Code licence: MIT (permissive); files:
LICENSE - Weights licence: MIT (assumed from code)
- Licence evidence: https://github.com/Windsrain/Selective-Stereo/blob/c39acbfef9fbe36fbc01efa4abeafc62bbe2da36/README.md#L25
- Training data: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa)
selective-igev-kitti12: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI (KITTI 2012 model))selective-igev-kitti15: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), KITTI stereo 2012 / 2015 (SceneFlow, then fine-tuned on KITTI (KITTI 2015 model))selective-igev-middlebury-finetune: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), Middlebury stereo (2014) (SceneFlow, then fine-tuned on Middlebury (final fine-tune stage; Selective-Stereo README training commands, 'middlebury_finetune' stage); original demo runs it with max_disp 768, 80 iterations)selective-igev-middlebury-train: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), Middlebury stereo (2014) (SceneFlow, then fine-tuned on Middlebury (first fine-tune stage; Selective-Stereo README training commands, 'middlebury_train' stage))selective-igev-eth3d-finetune: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), ETH3D two-view stereo (SceneFlow, then fine-tuned on ETH3D (final fine-tune stage; Selective-Stereo README training commands, 'eth3d_finetune' stage))selective-igev-eth3d-train: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa), ETH3D two-view stereo (SceneFlow, then fine-tuned on ETH3D (first fine-tune stage; Selective-Stereo README training commands, 'eth3d_train' stage))
- Options:
iters= 32 (>= 1) - Kernel libraries:
igev,cutlass_conv,cudnn_hacc - Variants:
selective-igev-sceneflow,selective-igev-kitti12,selective-igev-kitti15,selective-igev-middlebury-finetune,selective-igev-middlebury-train,selective-igev-eth3d-finetune,selective-igev-eth3d-train - 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):
selective-igev-sceneflow3000x4000 (10.3 GiB peak allocated, 14.0 reserved);selective-igev-kitti123000x4000 (10.3 GiB peak allocated, 14.0 reserved);selective-igev-kitti153000x4000 (10.3 GiB peak allocated, 14.0 reserved);selective-igev-middlebury-finetune3000x4000 (10.3 GiB peak allocated, 14.0 reserved);selective-igev-middlebury-train3000x4000 (10.3 GiB peak allocated, 14.0 reserved);selective-igev-eth3d-finetune3000x4000 (10.3 GiB peak allocated, 14.0 reserved);selective-igev-eth3d-train3000x4000 (10.3 GiB peak allocated, 14.0 reserved) selective-igev-kitti12,selective-igev-kitti15,selective-igev-middlebury-finetune,selective-igev-middlebury-train,selective-igev-eth3d-finetune,selective-igev-eth3d-train: same network and settings asselective-igev-sceneflow, measured once (rows not repeated).selective-igev-scenefloworiginal (fp32) 994x1482, original 994x1482: timed with selective-igev-eth3d-finetune (same network, other weights)selective-igev-sceneflowportable 994x1482, kernels 994x1482: measured on selective-igev-eth3d-finetune (same architecture, other checkpoint)selective-igev-sceneflowload / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† sselective-igev-kitti12load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† sselective-igev-kitti15load / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† sselective-igev-middlebury-finetuneload / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† sselective-igev-middlebury-trainload / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† sselective-igev-eth3d-finetuneload / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† sselective-igev-eth3d-trainload / first call: original 0.36 s / 2.251 s (375x1242), portable 0.5 s / 1.016† s, kernels 0.14† s / 0.35† 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 5 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 |
|---|---|---|---|---|---|---|
selective-igev-sceneflow | ETH3D two-view train, bad > 1 px % / EPE | 6.08 / 1.426 | 6.06 / 1.405 | 6.05 / 1.401 | 6.06 / 1.410 | |
selective-igev-sceneflow | Middlebury 2014 trainingH, bad > 2 px % / EPE | 11.78 / 2.584 | 11.77 / 2.571 | 11.81 / 2.591 | 11.80 / 2.591 | |
selective-igev-kitti12 | ETH3D two-view train, bad > 1 px % / EPE | 24.09 / 3.655 | 24.07 / 3.663 | 24.07 / 3.649 | 24.07 / 3.662 | |
selective-igev-kitti12 | Middlebury 2014 trainingH, bad > 2 px % / EPE | 20.09 / 4.854 | 20.09 / 4.862 | 20.08 / 4.845 | 20.09 / 4.862 | |
selective-igev-kitti15 | ETH3D two-view train, bad > 1 px % / EPE | 24.25 / 2.449 | 24.26 / 2.445 | 24.26 / 2.445 | 24.26 / 2.456 | |
selective-igev-kitti15 | Middlebury 2014 trainingH, bad > 2 px % / EPE | 19.64 / 4.949 | 19.64 / 4.952 | 19.65 / 4.956 | 19.64 / 4.941 | |
selective-igev-middlebury-finetune | ETH3D two-view train, bad > 1 px % / EPE | 24.24 / 0.995 | 24.24 / 0.994 | 24.27 / 0.995 | 24.24 / 0.995 | |
selective-igev-middlebury-finetune | Middlebury 2014 trainingH, bad > 2 px % / EPE | 5.65 / 1.192 | 5.66 / 1.192 | 5.66 / 1.208 | 5.67 / 1.194 | trained on this dataset's public images; not a zero-shot result |
selective-igev-middlebury-train | ETH3D two-view train, bad > 1 px % / EPE | 10.28 / 0.434 | 10.24 / 0.433 | 10.24 / 0.433 | 10.25 / 0.433 | |
selective-igev-middlebury-train | Middlebury 2014 trainingH, bad > 2 px % / EPE | 5.95 / 1.437 | 5.96 / 1.433 | 5.97 / 1.435 | 5.99 / 1.437 | trained on this dataset's public images; not a zero-shot result |
selective-igev-eth3d-finetune | ETH3D two-view train, bad > 1 px % / EPE | 0.32 / 0.082 | 0.32 / 0.082 | 0.32 / 0.082 | 0.32 / 0.082 | trained on this dataset's public images; not a zero-shot result |
selective-igev-eth3d-finetune | Middlebury 2014 trainingH, bad > 2 px % / EPE | 12.33 / 2.813 | 12.33 / 2.808 | 12.33 / 2.807 | 12.34 / 2.811 | |
selective-igev-eth3d-train | ETH3D two-view train, bad > 1 px % / EPE | 0.78 / 0.137 | 0.78 / 0.137 | 0.78 / 0.137 | 0.78 / 0.137 | trained on this dataset's public images; not a zero-shot result |
selective-igev-eth3d-train | Middlebury 2014 trainingH, bad > 2 px % / EPE | 7.96 / 2.158 | 7.97 / 2.153 | 7.99 / 2.161 | 8.01 / 2.158 |
Measured on NVIDIA GeForce RTX 5060 Ti, torch 2.14.1+cu130, fastforks 468fba10, 2026-11-05.
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 |
|---|---|---|---|
selective-igev-sceneflow | 0.00076 / 0.00407 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
selective-igev-kitti12 | 0.00076 / 0.00226 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
selective-igev-kitti15 | 0.00051 / 0.00166 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
selective-igev-middlebury-finetune | 0.00102 / 0.00544 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
selective-igev-middlebury-train | 0.0027 / 0.02007 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
selective-igev-eth3d-finetune | 0.00127 / 0.005 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
selective-igev-eth3d-train | 0.00115 / 0.00565 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |
Limitations
- ONNX export needs torch >= 2.14 (older exporters fail on this network).