GPU Benchmarks
Performance benchmarks on GPU.
Metadata
- Date: 2026-07-07T15:40:00.292841
- Commit:
671c312 - Working tree: clean
- PyTorch: 2.10.0+cu128
- CUDA: 12.8
- GPU: NVIDIA GeForce RTX 3090
- Python: 3.10.16
- OS: Linux
- Threads: 12
ArrayToBlocks 3D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| ArrayToBlocks forward | 32x32x32 | torchlinops | 125.56 us | 124.93 us | 2.91 us | 17.50 MB |
| ArrayToBlocks forward | 32x32x32 | torchlinops (linop) | 137.71 us | 137.22 us | 3.07 us | 17.50 MB |
| ArrayToBlocks forward | 32x32x32 | sigpy | 49.62 us | 49.15 us | 1.63 us | 2.86 MB |
| ArrayToBlocks forward | 64x64x64 | torchlinops | 124.28 us | 123.68 us | 2.40 us | 30.43 MB |
| ArrayToBlocks forward | 64x64x64 | torchlinops (linop) | 137.02 us | 136.19 us | 3.32 us | 30.43 MB |
| ArrayToBlocks forward | 64x64x64 | sigpy | 121.98 us | 121.86 us | 1.06 us | 21.70 MB |
| ArrayToBlocks forward | 128x128x128 | torchlinops | 396.71 us | 395.26 us | 2.75 us | 147.62 MB |
| ArrayToBlocks forward | 128x128x128 | torchlinops (linop) | 405.75 us | 405.50 us | 2.05 us | 147.62 MB |
| ArrayToBlocks forward | 128x128x128 | sigpy | 749.64 us | 750.59 us | 159.98 ns | 180.89 MB |
| BlocksToArray forward | 32x32x32 | torchlinops | 109.90 us | 109.34 us | 2.69 us | 2.68 MB |
| BlocksToArray forward | 32x32x32 | torchlinops (linop) | 121.89 us | 120.99 us | 3.07 us | 2.68 MB |
| BlocksToArray forward | 32x32x32 | sigpy | 44.46 us | 44.03 us | 1.92 us | 8.52 MB |
| BlocksToArray forward | 64x64x64 | torchlinops | 109.58 us | 108.54 us | 3.07 us | 26.37 MB |
| BlocksToArray forward | 64x64x64 | torchlinops (linop) | 120.08 us | 118.88 us | 3.07 us | 26.37 MB |
| BlocksToArray forward | 64x64x64 | sigpy | 32.30 us | 31.74 us | 1.02 us | 53.25 MB |
| BlocksToArray forward | 128x128x128 | torchlinops | 340.14 us | 324.61 us | 35.84 us | 232.74 MB |
| BlocksToArray forward | 128x128x128 | torchlinops (linop) | 297.71 us | 296.96 us | 6.14 us | 232.74 MB |
| BlocksToArray forward | 128x128x128 | sigpy | 220.09 us | 217.09 us | 2.07 us | 466.00 MB |
Interpolate 2D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| Interpolate forward 2D | 64x64 | torchlinops | 101.71 us | 101.06 us | 3.01 us | 96.00 KB |
| Interpolate forward 2D | 64x64 | torchlinops (linop) | 113.18 us | 112.64 us | 2.12 us | 96.00 KB |
| Interpolate forward 2D | 64x64 | sigpy | 111.19 us | 110.59 us | 2.15 us | 528.00 KB |
| Interpolate forward 2D | 128x128 | torchlinops | 128.57 us | 128.00 us | 2.05 us | 384.00 KB |
| Interpolate forward 2D | 128x128 | torchlinops (linop) | 140.22 us | 139.26 us | 1.18 us | 384.00 KB |
| Interpolate forward 2D | 128x128 | sigpy | 137.14 us | 136.96 us | 1.74 us | 656.00 KB |
| Interpolate forward 2D | 256x256 | torchlinops | 300.48 us | 300.03 us | 2.05 us | 1.50 MB |
| Interpolate forward 2D | 256x256 | torchlinops (linop) | 302.60 us | 310.27 us | 21.95 us | 1.50 MB |
| Interpolate forward 2D | 256x256 | sigpy | 288.83 us | 287.74 us | 2.70 us | 2.27 MB |
| Interpolate adjoint 2D | 64x64 | torchlinops | 100.73 us | 100.35 us | 2.05 us | 96.00 KB |
| Interpolate adjoint 2D | 64x64 | torchlinops (linop) | 115.73 us | 114.69 us | 3.65 us | 96.00 KB |
| Interpolate adjoint 2D | 64x64 | sigpy | 109.52 us | 109.38 us | 1.82 us | 784.00 KB |
| Interpolate adjoint 2D | 128x128 | torchlinops | 125.14 us | 124.93 us | 2.05 us | 416.00 KB |
| Interpolate adjoint 2D | 128x128 | torchlinops (linop) | 137.82 us | 137.22 us | 2.05 us | 416.00 KB |
| Interpolate adjoint 2D | 128x128 | sigpy | 137.06 us | 136.86 us | 2.05 us | 784.00 KB |
| Interpolate adjoint 2D | 256x256 | torchlinops | 282.28 us | 281.60 us | 2.05 us | 1.66 MB |
| Interpolate adjoint 2D | 256x256 | torchlinops (linop) | 294.73 us | 293.89 us | 2.06 us | 1.66 MB |
| Interpolate adjoint 2D | 256x256 | sigpy | 310.67 us | 317.18 us | 24.77 us | 2.27 MB |
Interpolate 3D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| Interpolate forward 3D | 32x32x32 | torchlinops | 113.17 us | 111.65 us | 2.98 us | 592.00 KB |
| Interpolate forward 3D | 32x32x32 | torchlinops (linop) | 124.62 us | 123.90 us | 2.56 us | 592.00 KB |
| Interpolate forward 3D | 32x32x32 | sigpy | 212.72 us | 211.97 us | 2.64 us | 1.27 MB |
| Interpolate forward 3D | 64x64x64 | torchlinops | 376.58 us | 375.81 us | 2.88 us | 4.41 MB |
| Interpolate forward 3D | 64x64x64 | torchlinops (linop) | 374.75 us | 373.89 us | 2.90 us | 4.41 MB |
| Interpolate forward 3D | 64x64x64 | sigpy | 601.65 us | 608.42 us | 3.55 us | 8.52 MB |
| Interpolate forward 3D | 128x128x128 | torchlinops | 2.38 ms | 2.37 ms | 8.59 us | 35.03 MB |
| Interpolate forward 3D | 128x128x128 | torchlinops (linop) | 2.39 ms | 2.39 ms | 5.12 us | 35.03 MB |
| Interpolate forward 3D | 128x128x128 | sigpy | 3.32 ms | 3.30 ms | 53.25 us | 64.52 MB |
| Interpolate adjoint 3D | 32x32x32 | torchlinops | 113.72 us | 113.57 us | 1.89 us | 368.00 KB |
| Interpolate adjoint 3D | 32x32x32 | torchlinops (linop) | 126.36 us | 124.93 us | 3.07 us | 368.00 KB |
| Interpolate adjoint 3D | 32x32x32 | sigpy | 216.74 us | 216.06 us | 2.34 us | 528.00 KB |
| Interpolate adjoint 3D | 64x64x64 | torchlinops | 355.59 us | 355.33 us | 2.05 us | 2.70 MB |
| Interpolate adjoint 3D | 64x64x64 | torchlinops (linop) | 367.07 us | 366.59 us | 2.08 us | 2.70 MB |
| Interpolate adjoint 3D | 64x64x64 | sigpy | 602.50 us | 578.45 us | 64.74 us | 3.14 MB |
| Interpolate adjoint 3D | 128x128x128 | torchlinops | 3.20 ms | 3.30 ms | 379.21 us | 21.41 MB |
| Interpolate adjoint 3D | 128x128x128 | torchlinops (linop) | 2.59 ms | 2.54 ms | 113.82 us | 21.41 MB |
| Interpolate adjoint 3D | 128x128x128 | sigpy | 3.60 ms | 3.52 ms | 188.98 us | 24.52 MB |
NUFFT 2D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| NUFFT forward 2D | 64x64 | torchlinops | 565.05 us | 563.20 us | 15.36 us | 360.50 KB |
| NUFFT forward 2D | 64x64 | torchlinops (linop) | 366.75 us | 363.68 us | 13.31 us | 312.50 KB |
| NUFFT forward 2D | 64x64 | sigpy | 564.35 us | 563.20 us | 12.38 us | 294.00 KB |
| NUFFT forward 2D | 128x128 | torchlinops | 687.08 us | 680.42 us | 32.82 us | 1.41 MB |
| NUFFT forward 2D | 128x128 | torchlinops (linop) | 372.29 us | 365.70 us | 10.53 us | 1.22 MB |
| NUFFT forward 2D | 128x128 | sigpy | 682.44 us | 681.82 us | 13.31 us | 1.10 MB |
| NUFFT forward 2D | 256x256 | torchlinops | 1.09 ms | 1.09 ms | 6.02 us | 5.63 MB |
| NUFFT forward 2D | 256x256 | torchlinops (linop) | 516.71 us | 513.22 us | 17.48 us | 4.88 MB |
| NUFFT forward 2D | 256x256 | sigpy | 1.20 ms | 1.19 ms | 21.45 us | 4.36 MB |
| NUFFT adjoint 2D | 64x64 | torchlinops | 541.28 us | 541.70 us | 15.36 us | 360.50 KB |
| NUFFT adjoint 2D | 64x64 | torchlinops (linop) | 348.39 us | 346.11 us | 12.34 us | 312.50 KB |
| NUFFT adjoint 2D | 64x64 | sigpy | 496.66 us | 495.63 us | 15.20 us | 272.00 KB |
| NUFFT adjoint 2D | 128x128 | torchlinops | 660.14 us | 644.10 us | 17.57 us | 1.49 MB |
| NUFFT adjoint 2D | 128x128 | torchlinops (linop) | 341.36 us | 339.90 us | 10.24 us | 1.30 MB |
| NUFFT adjoint 2D | 128x128 | sigpy | 485.60 us | 484.35 us | 12.29 us | 936.00 KB |
| NUFFT adjoint 2D | 256x256 | torchlinops | 1.01 ms | 1.02 ms | 20.81 us | 5.63 MB |
| NUFFT adjoint 2D | 256x256 | torchlinops (linop) | 407.82 us | 406.35 us | 9.14 us | 4.88 MB |
| NUFFT adjoint 2D | 256x256 | sigpy | 966.38 us | 964.61 us | 6.66 us | 4.36 MB |
NUFFT 3D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| NUFFT forward 3D | 32x32x32 | torchlinops | 957.74 us | 952.32 us | 16.38 us | 4.33 MB |
| NUFFT forward 3D | 32x32x32 | torchlinops (linop) | 363.68 us | 362.50 us | 13.36 us | 4.16 MB |
| NUFFT forward 3D | 32x32x32 | sigpy | 1.06 ms | 1.04 ms | 22.22 us | 2.24 MB |
| NUFFT forward 3D | 64x64x64 | torchlinops | 1.98 ms | 1.96 ms | 25.54 us | 26.28 MB |
| NUFFT forward 3D | 64x64x64 | torchlinops (linop) | 613.77 us | 605.44 us | 13.87 us | 24.91 MB |
| NUFFT forward 3D | 64x64x64 | sigpy | 2.28 ms | 2.27 ms | 17.92 us | 20.23 MB |
| NUFFT forward 3D | 128x128x128 | torchlinops | 28.36 ms | 28.35 ms | 52.66 us | 203.25 MB |
| NUFFT forward 3D | 128x128x128 | torchlinops (linop) | 3.30 ms | 3.30 ms | 1.79 us | 191.25 MB |
| NUFFT forward 3D | 128x128x128 | sigpy | 10.82 ms | 10.55 ms | 1.26 ms | 158.27 MB |
| NUFFT adjoint 3D | 32x32x32 | torchlinops | 1.73 ms | 1.73 ms | 6.70 us | 4.11 MB |
| NUFFT adjoint 3D | 32x32x32 | torchlinops (linop) | 368.04 us | 352.77 us | 15.36 us | 3.94 MB |
| NUFFT adjoint 3D | 32x32x32 | sigpy | 668.16 us | 654.34 us | 5.47 us | 1.98 MB |
| NUFFT adjoint 3D | 64x64x64 | torchlinops | 2.60 ms | 2.76 ms | 318.67 us | 24.75 MB |
| NUFFT adjoint 3D | 64x64x64 | torchlinops (linop) | 552.98 us | 544.48 us | 8.19 us | 23.38 MB |
| NUFFT adjoint 3D | 64x64x64 | sigpy | 2.02 ms | 2.01 ms | 17.42 us | 12.97 MB |
| NUFFT adjoint 3D | 128x128x128 | torchlinops | 34.34 ms | 34.39 ms | 200.78 us | 188.25 MB |
| NUFFT adjoint 3D | 128x128x128 | torchlinops (linop) | 3.45 ms | 3.45 ms | 7.82 us | 177.25 MB |
| NUFFT adjoint 3D | 128x128x128 | sigpy | 10.42 ms | 10.41 ms | 18.70 us | 103.17 MB |
Bar Charts
Small

Medium

Large

Scaling Curves

