PSMNet
A classic stereo network by Jia-Ren Chang with a spatial-pyramid backbone and stacked 3D hourglasses. Commercially usable.
Commercial use: yes.
| variant | input | backend | time (ms) | peak memory (MiB, allocated / reserved) |
|---|---|---|---|---|
psmnet-sceneflow | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels portable + torch.compile TensorRT fp16 | 760 608 340 232 440 669 | 7544 / 7640 6015 / 6090 2078 / 2442 1786 / 2122 1760 / 2082 1528 (engine) |
Details
- Original code: https://github.com/JiaRenChang/PSMNet at
87ac9093afbf - Code licence: MIT (permissive); files:
LICENSE - Weights licence: MIT (assumed from code)
- Licence evidence: https://github.com/JiaRenChang/PSMNet/blob/87ac9093afbf6545c093bd9d26c5ffd66e49a7b8/README.md#L96-L98
- Training data: Freiburg SceneFlow (FlyingThings3D, Driving, Monkaa)
- Kernel libraries:
igev,cutlass_conv,cudnn_hacc - Variants:
psmnet-sceneflow - Outputs: disparity
- Input size: any H x W >= 241, padded to a multiple of 16
- Tested up to (portable, fp16, RTX 5060 Ti 16 GB):
psmnet-sceneflow1988x2880 (7.6 GiB peak allocated, 10.6 reserved) psmnet-sceneflow994x1482, first call: portable + torch.compile 60 s (cold Inductor cache), TensorRT fp16 89 s (ONNX + engine).psmnet-scenefloworiginal 994x1482: torch.autocast(fp16) around the forwardpsmnet-sceneflowload / first call: original 0.2 s / 0.525 s (375x1242), portable 0.1 s / 0.352† s, kernels 0.08† s / 0.232† 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 |
|---|---|---|---|---|---|---|
psmnet-sceneflow | ETH3D two-view train, bad > 1 px % / EPE | 15.14 / 2.152 | 15.13 / 2.152 | 15.11 / 2.154 | 15.13 / 2.148 | |
psmnet-sceneflow | Middlebury 2014 trainingH, bad > 2 px % / EPE | 36.06 / 11.482 | 36.06 / 11.484 | 36.06 / 11.484 | 36.07 / 11.482 |
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.05 px and p99 <= 0.5 px.
| variant | kernels error vs original, mean / p99 | GPU, torch | kernels used |
|---|---|---|---|
psmnet-sceneflow | 0.00412 / 0.01422 | RTX 5060 Ti, torch 2.14.1+cu130 | cudnn_hacc@cudnn92400, cutlass_conv@988138e042cb:sm_120, igev@f075827d68c6:sm_120 |