CPU Benchmarks
Performance benchmarks on CPU.
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 | 4.09 ms | 4.10 ms | 23.81 us | — |
| ArrayToBlocks forward | 32x32x32 | torchlinops (linop) | 4.08 ms | 4.08 ms | 46.88 us | — |
| ArrayToBlocks forward | 32x32x32 | sigpy | 174.82 us | 172.87 us | 2.37 us | — |
| ArrayToBlocks forward | 64x64x64 | torchlinops | 36.82 ms | 36.83 ms | 145.81 us | — |
| ArrayToBlocks forward | 64x64x64 | torchlinops (linop) | 37.29 ms | 37.12 ms | 387.94 us | — |
| ArrayToBlocks forward | 64x64x64 | sigpy | 2.54 ms | 2.54 ms | 29.63 us | — |
| ArrayToBlocks forward | 128x128x128 | torchlinops | 328.16 ms | 328.42 ms | 1.37 ms | — |
| ArrayToBlocks forward | 128x128x128 | torchlinops (linop) | 328.95 ms | 328.87 ms | 1.33 ms | — |
| ArrayToBlocks forward | 128x128x128 | sigpy | 35.01 ms | 34.90 ms | 181.22 us | — |
| BlocksToArray forward | 32x32x32 | torchlinops | 5.33 ms | 5.32 ms | 43.42 us | — |
| BlocksToArray forward | 32x32x32 | torchlinops (linop) | 5.36 ms | 5.36 ms | 33.58 us | — |
| BlocksToArray forward | 32x32x32 | sigpy | 1.38 ms | 1.37 ms | 22.87 us | — |
| BlocksToArray forward | 64x64x64 | torchlinops | 49.62 ms | 49.52 ms | 255.76 us | — |
| BlocksToArray forward | 64x64x64 | torchlinops (linop) | 49.73 ms | 49.75 ms | 92.88 us | — |
| BlocksToArray forward | 64x64x64 | sigpy | 12.25 ms | 12.24 ms | 34.66 us | — |
| BlocksToArray forward | 128x128x128 | torchlinops | 429.15 ms | 428.59 ms | 1.54 ms | — |
| BlocksToArray forward | 128x128x128 | torchlinops (linop) | 428.77 ms | 427.73 ms | 4.12 ms | — |
| BlocksToArray forward | 128x128x128 | sigpy | 125.04 ms | 125.13 ms | 3.25 ms | — |
Interpolate 2D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| Interpolate forward 2D | 64x64 | torchlinops | 1.70 ms | 1.70 ms | 11.45 us | — |
| Interpolate forward 2D | 64x64 | torchlinops (linop) | 1.72 ms | 1.71 ms | 10.60 us | — |
| Interpolate forward 2D | 64x64 | sigpy | 728.06 us | 723.51 us | 4.80 us | — |
| Interpolate forward 2D | 128x128 | torchlinops | 4.19 ms | 4.18 ms | 32.47 us | — |
| Interpolate forward 2D | 128x128 | torchlinops (linop) | 4.31 ms | 4.31 ms | 19.26 us | — |
| Interpolate forward 2D | 128x128 | sigpy | 2.94 ms | 2.93 ms | 56.89 us | — |
| Interpolate forward 2D | 256x256 | torchlinops | 20.70 ms | 20.71 ms | 49.39 us | — |
| Interpolate forward 2D | 256x256 | torchlinops (linop) | 20.91 ms | 20.93 ms | 156.30 us | — |
| Interpolate forward 2D | 256x256 | sigpy | 11.51 ms | 11.48 ms | 44.52 us | — |
| Interpolate adjoint 2D | 64x64 | torchlinops | 1.92 ms | 1.91 ms | 10.42 us | — |
| Interpolate adjoint 2D | 64x64 | torchlinops (linop) | 1.95 ms | 1.95 ms | 26.58 us | — |
| Interpolate adjoint 2D | 64x64 | sigpy | 736.88 us | 731.33 us | 14.93 us | — |
| Interpolate adjoint 2D | 128x128 | torchlinops | 5.17 ms | 5.16 ms | 54.45 us | — |
| Interpolate adjoint 2D | 128x128 | torchlinops (linop) | 5.26 ms | 5.27 ms | 37.38 us | — |
| Interpolate adjoint 2D | 128x128 | sigpy | 2.93 ms | 2.93 ms | 22.43 us | — |
| Interpolate adjoint 2D | 256x256 | torchlinops | 23.35 ms | 23.35 ms | 64.35 us | — |
| Interpolate adjoint 2D | 256x256 | torchlinops (linop) | 23.37 ms | 23.37 ms | 75.39 us | — |
| Interpolate adjoint 2D | 256x256 | sigpy | 11.55 ms | 11.55 ms | 25.84 us | — |
Interpolate 3D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| Interpolate forward 3D | 32x32x32 | torchlinops | 7.54 ms | 7.54 ms | 45.70 us | — |
| Interpolate forward 3D | 32x32x32 | torchlinops (linop) | 7.61 ms | 7.60 ms | 48.88 us | — |
| Interpolate forward 3D | 32x32x32 | sigpy | 3.33 ms | 3.32 ms | 10.10 us | — |
| Interpolate forward 3D | 64x64x64 | torchlinops | 88.35 ms | 88.43 ms | 3.65 ms | — |
| Interpolate forward 3D | 64x64x64 | torchlinops (linop) | 95.45 ms | 95.86 ms | 755.61 us | — |
| Interpolate forward 3D | 64x64x64 | sigpy | 26.56 ms | 26.50 ms | 187.97 us | — |
| Interpolate forward 3D | 128x128x128 | torchlinops | 645.15 ms | 644.93 ms | 17.68 ms | — |
| Interpolate forward 3D | 128x128x128 | torchlinops (linop) | 654.87 ms | 654.16 ms | 8.83 ms | — |
| Interpolate forward 3D | 128x128x128 | sigpy | 269.09 ms | 269.45 ms | 13.09 ms | — |
| Interpolate adjoint 3D | 32x32x32 | torchlinops | 9.01 ms | 9.01 ms | 31.10 us | — |
| Interpolate adjoint 3D | 32x32x32 | torchlinops (linop) | 9.03 ms | 9.04 ms | 39.59 us | — |
| Interpolate adjoint 3D | 32x32x32 | sigpy | 3.32 ms | 3.32 ms | 13.89 us | — |
| Interpolate adjoint 3D | 64x64x64 | torchlinops | 101.29 ms | 101.88 ms | 4.62 ms | — |
| Interpolate adjoint 3D | 64x64x64 | torchlinops (linop) | 102.08 ms | 100.76 ms | 4.40 ms | — |
| Interpolate adjoint 3D | 64x64x64 | sigpy | 26.21 ms | 26.12 ms | 178.03 us | — |
| Interpolate adjoint 3D | 128x128x128 | torchlinops | 738.49 ms | 742.32 ms | 15.24 ms | — |
| Interpolate adjoint 3D | 128x128x128 | torchlinops (linop) | 722.81 ms | 720.72 ms | 20.69 ms | — |
| Interpolate adjoint 3D | 128x128x128 | sigpy | 258.42 ms | 258.22 ms | 1.71 ms | — |
NUFFT 2D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| NUFFT forward 2D | 64x64 | torchlinops | 2.52 ms | 2.52 ms | 29.98 us | — |
| NUFFT forward 2D | 64x64 | torchlinops (linop) | 2.41 ms | 2.41 ms | 27.14 us | — |
| NUFFT forward 2D | 64x64 | sigpy | 2.30 ms | 2.30 ms | 14.52 us | — |
| NUFFT forward 2D | 128x128 | torchlinops | 6.49 ms | 6.50 ms | 70.74 us | — |
| NUFFT forward 2D | 128x128 | torchlinops (linop) | 6.05 ms | 6.04 ms | 56.90 us | — |
| NUFFT forward 2D | 128x128 | sigpy | 8.89 ms | 8.88 ms | 88.27 us | — |
| NUFFT forward 2D | 256x256 | torchlinops | 26.65 ms | 26.61 ms | 340.37 us | — |
| NUFFT forward 2D | 256x256 | torchlinops (linop) | 24.75 ms | 24.63 ms | 405.54 us | — |
| NUFFT forward 2D | 256x256 | sigpy | 34.92 ms | 34.85 ms | 174.68 us | — |
| NUFFT adjoint 2D | 64x64 | torchlinops | 2.32 ms | 2.24 ms | 112.41 us | — |
| NUFFT adjoint 2D | 64x64 | torchlinops (linop) | 2.08 ms | 2.07 ms | 15.21 us | — |
| NUFFT adjoint 2D | 64x64 | sigpy | 2.36 ms | 2.36 ms | 6.46 us | — |
| NUFFT adjoint 2D | 128x128 | torchlinops | 5.85 ms | 5.83 ms | 49.16 us | — |
| NUFFT adjoint 2D | 128x128 | torchlinops (linop) | 5.46 ms | 5.42 ms | 56.81 us | — |
| NUFFT adjoint 2D | 128x128 | sigpy | 9.12 ms | 9.07 ms | 122.15 us | — |
| NUFFT adjoint 2D | 256x256 | torchlinops | 30.05 ms | 30.03 ms | 117.36 us | — |
| NUFFT adjoint 2D | 256x256 | torchlinops (linop) | 28.42 ms | 28.42 ms | 416.30 us | — |
| NUFFT adjoint 2D | 256x256 | sigpy | 36.14 ms | 36.10 ms | 457.85 us | — |
NUFFT 3D
| Operation | Size | Library | Mean | Median | IQR | Peak Memory |
|---|---|---|---|---|---|---|
| NUFFT forward 3D | 32x32x32 | torchlinops | 8.72 ms | 8.72 ms | 12.74 us | — |
| NUFFT forward 3D | 32x32x32 | torchlinops (linop) | 8.21 ms | 8.20 ms | 62.20 us | — |
| NUFFT forward 3D | 32x32x32 | sigpy | 9.94 ms | 9.91 ms | 42.77 us | — |
| NUFFT forward 3D | 64x64x64 | torchlinops | 95.13 ms | 94.52 ms | 4.14 ms | — |
| NUFFT forward 3D | 64x64x64 | torchlinops (linop) | 92.91 ms | 92.98 ms | 2.26 ms | — |
| NUFFT forward 3D | 64x64x64 | sigpy | 79.94 ms | 79.99 ms | 296.03 us | — |
| NUFFT forward 3D | 128x128x128 | torchlinops | 720.71 ms | 719.49 ms | 8.74 ms | — |
| NUFFT forward 3D | 128x128x128 | torchlinops (linop) | 685.79 ms | 688.60 ms | 13.39 ms | — |
| NUFFT forward 3D | 128x128x128 | sigpy | 769.09 ms | 769.55 ms | 2.07 ms | — |
| NUFFT adjoint 3D | 32x32x32 | torchlinops | 10.06 ms | 10.06 ms | 55.60 us | — |
| NUFFT adjoint 3D | 32x32x32 | torchlinops (linop) | 9.57 ms | 9.51 ms | 27.02 us | — |
| NUFFT adjoint 3D | 32x32x32 | sigpy | 10.20 ms | 10.20 ms | 18.03 us | — |
| NUFFT adjoint 3D | 64x64x64 | torchlinops | 104.69 ms | 104.32 ms | 1.99 ms | — |
| NUFFT adjoint 3D | 64x64x64 | torchlinops (linop) | 100.67 ms | 99.74 ms | 5.61 ms | — |
| NUFFT adjoint 3D | 64x64x64 | sigpy | 82.57 ms | 82.18 ms | 705.11 us | — |
| NUFFT adjoint 3D | 128x128x128 | torchlinops | 895.67 ms | 896.05 ms | 6.28 ms | — |
| NUFFT adjoint 3D | 128x128x128 | torchlinops (linop) | 865.36 ms | 865.02 ms | 8.78 ms | — |
| NUFFT adjoint 3D | 128x128x128 | sigpy | 836.79 ms | 837.94 ms | 6.62 ms | — |
Bar Charts
Small

Medium

Large

Scaling Curves
