Skip to content

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

Timing bar chart (small)

Medium

Timing bar chart (medium)

Large

Timing bar chart (large)

Scaling Curves

Timing scaling