Skip to content

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

Timing bar chart (small)

Medium

Timing bar chart (medium)

Large

Timing bar chart (large)

Scaling Curves

Timing scaling

Memory scaling