← CPU results

cpu/cpu_ops

profile: zen5-cpuhardware: x86_64date: 2026-10-28 00:16:12Ztenferro: 8fec1ca70852unit: msthreads: [1, 4, 8]

Legacy report: ingestion provenance is unrecorded; no raw artifact is inferred.

Compute-bound cases (897)

Absolute medians on a log time axis. Bars are shorter for faster calls; the dashed line is the best reference for each case.

casegroupvs PyTorchvs JAXnot measuredflags
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout)eager 0.94x trace 0.94xeager 0.75x trace 0.75x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout)eager 0.94x trace 0.94xeager 0.71x trace 0.70x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout)eager 0.93x trace 0.93xeager 0.75x trace 0.75x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout)eager 0.93x trace 0.94xeager 0.72x trace 0.73x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout)eager 1.59x trace 1.59xeager 1.86x trace 1.86x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout)eager 1.29x trace 1.21xeager 1.20x trace 1.12x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout)eager 1.54x trace 1.54xeager 1.71x trace 1.71x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout)eager 1.43x trace 1.42xeager 1.28x trace 1.27x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout)eager 1.15x trace 1.15xeager 1.17x trace 1.17x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout)eager 1.10x trace 1.08xeager 1.06x trace 1.04x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout)eager 1.14x trace 1.14xeager 1.16x trace 1.16x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout)eager 1.13x trace 1.13xeager 1.10x trace 1.09x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout)eager 1.01x trace 1.01xeager 0.91x trace 0.91x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout)eager 1.00x trace 1.00xeager 0.84x trace 0.84x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout)eager 1.01x trace 1.01xeager 0.90x trace 0.90x--
batched_eighsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout)eager 1.01x trace 1.00xeager 0.89x trace 0.89x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout)eager 1.01x trace 1.00xeager 1.47x trace 1.46x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout)eager 0.94x trace 0.96xeager 0.88x trace 0.90x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout)eager 0.96x trace 0.96xeager 1.52x trace 1.53x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout)eager 0.95x trace 0.95xeager 1.19x trace 1.19x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout)eager 1.53x trace 1.53xeager 1.71x trace 1.71x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout)eager 1.28x trace 1.22xeager 1.19x trace 1.14x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout)eager 1.50x trace 1.50xeager 1.68x trace 1.68x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout)eager 1.41x trace 1.41xeager 1.58x trace 1.58x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout)eager 1.15x trace 1.15xeager 1.47x trace 1.47x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout)eager 1.09x trace 1.10xeager 1.02x trace 1.03x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout)eager 1.17x trace 1.17xeager 1.08x trace 1.08x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout)eager 1.14x trace 1.13xeager 1.06x trace 1.06x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout)eager 1.04x trace 1.04xeager 1.95x trace 1.96x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout)eager 1.00x trace 1.01xeager 0.83x trace 0.84x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout)eager 1.02x trace 1.02xeager 1.21x trace 1.21x--
batched_eighsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout)eager 1.01x trace 1.01xeager 0.83x trace 0.84x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout)eager 0.96x trace 0.96xeager 2.35x trace 2.35x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout)eager 0.96x trace 0.96xeager 0.96x trace 0.96x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout)eager 0.95x trace 0.95xeager 2.41x trace 2.40x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout)eager 0.95x trace 0.95xeager 2.47x trace 2.48x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout)eager 1.52x trace 1.53xeager 1.73x trace 1.73x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout)eager 1.27x trace 1.23xeager 1.15x trace 1.11x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout)eager 1.50x trace 1.49xeager 1.72x trace 1.71x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout)eager 1.41x trace 1.37xeager 1.63x trace 1.59x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout)eager 1.14x trace 1.15xeager 1.55x trace 1.56x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout)eager 1.12x trace 1.10xeager 1.04x trace 1.02x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout)eager 1.15x trace 1.15xeager 1.07x trace 1.06x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout)eager 1.14x trace 1.14xeager 1.06x trace 1.05x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout)eager 1.03x trace 1.02xeager 2.14x trace 2.13x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout)eager 1.02x trace 1.01xeager 0.85x trace 0.84x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout)eager 1.03x trace 1.03xeager 1.80x trace 1.81x--
batched_eighsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout)eager 1.02x trace 1.02xeager 0.85x trace 0.85x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout)eager 0.71x trace 0.70xeager 0.56x trace 0.55x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout)eager 0.63x trace 0.59xeager 0.12x trace 0.12x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout)eager 0.75x trace 0.74xeager 0.50x trace 0.49x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout)eager 0.77x trace 0.76xeager 0.28x trace 0.28x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout)eager 2.89x trace 2.89xeager 0.75x trace 0.75x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout)eager 0.50x trace 0.49xeager 0.05x trace 0.05x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout)eager 1.57x trace 1.60xeager 0.22x trace 0.23x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout)eager 0.74x trace 0.80xeager 0.08x trace 0.08x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout)eager 0.91x trace 0.91xeager 0.74x trace 0.74x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout)eager 0.47x trace 0.45xeager 0.05x trace 0.05x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout)eager 0.78x trace 0.79xeager 0.25x trace 0.25x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout)eager 0.57x trace 0.60xeager 0.09x trace 0.09x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout)eager 1.00x trace 0.99xeager 0.68x trace 0.68x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout)eager 0.49x trace 0.48xeager 0.06x trace 0.06x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout)eager 0.92x trace 0.93xeager 0.33x trace 0.33x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout)eager 0.69x trace 0.71xeager 0.12x trace 0.12x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout)eager 0.99x trace 0.99xeager 0.28x trace 0.28x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout)eager 0.72x trace 0.68xeager 0.14x trace 0.14x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout)eager 1.07x trace 1.05xeager 0.42x trace 0.41x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout)eager 0.94x trace 0.93xeager 0.40x trace 0.39x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout)eager 3.03x trace 3.03xeager 0.89x trace 0.89x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout)eager 0.52x trace 0.53xeager 0.05x trace 0.06x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout)eager 1.63x trace 1.66xeager 0.24x trace 0.24x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout)eager 0.77x trace 0.82xeager 0.09x trace 0.09x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout)eager 1.35x trace 1.33xeager 0.46x trace 0.45x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout)eager 0.48x trace 0.49xeager 0.06x trace 0.06x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout)eager 0.80x trace 0.81xeager 0.28x trace 0.28x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout)eager 0.59x trace 0.61xeager 0.10x trace 0.10x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout)eager 1.28x trace 1.27xeager 0.40x trace 0.39x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout)eager 0.51x trace 0.53xeager 0.06x trace 0.07x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout)eager 1.06x trace 1.06xeager 0.38x trace 0.38x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout)eager 0.76x trace 0.78xeager 0.14x trace 0.15x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout)eager 2.50x trace 2.58xeager 0.43x trace 0.44x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout)eager 1.03x trace 0.84xeager 0.16x trace 0.13x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout)eager 2.28x trace 2.00xeager 0.60x trace 0.53x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout)eager 1.62x trace 1.36xeager 0.45x trace 0.38x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout)eager 2.82x trace 2.85xeager 0.80x trace 0.81x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout)eager 0.54x trace 0.52xeager 0.06x trace 0.05x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout)eager 1.57x trace 1.60xeager 0.23x trace 0.24x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout)eager 0.82x trace 0.83xeager 0.09x trace 0.09x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout)eager 1.68x trace 1.66xeager 0.51x trace 0.50x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout)eager 0.47x trace 0.48xeager 0.05x trace 0.05x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout)eager 0.81x trace 0.80xeager 0.28x trace 0.27x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout)eager 0.61x trace 0.61xeager 0.10x trace 0.10x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout)eager 2.27x trace 2.26xeager 0.44x trace 0.44x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout)eager 0.54x trace 0.51xeager 0.07x trace 0.07x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout)eager 1.66x trace 1.60xeager 0.42x trace 0.40x--
batched_matmul_ikb_kjb_ijbsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout)eager 0.94x trace 0.91xeager 0.15x trace 0.14x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout)eager 0.91x trace 0.91xeager 0.63x trace 0.63x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout)eager 0.91x trace 0.87xeager 0.61x trace 0.59x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout)eager 0.90x trace 0.88xeager 0.64x trace 0.63x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout)eager 0.89x trace 0.87xeager 0.64x trace 0.62x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout)eager 1.13x trace 1.12xeager 0.83x trace 0.82x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout)eager 1.25x trace 1.09xeager 0.79x trace 0.68x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout)eager 1.12x trace 1.11xeager 0.76x trace 0.75x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout)eager 1.15x trace 1.12xeager 0.79x trace 0.77x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout)eager 1.04x trace 1.03xeager 0.73x trace 0.72x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout)eager 1.12x trace 1.06xeager 0.72x trace 0.68x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout)eager 1.04x trace 1.03xeager 0.72x trace 0.71x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout)eager 1.03x trace 1.01xeager 0.65x trace 0.64x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout)eager 0.99x trace 0.99xeager 0.63x trace 0.63x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout)eager 1.02x trace 0.96xeager 0.56x trace 0.53x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout)eager 1.00x trace 0.98xeager 0.64x trace 0.62x--
batched_qrsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout)eager 1.00x trace 0.98xeager 0.61x trace 0.60x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout)eager 0.99x trace 0.97xeager 1.00x trace 0.99x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout)eager 0.92x trace 0.90xeager 0.64x trace 0.62x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout)eager 0.93x trace 0.93xeager 0.85x trace 0.84x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout)eager 0.94x trace 0.93xeager 0.77x trace 0.75x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout)eager 1.32x trace 1.31xeager 0.84x trace 0.84x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout)eager 1.23x trace 1.12xeager 0.82x trace 0.74x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout)eager 1.31x trace 1.29xeager 0.85x trace 0.83x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout)eager 1.26x trace 1.22xeager 0.83x trace 0.81x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout)eager 1.11x trace 1.11xeager 0.68x trace 0.67x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout)eager 1.09x trace 1.05xeager 0.73x trace 0.70x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout)eager 1.13x trace 1.12xeager 0.73x trace 0.72x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout)eager 1.07x trace 1.06xeager 0.72x trace 0.71x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout)eager 1.04x trace 1.03xeager 1.04x trace 1.04x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout)eager 1.01x trace 0.98xeager 0.62x trace 0.60x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout)eager 1.01x trace 1.02xeager 0.55x trace 0.56x--
batched_qrsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout)eager 1.01x trace 0.98xeager 0.63x trace 0.62x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout)eager 0.95x trace 0.95xeager 1.84x trace 1.84x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout)eager 0.96x trace 0.91xeager 0.67x trace 0.63x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout)eager 0.94x trace 0.93xeager 1.72x trace 1.71x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout)eager 0.94x trace 0.93xeager 0.87x trace 0.86x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout)eager 1.32x trace 1.35xeager 0.78x trace 0.80x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout)eager 1.15x trace 1.08xeager 0.78x trace 0.73x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout)eager 1.26x trace 1.28xeager 0.81x trace 0.82x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout)eager 1.27x trace 1.20xeager 0.78x trace 0.74x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout)eager 1.12x trace 1.12xeager 0.69x trace 0.69x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout)eager 1.09x trace 1.03xeager 0.69x trace 0.65x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout)eager 1.12x trace 1.10xeager 0.68x trace 0.67x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout)eager 1.09x trace 1.07xeager 0.72x trace 0.71x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout)eager 1.04x trace 1.04xeager 1.33x trace 1.33x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout)eager 1.02x trace 0.96xeager 0.68x trace 0.64x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout)eager 1.02x trace 1.02xeager 0.60x trace 0.60x--
batched_qrsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout)eager 1.02x trace 1.00xeager 0.62x trace 0.61x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout),rhs=1eager 0.91x trace 0.95xeager 0.56x trace 0.58x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout),rhs=1eager 0.74x trace 0.72xeager 0.49x trace 0.48x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout),rhs=1eager 0.89x trace 0.92xeager 0.58x trace 0.60x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout),rhs=1eager 0.84x trace 0.83xeager 0.56x trace 0.55x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout),rhs=1eager 2.20x trace 1.88xeager 0.71x trace 0.60x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout),rhs=1eager 0.64x trace 0.62xeager 0.78x trace 0.76x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout),rhs=1eager 1.59x trace 1.40xeager 0.67x trace 0.59x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout),rhs=1eager 0.94x trace 0.87xeager 0.59x trace 0.54x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout),rhs=1eager 2.02x trace 1.51xeager 0.65x trace 0.49x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout),rhs=1eager 0.64x trace 0.60xeager 0.64x trace 0.60x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout),rhs=1eager 1.59x trace 1.24xeager 0.63x trace 0.49x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout),rhs=1eager 1.00x trace 0.83xeager 0.55x trace 0.45x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout),rhs=1eager 1.25x trace 1.09xeager 0.67x trace 0.59x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout),rhs=1eager 0.69x trace 0.65xeager 0.52x trace 0.49x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout),rhs=1eager 1.16x trace 1.01xeager 0.65x trace 0.56x--
batched_solvesuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout),rhs=1eager 0.96x trace 0.86xeager 0.59x trace 0.53x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout),rhs=1eager 2.09x trace 1.94xeager 0.50x trace 0.46x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout),rhs=1eager 0.89x trace 0.87xeager 0.52x trace 0.52x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout),rhs=1eager 1.54x trace 1.45xeager 0.41x trace 0.38x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout),rhs=1eager 1.15x trace 1.08xeager 0.47x trace 0.44x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout),rhs=1eager 2.76x trace 2.15xeager 0.73x trace 0.57x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout),rhs=1eager 0.62x trace 0.63xeager 0.80x trace 0.81x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout),rhs=1eager 1.82x trace 1.48xeager 0.70x trace 0.56x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout),rhs=1eager 1.00x trace 0.90xeager 0.85x trace 0.76x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout),rhs=1eager 2.11x trace 1.72xeager 0.55x trace 0.45x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout),rhs=1eager 0.62x trace 0.62xeager 0.63x trace 0.64x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout),rhs=1eager 1.68x trace 1.38xeager 0.61x trace 0.50x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout),rhs=1eager 0.99x trace 0.88xeager 0.63x trace 0.56x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout),rhs=1eager 1.98x trace 1.78xeager 0.47x trace 0.43x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout),rhs=1eager 0.76x trace 0.75xeager 0.72x trace 0.72x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout),rhs=1eager 1.34x trace 1.20xeager 0.58x trace 0.52x--
batched_solvesuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout),rhs=1eager 1.09x trace 0.99xeager 0.61x trace 0.55x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout),rhs=1eager 2.21x trace 2.04xeager 0.66x trace 0.61x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout),rhs=1eager 1.00x trace 0.98xeager 0.56x trace 0.55x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout),rhs=1eager 1.97x trace 1.83xeager 0.62x trace 0.58x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout),rhs=1eager 1.46x trace 1.37xeager 0.53x trace 0.50x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout),rhs=1eager 2.87x trace 2.53xeager 0.64x trace 0.56x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout),rhs=1eager 0.69x trace 0.68xeager 0.80x trace 0.79x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout),rhs=1eager 1.76x trace 1.59xeager 0.67x trace 0.61x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout),rhs=1eager 0.98x trace 0.92xeager 0.74x trace 0.70x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout),rhs=1eager 2.40x trace 2.03xeager 0.55x trace 0.47x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout),rhs=1eager 0.70x trace 0.64xeager 0.69x trace 0.64x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout),rhs=1eager 1.74x trace 1.46xeager 0.57x trace 0.48x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout),rhs=1eager 1.03x trace 0.90xeager 0.65x trace 0.57x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout),rhs=1eager 2.05x trace 1.83xeager 0.54x trace 0.48x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout),rhs=1eager 0.75x trace 0.71xeager 0.83x trace 0.78x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout),rhs=1eager 1.59x trace 1.43xeager 0.60x trace 0.54x--
batched_solvesuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout),rhs=1eager 1.11x trace 1.06xeager 0.60x trace 0.58x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout)eager 0.92x trace 0.92xeager 0.92x trace 0.92x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout)eager 0.92x trace 0.92xeager 0.88x trace 0.88x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout)eager 0.91x trace 0.92xeager 0.91x trace 0.92x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout)eager 0.91x trace 0.92xeager 0.91x trace 0.91x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout)eager 1.28x trace 1.29xeager 1.16x trace 1.16x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout)eager 1.16x trace 1.13xeager 0.98x trace 0.95x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout)eager 1.27x trace 1.27xeager 1.11x trace 1.11x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout)eager 1.24x trace 1.23xeager 1.09x trace 1.08x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout)eager 1.16x trace 1.16xeager 1.24x trace 1.24x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout)eager 1.13x trace 1.11xeager 1.15x trace 1.13x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout)eager 1.16x trace 1.15xeager 1.23x trace 1.23x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout)eager 1.15x trace 1.15xeager 1.19x trace 1.19x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout)eager 1.08x trace 1.08xeager 1.24x trace 1.24x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout)eager 1.07x trace 1.07xeager 1.17x trace 1.16x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout)eager 1.08x trace 1.07xeager 1.23x trace 1.23x--
batched_svdsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout)eager 1.08x trace 1.08xeager 1.22x trace 1.22x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout)eager 0.97x trace 0.96xeager 1.93x trace 1.93x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout)eager 0.91x trace 0.93xeager 1.30x trace 1.32x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout)eager 0.94x trace 0.94xeager 2.06x trace 2.06x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout)eager 0.94x trace 0.94xeager 1.47x trace 1.47x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout)eager 1.38x trace 1.39xeager 0.99x trace 1.00x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout)eager 1.23x trace 1.20xeager 0.99x trace 0.96x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout)eager 1.34x trace 1.34xeager 0.99x trace 0.98x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout)eager 1.28x trace 1.29xeager 1.07x trace 1.08x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout)eager 1.17x trace 1.17xeager 2.38x trace 2.38x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout)eager 1.13x trace 1.14xeager 1.12x trace 1.14x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout)eager 1.17x trace 1.17xeager 1.16x trace 1.17x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout)eager 1.16x trace 1.18xeager 1.14x trace 1.16x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout)eager 1.13x trace 1.14xeager 2.84x trace 2.85x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout)eager 1.08x trace 1.09xeager 1.16x trace 1.18x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout)eager 1.09x trace 1.09xeager 1.97x trace 1.97x--
batched_svdsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout)eager 1.09x trace 1.09xeager 1.32x trace 1.32x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout)eager 0.93x trace 0.93xeager 3.55x trace 3.54x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout)eager 0.94x trace 0.94xeager 2.06x trace 2.06x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout)eager 0.93x trace 0.93xeager 3.50x trace 3.50x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout)eager 0.93x trace 0.93xeager 3.01x trace 3.01x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout)eager 1.32x trace 1.32xeager 1.05x trace 1.05x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout)eager 1.21x trace 1.18xeager 0.96x trace 0.93x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout)eager 1.31x trace 1.31xeager 1.05x trace 1.05x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout)eager 1.28x trace 1.27xeager 1.07x trace 1.06x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout)eager 1.17x trace 1.17xeager 2.92x trace 2.92x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout)eager 1.16x trace 1.14xeager 1.14x trace 1.12x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout)eager 1.17x trace 1.17xeager 1.13x trace 1.14x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout)eager 1.16x trace 1.16xeager 1.14x trace 1.14x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout)eager 1.09x trace 1.09xeager 5.29x trace 5.28x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout)eager 1.09x trace 1.09xeager 1.10x trace 1.10x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout)eager 1.09x trace 1.09xeager 4.69x trace 4.69x--
batched_svdsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout)eager 1.09x trace 1.09xeager 1.54x trace 1.53x--
eighsuite=large / dtype=f64 / threads=1 / shape=1024x1024eager 1.05x trace 1.05xeager 1.22x trace 1.22x--
eighsuite=large / dtype=f64 / threads=1 / shape=128x128eager 0.94x trace 0.94xeager 0.92x trace 0.91x--
eighsuite=large / dtype=f64 / threads=1 / shape=256x256eager 0.97x trace 0.97xeager 1.03x trace 1.03x--
eighsuite=large / dtype=f64 / threads=1 / shape=512x512eager 1.02x trace 1.01xeager 1.12x trace 1.11x--
eighsuite=large / dtype=f64 / threads=1 / shape=64x64eager 0.96x trace 0.95xeager 0.83x trace 0.82x--
eighsuite=large / dtype=f64 / threads=4 / shape=1024x1024eager 0.30x trace 0.42xeager 0.49x trace 0.67x--
eighsuite=large / dtype=f64 / threads=4 / shape=128x128eager 3.09x trace 1.31xeager 1.39x trace 0.59x--
eighsuite=large / dtype=f64 / threads=4 / shape=256x256eager 1.29x trace 1.28xeager 0.20x trace 0.20x--
eighsuite=large / dtype=f64 / threads=4 / shape=512x512eager 0.65x trace 0.67xeager 0.14x trace 0.15x--
eighsuite=large / dtype=f64 / threads=4 / shape=64x64eager 0.92x trace 0.91xeager 0.55x trace 0.55x--
eighsuite=large / dtype=f64 / threads=8 / shape=1024x1024eager 0.72x trace 0.31xeager 0.60x trace 0.26x--
eighsuite=large / dtype=f64 / threads=8 / shape=128x128eager 0.46x trace 0.46xeager 0.03x trace 0.03x--
eighsuite=large / dtype=f64 / threads=8 / shape=256x256eager 0.25x trace 0.15xeager 1.91x trace 1.18x--
eighsuite=large / dtype=f64 / threads=8 / shape=512x512eager 0.22x trace 0.22xeager 0.22x trace 0.22x--
eighsuite=large / dtype=f64 / threads=8 / shape=64x64eager 0.95x trace 0.94xeager 0.57x trace 0.57x--
eighsuite=small / dtype=f64 / threads=1 / shape=16x16eager 0.93x trace 0.90xeager 0.70x trace 0.68x--
eighsuite=small / dtype=f64 / threads=1 / shape=2x2eager 0.91x trace 0.84xeager 0.60x trace 0.55x--
eighsuite=small / dtype=f64 / threads=1 / shape=32x32eager 0.92x trace 0.90xeager 0.73x trace 0.71x--
eighsuite=small / dtype=f64 / threads=1 / shape=4x4eager 0.98x trace 0.87xeager 0.77x trace 0.68x--
eighsuite=small / dtype=f64 / threads=1 / shape=8x8eager 0.94x trace 0.88xeager 0.72x trace 0.68x--
eighsuite=small / dtype=f64 / threads=4 / shape=16x16eager 0.96x trace 0.91xeager 0.73x trace 0.69x--
eighsuite=small / dtype=f64 / threads=4 / shape=2x2eager 0.98x trace 0.88xeager 0.65x trace 0.58x--
eighsuite=small / dtype=f64 / threads=4 / shape=32x32eager 0.94x trace 0.91xeager 0.78x trace 0.76x--
eighsuite=small / dtype=f64 / threads=4 / shape=4x4eager 1.02x trace 0.94xeager 0.78x trace 0.72x--
eighsuite=small / dtype=f64 / threads=4 / shape=8x8eager 0.99x trace 0.91xeager 0.78x trace 0.72x--
eighsuite=small / dtype=f64 / threads=8 / shape=16x16eager 0.98x trace 0.95xeager 0.72x trace 0.69x--
eighsuite=small / dtype=f64 / threads=8 / shape=2x2eager 1.01x trace 0.92xeager 0.67x trace 0.61x--
eighsuite=small / dtype=f64 / threads=8 / shape=32x32eager 0.97x trace 0.95xeager 0.80x trace 0.78x--
eighsuite=small / dtype=f64 / threads=8 / shape=4x4eager 1.06x trace 0.97xeager 0.70x trace 0.65x--
eighsuite=small / dtype=f64 / threads=8 / shape=8x8eager 1.06x trace 0.94xeager 0.81x trace 0.72x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=1 / shape=16x16eager 0.49x trace 0.68xeager 0.05x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=1 / shape=2x2eager 0.46x trace 0.70xeager 0.05x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=1 / shape=32x32eager 0.53x trace 0.67xeager 0.07x trace 0.09x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=1 / shape=4x4eager 0.45x trace 0.68xeager 0.05x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=1 / shape=8x8eager 0.42x trace 0.67xeager 0.04x trace 0.06x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=4 / shape=16x16eager 0.50x trace 0.68xeager 0.05x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=4 / shape=2x2eager 0.49x trace 0.72xeager 0.05x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=4 / shape=32x32eager 0.54x trace 0.67xeager 0.08x trace 0.10x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=4 / shape=4x4eager 0.49x trace 0.70xeager 0.05x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=4 / shape=8x8eager 0.41x trace 0.68xeager 0.04x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=8 / shape=16x16eager 0.48x trace 0.68xeager 0.05x trace 0.08x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=8 / shape=2x2eager 0.43x trace 0.72xeager 0.04x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=8 / shape=32x32eager 0.56x trace 0.69xeager 0.08x trace 0.10x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=8 / shape=4x4eager 0.42x trace 0.71xeager 0.04x trace 0.07x--
einsum_ij_jk_iksuite=small / dtype=f64 / threads=8 / shape=8x8eager 0.45x trace 0.72xeager 0.04x trace 0.07x--
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout)trace 0.30xtrace 0.82x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout)trace 0.24xtrace 0.84x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout)trace 0.28xtrace 0.94x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout)trace 0.27xtrace 0.94x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout)trace 1.98xtrace 7.15x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout)trace 0.20xtrace 1.39x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout)trace 0.85xtrace 3.35x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout)trace 0.35xtrace 1.47x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout)trace 0.82xtrace 0.82x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout)trace 0.20xtrace 0.81x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout)trace 0.59xtrace 0.79x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout)trace 0.34xtrace 0.74x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout)trace 0.12xtrace 0.84x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout)trace 0.13xtrace 0.73x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout)trace 0.12xtrace 0.83x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout)trace 0.13xtrace 0.75x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout)trace 0.32xtrace 0.56x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout)trace 0.26xtrace 0.90x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout)trace 0.31xtrace 0.68x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout)trace 0.29xtrace 0.82x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout)trace 2.03xtrace 8.52x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout)trace 0.21xtrace 1.41x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout)trace 0.88xtrace 4.00x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout)trace 0.37xtrace 2.03x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout)trace 1.46xtrace 0.56x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout)trace 0.21xtrace 0.97x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout)trace 0.60xtrace 0.62x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout)trace 0.34xtrace 0.70x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout)trace 0.13xtrace 0.50x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout)trace 0.14xtrace 0.92x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout)trace 0.13xtrace 0.62x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout)trace 0.13xtrace 0.66x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout)trace 0.36xtrace 0.72x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout)trace 0.27xtrace 1.09x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout)trace 0.33xtrace 0.73x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout)trace 0.32xtrace 0.94x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout)trace 1.95xtrace 10.66x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout)trace 0.21xtrace 1.31x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout)trace 0.85xtrace 4.02x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout)trace 0.36xtrace 2.17x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout)trace 1.59xtrace 0.55x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout)trace 0.22xtrace 1.11x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout)trace 0.59xtrace 0.60x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout)trace 0.34xtrace 0.74x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout)trace 0.13xtrace 0.52x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout)trace 0.14xtrace 1.01x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout)trace 0.13xtrace 0.67x-status
grad_sum_batched_matmul_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout)trace 0.13xtrace 0.77x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout),rhs=1trace 0.67xtrace 0.60x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout),rhs=1trace 0.51xtrace 0.63x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout),rhs=1trace 0.69xtrace 0.60x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout),rhs=1trace 0.60xtrace 0.59x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout),rhs=1trace 1.62xtrace 0.54x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout),rhs=1trace 0.45xtrace 1.22x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout),rhs=1trace 1.01xtrace 0.60x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout),rhs=1trace 0.60xtrace 0.73x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout),rhs=1trace 1.20xtrace 0.47x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout),rhs=1trace 0.45xtrace 0.88x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout),rhs=1trace 0.89xtrace 0.51x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout),rhs=1trace 0.59xtrace 0.62x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout),rhs=1trace 1.01xtrace 0.73x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout),rhs=1trace 0.51xtrace 0.82x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout),rhs=1trace 0.90xtrace 0.74x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout),rhs=1trace 0.71xtrace 0.75x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout),rhs=1trace 1.46xtrace 0.43x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout),rhs=1trace 0.58xtrace 0.69x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout),rhs=1trace 1.10xtrace 0.48x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout),rhs=1trace 0.74xtrace 0.52x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout),rhs=1trace 1.74xtrace 0.47x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout),rhs=1trace 0.49xtrace 1.36x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout),rhs=1trace 1.06xtrace 0.64x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout),rhs=1trace 0.64xtrace 0.88x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout),rhs=1trace 1.33xtrace 0.43x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout),rhs=1trace 0.48xtrace 1.29x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout),rhs=1trace 0.95xtrace 0.52x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout),rhs=1trace 0.62xtrace 0.68x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout),rhs=1trace 1.49xtrace 0.61x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout),rhs=1trace 0.57xtrace 1.06x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout),rhs=1trace 1.01xtrace 0.71x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout),rhs=1trace 0.76xtrace 0.84x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout),rhs=1trace 1.46xtrace 0.52x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout),rhs=1trace 0.60xtrace 0.72x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout),rhs=1trace 1.24xtrace 0.55x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout),rhs=1trace 0.79xtrace 0.55x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout),rhs=1trace 1.82xtrace 0.52x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout),rhs=1trace 0.50xtrace 1.24x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout),rhs=1trace 1.08xtrace 0.60x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout),rhs=1trace 0.64xtrace 0.90x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout),rhs=1trace 1.37xtrace 0.43x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout),rhs=1trace 0.49xtrace 1.35x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout),rhs=1trace 0.97xtrace 0.50x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout),rhs=1trace 0.64xtrace 0.72x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout),rhs=1trace 1.51xtrace 0.58x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout),rhs=1trace 0.56xtrace 1.12x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout),rhs=1trace 1.05xtrace 0.70x-status
grad_sum_batched_solve_backwardsuite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout),rhs=1trace 0.78xtrace 0.80x-status
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.72xtrace 0.98x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.80xtrace 0.97x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.76xtrace 0.97x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.74xtrace 0.63x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 4.76xtrace 2.61x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 2.21xtrace 1.43x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 1.64xtrace 1.11x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 7.90xtrace 3.17x--
grad_sum_eigh_jvpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 2.93xtrace 1.20x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.34xtrace 1.00x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.21xtrace 2.14x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.51xtrace 0.89x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.23xtrace 1.99x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.25xtrace 1.33x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.35xtrace 1.30x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.24xtrace 2.48x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.55xtrace 1.05x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.25xtrace 2.16x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.28xtrace 2.36x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.36xtrace 1.35x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.25xtrace 2.52x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.55xtrace 1.02x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.26xtrace 2.17x--
grad_sum_eigh_jvpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.29xtrace 2.34x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 1.07xtrace 0.99x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.99xtrace 0.97x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.99xtrace 0.97x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 1.12xtrace 0.64x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 2.53xtrace 1.24x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 1.01xtrace 0.51x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 1.15xtrace 0.56x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 9.02xtrace 3.18x--
grad_sum_eigh_vjpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 5.33xtrace 1.82x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.38xtrace 0.96x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.24xtrace 2.06x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.58xtrace 0.88x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.26xtrace 1.81x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.29xtrace 1.22x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.41xtrace 1.26x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.27xtrace 2.40x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.63xtrace 1.06x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.28xtrace 1.95x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.31xtrace 2.06x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.42xtrace 1.31x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.28xtrace 2.35x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.63xtrace 1.06x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.30xtrace 2.03x--
grad_sum_eigh_vjpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.33xtrace 2.25x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.46xtrace 0.99x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.50xtrace 1.05x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.42xtrace 1.05x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.43xtrace 0.59x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 1.79xtrace 1.69x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.53xtrace 0.66x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 0.69xtrace 0.92x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 1.41xtrace 0.92x--
grad_sum_lu_jvpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 0.79xtrace 0.70x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.18xtrace 1.45x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.16xtrace 2.30x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.25xtrace 1.32x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.16xtrace 2.25x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.17xtrace 1.60x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.19xtrace 2.09x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.17xtrace 2.67x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.28xtrace 1.47x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.18xtrace 2.43x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.18xtrace 1.70x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.19xtrace 2.12x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.18xtrace 2.62x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.24xtrace 0.84x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.18xtrace 2.48x--
grad_sum_lu_jvpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.18xtrace 1.71x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.87xtrace 1.00x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.95xtrace 1.09x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.81xtrace 1.06x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.93xtrace 0.64x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 2.33xtrace 1.37x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.87xtrace 0.56x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 1.53xtrace 0.92x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 3.96xtrace 1.44x--
grad_sum_lu_vjpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 1.60xtrace 0.85x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.22xtrace 1.38x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.19xtrace 2.20x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.34xtrace 1.39x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.19xtrace 2.02x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.19xtrace 1.50x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.23xtrace 2.15x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.21xtrace 2.49x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.44xtrace 1.46x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.20xtrace 2.27x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.21xtrace 1.66x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.24xtrace 2.23x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.21xtrace 2.45x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.45xtrace 1.82x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.21xtrace 2.24x--
grad_sum_lu_vjpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.22xtrace 1.67x--
grad_sum_matmulsuite=large / dtype=f64 / threads=1 / shape=1024x1024eager 0.90x trace 0.85xeager 1.02x trace 0.96x--
grad_sum_matmulsuite=large / dtype=f64 / threads=1 / shape=128x128eager 1.02x trace 0.84xeager 0.91x trace 0.74x--
grad_sum_matmulsuite=large / dtype=f64 / threads=1 / shape=256x256eager 0.91x trace 0.83xeager 0.89x trace 0.81x--
grad_sum_matmulsuite=large / dtype=f64 / threads=1 / shape=512x512eager 0.81x trace 0.78xeager 0.90x trace 0.86x--
grad_sum_matmulsuite=large / dtype=f64 / threads=1 / shape=64x64eager 1.41x trace 0.87xeager 0.76x trace 0.46x--
grad_sum_matmulsuite=large / dtype=f64 / threads=4 / shape=1024x1024eager 1.55x trace 0.81xeager 2.05x trace 1.07x--
grad_sum_matmulsuite=large / dtype=f64 / threads=4 / shape=128x128eager 0.67x trace 0.44xeager 0.56x trace 0.37x--
grad_sum_matmulsuite=large / dtype=f64 / threads=4 / shape=256x256eager 2.31x trace 1.36xeager 1.72x trace 1.01x--
grad_sum_matmulsuite=large / dtype=f64 / threads=4 / shape=512x512eager 1.03x trace 0.51xeager 1.46x trace 0.72x--
grad_sum_matmulsuite=large / dtype=f64 / threads=4 / shape=64x64eager 1.47x trace 0.82xeager 0.78x trace 0.44x--
grad_sum_matmulsuite=large / dtype=f64 / threads=8 / shape=1024x1024eager 1.48x trace 0.85xeager 2.10x trace 1.21x--
grad_sum_matmulsuite=large / dtype=f64 / threads=8 / shape=128x128eager 0.99x trace 0.52xeager 0.60x trace 0.31x--
grad_sum_matmulsuite=large / dtype=f64 / threads=8 / shape=256x256eager 4.07x trace 3.68xeager 2.89x trace 2.62x--
grad_sum_matmulsuite=large / dtype=f64 / threads=8 / shape=512x512eager 1.45x trace 0.88xeager 1.62x trace 0.99x--
grad_sum_matmulsuite=large / dtype=f64 / threads=8 / shape=64x64eager 1.33x trace 3.95xeager 0.79x trace 2.33x--
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.92xtrace 0.99x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=1 / shape=128x128trace 0.85xtrace 1.00x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.91xtrace 0.94x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.87xtrace 0.97x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=1 / shape=64x64trace 0.68xtrace 0.88x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.85xtrace 1.10x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=4 / shape=128x128trace 0.66xtrace 0.63x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=4 / shape=256x256trace 1.76xtrace 1.87x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.66xtrace 0.82x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=4 / shape=64x64trace 0.58xtrace 0.64x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 0.87xtrace 1.22x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=8 / shape=128x128trace 0.68xtrace 0.57x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=8 / shape=256x256trace 2.02xtrace 1.86x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=8 / shape=512x512trace 0.87xtrace 1.09x-status
grad_sum_matmul_backwardsuite=large / dtype=f64 / threads=8 / shape=64x64trace 3.48xtrace 3.53x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.37xtrace 0.73x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.34xtrace 0.94x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.49xtrace 0.70x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.33xtrace 0.90x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.35xtrace 0.59x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.40xtrace 0.84x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.36xtrace 0.99x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.52xtrace 1.15x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.35xtrace 0.95x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.36xtrace 0.85x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.41xtrace 0.93x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.38xtrace 0.91x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.52xtrace 1.35x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.36xtrace 0.83x-status
grad_sum_matmul_backwardsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.38xtrace 0.92x-status
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.84xtrace 0.93x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.92xtrace 1.04x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.84xtrace 1.09x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.96xtrace 0.57x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 4.33xtrace 2.17x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.96xtrace 0.63x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 0.96xtrace 0.56x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 5.53xtrace 1.76x--
grad_sum_qr_jvpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 2.19xtrace 0.96x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.36xtrace 1.79x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.33xtrace 3.40x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.46xtrace 1.42x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.34xtrace 3.29x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.34xtrace 2.32x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.37xtrace 3.17x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.36xtrace 3.99x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.51xtrace 0.86x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.37xtrace 3.51x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.36xtrace 2.65x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.39xtrace 3.16x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.36xtrace 3.90x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.48xtrace 0.25x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.37xtrace 3.45x--
grad_sum_qr_jvpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.37xtrace 2.68x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.88xtrace 0.93x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.90xtrace 1.04x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.80xtrace 1.01x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.96xtrace 0.61x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 4.64xtrace 2.44x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.76xtrace 0.53x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 2.25xtrace 1.28x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 5.51xtrace 1.82x--
grad_sum_qr_vjpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 1.54xtrace 0.77x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.34xtrace 1.85x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.31xtrace 3.47x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.46xtrace 1.50x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.32xtrace 3.06x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.32xtrace 2.37x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.36xtrace 3.35x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.33xtrace 4.02x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.49xtrace 1.63x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.34xtrace 3.49x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.34xtrace 3.08x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.38xtrace 3.40x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.35xtrace 4.00x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.43xtrace 1.33x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.35xtrace 3.51x--
grad_sum_qr_vjpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.36xtrace 3.08x--
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1trace 0.70xtrace 0.95x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=1 / shape=128x128,rhs=1trace 0.72xtrace 0.79x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1trace 0.74xtrace 0.87x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1trace 0.62xtrace 0.74x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=1 / shape=64x64,rhs=1trace 0.59xtrace 0.80x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1trace 0.34xtrace 0.50x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=4 / shape=128x128,rhs=1trace 0.76xtrace 0.91x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1trace 0.01xtrace 0.13x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1trace 0.07xtrace 0.61x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=4 / shape=64x64,rhs=1trace 0.63xtrace 0.88x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1trace 0.20xtrace 0.15x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=8 / shape=128x128,rhs=1trace 0.75xtrace 0.82x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1trace 0.08xtrace 2.05x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1trace 0.09xtrace 1.18x-status
grad_sum_solve_backwardsuite=large / dtype=f64 / threads=8 / shape=64x64,rhs=1trace 0.63xtrace 0.95x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1trace 0.41xtrace 1.29x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1trace 0.40xtrace 1.64x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1trace 0.49xtrace 0.94x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1trace 0.38xtrace 1.27x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1trace 0.39xtrace 1.22x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1trace 0.45xtrace 1.47x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1trace 0.45xtrace 1.92x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1trace 0.54xtrace 1.42x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1trace 0.44xtrace 1.52x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1trace 0.44xtrace 1.44x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1trace 0.48xtrace 1.26x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1trace 0.47xtrace 1.63x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1trace 0.55xtrace 1.64x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1trace 0.46xtrace 1.56x-status
grad_sum_solve_backwardsuite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1trace 0.48xtrace 1.52x-status
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1trace 0.67xtrace 0.87x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1trace 0.65xtrace 0.97x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1trace 0.66xtrace 0.83x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1trace 1.58xtrace 0.99x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1trace 1.53xtrace 1.52x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1trace 0.83xtrace 0.57x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1trace 5.29xtrace 3.33x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1trace 1.92xtrace 5.10x--
grad_sum_solve_jvpsuite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1trace 1.51xtrace 0.93x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1trace 0.07xtrace 1.31x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1trace 0.06xtrace 1.53x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1trace 0.09xtrace 1.09x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1trace 0.06xtrace 1.52x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1trace 0.07xtrace 1.47x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1trace 0.08xtrace 1.44x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1trace 0.07xtrace 1.80x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1trace 0.10xtrace 1.99x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1trace 0.07xtrace 1.78x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1trace 0.07xtrace 1.68x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1trace 0.08xtrace 1.47x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1trace 0.07xtrace 1.76x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1trace 0.10xtrace 1.96x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1trace 0.07xtrace 1.74x--
grad_sum_solve_jvpsuite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1trace 0.07xtrace 1.65x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1trace 0.39xtrace 0.92x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1trace 0.45xtrace 0.95x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1trace 0.40xtrace 0.83x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1trace 0.94xtrace 1.19x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1trace 1.30xtrace 1.42x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1trace 0.54xtrace 0.54x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1trace 1.50xtrace 1.70x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1trace 3.19xtrace 4.99x--
grad_sum_solve_vjpsuite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1trace 1.33xtrace 1.18x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1trace 0.15xtrace 1.14x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1trace 0.14xtrace 1.37x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1trace 0.20xtrace 0.91x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1trace 0.15xtrace 1.34x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1trace 0.15xtrace 1.29x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1trace 0.17xtrace 1.27x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1trace 0.16xtrace 1.62x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1trace 0.22xtrace 1.82x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1trace 0.16xtrace 1.53x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1trace 0.16xtrace 1.45x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1trace 0.18xtrace 1.28x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1trace 0.17xtrace 1.56x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1trace 0.22xtrace 1.72x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1trace 0.17xtrace 1.52x--
grad_sum_solve_vjpsuite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1trace 0.17xtrace 1.49x--
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.93xtrace 0.95x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=1 / shape=128x128trace 0.89xtrace 1.00x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.92xtrace 0.95x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.84xtrace 0.95x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=1 / shape=64x64trace 0.89xtrace 0.99x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.85xtrace 0.64x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=4 / shape=128x128trace 1.24xtrace 1.04x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=4 / shape=256x256trace 1.67xtrace 1.45x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.72xtrace 0.60x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=4 / shape=64x64trace 0.87xtrace 0.89x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 0.84xtrace 0.54x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=8 / shape=128x128trace 1.40xtrace 1.04x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=8 / shape=256x256trace 1.00xtrace 0.72x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=8 / shape=512x512trace 0.80xtrace 0.52x-status
grad_sum_svd_s_backwardsuite=large / dtype=f64 / threads=8 / shape=64x64trace 0.90xtrace 0.89x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.66xtrace 0.88x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.37xtrace 1.34x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.77xtrace 0.92x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.41xtrace 1.31x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.53xtrace 0.96x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.67xtrace 0.96x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.39xtrace 1.47x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.79xtrace 1.01x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.44xtrace 1.35x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.55xtrace 1.34x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.68xtrace 0.98x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.41xtrace 1.33x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.82xtrace 1.02x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.44xtrace 1.31x-status
grad_sum_svd_s_backwardsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.56xtrace 1.56x-status
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.72xtrace 0.96x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.78xtrace 0.97x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.72xtrace 0.95x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.72xtrace 0.64x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 0.84xtrace 0.74x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.75xtrace 0.60x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 0.72xtrace 0.54x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 1.60xtrace 1.20x--
grad_sum_svd_s_jvpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 1.45xtrace 0.96x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.28xtrace 0.94x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.10xtrace 1.39x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.46xtrace 0.96x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.12xtrace 1.35x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.18xtrace 1.10x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.28xtrace 1.09x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.11xtrace 1.56x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.49xtrace 1.09x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.13xtrace 1.40x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.19xtrace 1.68x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.28xtrace 1.10x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.11xtrace 1.51x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.49xtrace 1.09x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.13xtrace 1.42x--
grad_sum_svd_s_jvpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.19xtrace 1.71x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=1 / shape=1024x1024trace 0.98xtrace 0.94x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=1 / shape=256x256trace 0.93xtrace 0.97x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=1 / shape=512x512trace 0.89xtrace 0.94x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=4 / shape=1024x1024trace 0.91xtrace 0.64x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=4 / shape=256x256trace 1.02xtrace 0.81x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=4 / shape=512x512trace 0.86xtrace 0.61x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=8 / shape=1024x1024trace 0.88xtrace 0.53x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=8 / shape=256x256trace 1.79xtrace 1.28x--
grad_sum_svd_s_vjpsuite=large / dtype=f64 / threads=8 / shape=512x512trace 1.49xtrace 0.91x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=1 / shape=16x16trace 0.39xtrace 0.91x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=1 / shape=2x2trace 0.15xtrace 1.25x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=1 / shape=32x32trace 0.60xtrace 0.95x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=1 / shape=4x4trace 0.18xtrace 1.24x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=1 / shape=8x8trace 0.27xtrace 1.04x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=4 / shape=16x16trace 0.40xtrace 1.07x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=4 / shape=2x2trace 0.16xtrace 1.39x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=4 / shape=32x32trace 0.63xtrace 1.09x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=4 / shape=4x4trace 0.19xtrace 1.26x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=4 / shape=8x8trace 0.27xtrace 1.62x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=8 / shape=16x16trace 0.41xtrace 1.07x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=8 / shape=2x2trace 0.17xtrace 1.35x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=8 / shape=32x32trace 0.64xtrace 1.09x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=8 / shape=4x4trace 0.20xtrace 1.27x--
grad_sum_svd_s_vjpsuite=small / dtype=f64 / threads=8 / shape=8x8trace 0.28xtrace 1.65x--
matmulsuite=large / dtype=f64 / threads=1 / shape=1024x1024eager 0.94x trace 0.93xeager 0.99x trace 0.98x--
matmulsuite=large / dtype=f64 / threads=1 / shape=128x128eager 0.75x trace 0.68xeager 0.74x trace 0.67x--
matmulsuite=large / dtype=f64 / threads=1 / shape=256x256eager 0.77x trace 0.73xeager 0.74x trace 0.71x--
matmulsuite=large / dtype=f64 / threads=1 / shape=512x512eager 0.84x trace 0.83xeager 0.91x trace 0.90x--
matmulsuite=large / dtype=f64 / threads=4 / shape=1024x1024eager 0.90x trace 0.90xeager 1.08x trace 1.08x--
matmulsuite=large / dtype=f64 / threads=4 / shape=128x128eager 0.37x trace 0.34xeager 0.37x trace 0.34x--
matmulsuite=large / dtype=f64 / threads=4 / shape=256x256eager 0.45x trace 0.43xeager 0.43x trace 0.41x--
matmulsuite=large / dtype=f64 / threads=4 / shape=512x512eager 0.53x trace 0.56xeager 0.64x trace 0.68x--
matmulsuite=large / dtype=f64 / threads=8 / shape=1024x1024eager 0.89x trace 0.88xeager 1.07x trace 1.05x--
matmulsuite=large / dtype=f64 / threads=8 / shape=128x128eager 0.55x trace 0.39xeager 0.50x trace 0.35x--
matmulsuite=large / dtype=f64 / threads=8 / shape=256x256eager 0.57x trace 0.46xeager 0.48x trace 0.39x--
matmulsuite=large / dtype=f64 / threads=8 / shape=512x512eager 0.58x trace 0.58xeager 0.63x trace 0.63x--
matmulsuite=small / dtype=f64 / threads=1 / shape=16x16eager 1.67x trace 1.45xeager 0.31x trace 0.27x--
matmulsuite=small / dtype=f64 / threads=1 / shape=2x2eager 2.07x trace 2.01xeager 0.47x trace 0.46x--
matmulsuite=small / dtype=f64 / threads=1 / shape=32x32eager 1.21x trace 1.05xeager 0.45x trace 0.40x--
matmulsuite=small / dtype=f64 / threads=1 / shape=4x4eager 2.10x trace 1.90xeager 0.51x trace 0.46x--
matmulsuite=small / dtype=f64 / threads=1 / shape=64x64eager 0.78x trace 0.68xeager 0.56x trace 0.49x--
matmulsuite=small / dtype=f64 / threads=1 / shape=8x8eager 2.12x trace 1.77xeager 0.32x trace 0.27x--
matmulsuite=small / dtype=f64 / threads=4 / shape=16x16eager 1.69x trace 1.44xeager 0.63x trace 0.53x--
matmulsuite=small / dtype=f64 / threads=4 / shape=2x2eager 2.14x trace 2.06xeager 0.50x trace 0.48x--
matmulsuite=small / dtype=f64 / threads=4 / shape=32x32eager 0.96x trace 0.91xeager 0.76x trace 0.72x--
matmulsuite=small / dtype=f64 / threads=4 / shape=4x4eager 2.21x trace 1.99xeager 0.49x trace 0.44x--
matmulsuite=small / dtype=f64 / threads=4 / shape=64x64eager 2.77x trace 0.49xeager 2.16x trace 0.38x--
matmulsuite=small / dtype=f64 / threads=4 / shape=8x8eager 1.71x trace 1.76xeager 0.41x trace 0.42x--
matmulsuite=small / dtype=f64 / threads=8 / shape=16x16eager 1.56x trace 1.40xeager 0.60x trace 0.54x--
matmulsuite=small / dtype=f64 / threads=8 / shape=2x2eager 1.99x trace 2.14xeager 0.51x trace 0.55x--
matmulsuite=small / dtype=f64 / threads=8 / shape=32x32eager 1.21x trace 1.10xeager 0.80x trace 0.72x--
matmulsuite=small / dtype=f64 / threads=8 / shape=4x4eager 1.97x trace 2.02xeager 0.51x trace 0.52x--
matmulsuite=small / dtype=f64 / threads=8 / shape=64x64eager 3.76x trace 2.40xeager 2.36x trace 1.51x--
matmulsuite=small / dtype=f64 / threads=8 / shape=8x8eager 1.82x trace 1.77xeager 0.50x trace 0.49x--
matmul_rectsuite=large / dtype=f64 / threads=1 / shape=1024x256 * 256x1024eager 0.92x trace 0.93xeager 0.96x trace 0.97x--
matmul_rectsuite=large / dtype=f64 / threads=1 / shape=256x1024 * 1024x256eager 0.82x trace 0.82xeager 0.80x trace 0.81x--
matmul_rectsuite=large / dtype=f64 / threads=4 / shape=1024x256 * 256x1024eager 0.70x trace 0.70xeager 0.83x trace 0.82x--
matmul_rectsuite=large / dtype=f64 / threads=4 / shape=256x1024 * 1024x256eager 0.38x trace 0.38xeager 0.43x trace 0.43x--
matmul_rectsuite=large / dtype=f64 / threads=8 / shape=1024x256 * 256x1024eager 0.84x trace 0.85xeager 0.89x trace 0.91x--
matmul_rectsuite=large / dtype=f64 / threads=8 / shape=256x1024 * 1024x256eager 0.49x trace 0.50xeager 0.42x trace 0.42x--
qrsuite=large / dtype=f64 / threads=1 / shape=1024x1024eager 0.81x trace 0.82xeager 0.95x trace 0.95x--
qrsuite=large / dtype=f64 / threads=1 / shape=128x128eager 0.81x trace 0.80xeager 0.89x trace 0.88x--
qrsuite=large / dtype=f64 / threads=1 / shape=256x256eager 0.82x trace 0.81xeager 1.00x trace 0.99x--
qrsuite=large / dtype=f64 / threads=1 / shape=512x512eager 0.83x trace 0.83xeager 0.99x trace 0.99x--
qrsuite=large / dtype=f64 / threads=1 / shape=64x64eager 0.86x trace 0.83xeager 0.92x trace 0.88x--
qrsuite=large / dtype=f64 / threads=4 / shape=1024x1024eager 0.90x trace 0.89xeager 0.66x trace 0.65x--
qrsuite=large / dtype=f64 / threads=4 / shape=128x128eager 1.65x trace 3.13xeager 1.02x trace 1.94x--
qrsuite=large / dtype=f64 / threads=4 / shape=256x256eager 1.30x trace 1.31xeager 0.92x trace 0.93x--
qrsuite=large / dtype=f64 / threads=4 / shape=512x512eager 0.88x trace 0.83xeager 0.67x trace 0.63x--
qrsuite=large / dtype=f64 / threads=4 / shape=64x64eager 1.08x trace 0.88xeager 1.24x trace 1.01x--
qrsuite=large / dtype=f64 / threads=8 / shape=1024x1024eager 1.38x trace 0.89xeager 0.93x trace 0.60x--
qrsuite=large / dtype=f64 / threads=8 / shape=128x128eager 2.10x trace 2.05xeager 1.10x trace 1.08x--
qrsuite=large / dtype=f64 / threads=8 / shape=256x256eager 1.57x trace 2.09xeager 0.90x trace 1.20x--
qrsuite=large / dtype=f64 / threads=8 / shape=512x512eager 1.50x trace 1.42xeager 0.86x trace 0.81x--
qrsuite=large / dtype=f64 / threads=8 / shape=64x64eager 1.06x trace 1.06xeager 1.34x trace 1.34x--
qrsuite=small / dtype=f64 / threads=1 / shape=16x16eager 1.05x trace 0.92xeager 0.55x trace 0.48x--
qrsuite=small / dtype=f64 / threads=1 / shape=2x2eager 1.18x trace 1.08xeager 0.54x trace 0.50x--
qrsuite=small / dtype=f64 / threads=1 / shape=32x32eager 0.86x trace 0.78xeager 0.54x trace 0.49x--
qrsuite=small / dtype=f64 / threads=1 / shape=4x4eager 1.12x trace 1.00xeager 0.64x trace 0.57x--
qrsuite=small / dtype=f64 / threads=1 / shape=8x8eager 1.23x trace 0.98xeager 0.66x trace 0.53x--
qrsuite=small / dtype=f64 / threads=4 / shape=16x16eager 0.91x trace 0.80xeager 0.58x trace 0.50x--
qrsuite=small / dtype=f64 / threads=4 / shape=2x2eager 1.04x trace 0.95xeager 0.59x trace 0.54x--
qrsuite=small / dtype=f64 / threads=4 / shape=32x32eager 0.85x trace 0.77xeager 0.67x trace 0.61x--
qrsuite=small / dtype=f64 / threads=4 / shape=4x4eager 1.02x trace 0.91xeager 0.70x trace 0.62x--
qrsuite=small / dtype=f64 / threads=4 / shape=8x8eager 1.08x trace 0.90xeager 0.66x trace 0.55x--
qrsuite=small / dtype=f64 / threads=8 / shape=16x16eager 0.92x trace 0.77xeager 0.65x trace 0.54x--
qrsuite=small / dtype=f64 / threads=8 / shape=2x2eager 1.15x trace 0.96xeager 0.67x trace 0.57x--
qrsuite=small / dtype=f64 / threads=8 / shape=32x32eager 0.80x trace 0.73xeager 0.72x trace 0.66x--
qrsuite=small / dtype=f64 / threads=8 / shape=4x4eager 0.99x trace 0.90xeager 0.62x trace 0.57x--
qrsuite=small / dtype=f64 / threads=8 / shape=8x8eager 1.03x trace 0.90xeager 0.60x trace 0.52x--
solvesuite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1eager 0.63x trace 0.65xeager 0.80x trace 0.83x--
solvesuite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=16eager 0.63x trace 0.65xeager 0.82x trace 0.84x--
solvesuite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=64eager 0.64x trace 0.66xeager 0.83x trace 0.85x--
solvesuite=large / dtype=f64 / threads=1 / shape=128x128,rhs=1eager 0.85x trace 0.87xeager 0.78x trace 0.80x--
solvesuite=large / dtype=f64 / threads=1 / shape=128x128,rhs=16eager 0.85x trace 0.88xeager 0.72x trace 0.74x--
solvesuite=large / dtype=f64 / threads=1 / shape=128x128,rhs=64eager 0.88x trace 0.91xeager 0.75x trace 0.77x--
solvesuite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1eager 0.79x trace 0.80xeager 0.84x trace 0.85x--
solvesuite=large / dtype=f64 / threads=1 / shape=256x256,rhs=16eager 0.81x trace 0.82xeager 0.84x trace 0.85x--
solvesuite=large / dtype=f64 / threads=1 / shape=256x256,rhs=64eager 0.82x trace 0.83xeager 0.82x trace 0.84x--
solvesuite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1eager 0.73x trace 0.74xeager 0.69x trace 0.70x--
solvesuite=large / dtype=f64 / threads=1 / shape=512x512,rhs=16eager 0.75x trace 0.75xeager 0.73x trace 0.73x--
solvesuite=large / dtype=f64 / threads=1 / shape=512x512,rhs=64eager 0.77x trace 0.78xeager 0.74x trace 0.75x--
solvesuite=large / dtype=f64 / threads=1 / shape=64x64,rhs=1eager 0.81x trace 0.81xeager 0.67x trace 0.67x--
solvesuite=large / dtype=f64 / threads=1 / shape=64x64,rhs=16eager 0.81x trace 0.83xeager 0.62x trace 0.63x--
solvesuite=large / dtype=f64 / threads=1 / shape=64x64,rhs=64eager 0.82x trace 0.84xeager 0.58x trace 0.59x--
solvesuite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1eager 0.34x trace 0.68xeager 0.19x trace 0.37x--
solvesuite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=16eager 0.24x trace 0.25xeager 0.41x trace 0.43x--
solvesuite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=64eager 0.38x trace 0.40xeager 0.42x trace 0.44x--
solvesuite=large / dtype=f64 / threads=4 / shape=128x128,rhs=1eager 0.87x trace 7.06xeager 0.86x trace 7.00x--
solvesuite=large / dtype=f64 / threads=4 / shape=128x128,rhs=16eager 0.01x trace 0.05xeager 0.01x trace 0.04x--
solvesuite=large / dtype=f64 / threads=4 / shape=128x128,rhs=64eager 0.01x trace 0.04xeager 0.07x trace 0.30x--
solvesuite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1eager 0.01x trace 0.03xeager 0.06x trace 0.26x--
solvesuite=large / dtype=f64 / threads=4 / shape=256x256,rhs=16eager 0.00x trace 0.02xeager 0.05x trace 0.18x--
solvesuite=large / dtype=f64 / threads=4 / shape=256x256,rhs=64eager 0.01x trace 0.03xeager 0.10x trace 0.43x--
solvesuite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1eager 0.01x trace 0.01xeager 0.26x trace 0.44x--
solvesuite=large / dtype=f64 / threads=4 / shape=512x512,rhs=16eager 0.77x trace 1.25xeager 0.04x trace 0.06x--
solvesuite=large / dtype=f64 / threads=4 / shape=512x512,rhs=64eager 0.32x trace 0.65xeager 0.05x trace 0.10x--
solvesuite=large / dtype=f64 / threads=4 / shape=64x64,rhs=1eager 0.82x trace 0.85xeager 0.70x trace 0.72x--
solvesuite=large / dtype=f64 / threads=4 / shape=64x64,rhs=16eager 0.84x trace 0.86xeager 0.52x trace 0.54x--
solvesuite=large / dtype=f64 / threads=4 / shape=64x64,rhs=64eager 0.78x trace 0.80xeager 0.49x trace 0.50x--
solvesuite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1eager 0.05x trace 0.05xeager 0.03x trace 0.03x--
solvesuite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=16eager 0.04x trace 0.28xeager 0.03x trace 0.22x--
solvesuite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=64eager 0.07x trace 0.13xeager 0.05x trace 0.09x--
solvesuite=large / dtype=f64 / threads=8 / shape=128x128,rhs=1eager 0.89x trace 0.89xeager 0.79x trace 0.78x--
solvesuite=large / dtype=f64 / threads=8 / shape=128x128,rhs=16eager 0.01x trace 0.05xeager 0.01x trace 0.03x--
solvesuite=large / dtype=f64 / threads=8 / shape=128x128,rhs=64eager 0.02x trace 0.06xeager 0.03x trace 0.10x--
solvesuite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1eager 0.02x trace 0.05xeager 0.30x trace 0.89x--
solvesuite=large / dtype=f64 / threads=8 / shape=256x256,rhs=16eager 0.01x trace 0.03xeager 0.06x trace 0.17x--
solvesuite=large / dtype=f64 / threads=8 / shape=256x256,rhs=64eager 0.02x trace 0.04xeager 0.04x trace 0.10x--
solvesuite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1eager 0.01x trace 0.02xeager 0.01x trace 0.01x--
solvesuite=large / dtype=f64 / threads=8 / shape=512x512,rhs=16eager 0.02x trace 0.04xeager 0.01x trace 0.01x--
solvesuite=large / dtype=f64 / threads=8 / shape=512x512,rhs=64eager 0.03x trace 0.08xeager 0.10x trace 0.25x--
solvesuite=large / dtype=f64 / threads=8 / shape=64x64,rhs=1eager 0.83x trace 0.83xeager 0.77x trace 0.76x--
solvesuite=large / dtype=f64 / threads=8 / shape=64x64,rhs=16eager 0.84x trace 0.89xeager 0.56x trace 0.59x--
solvesuite=large / dtype=f64 / threads=8 / shape=64x64,rhs=64eager 0.81x trace 0.87xeager 0.50x trace 0.53x--
solvesuite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1eager 0.50x trace 0.52xeager 0.64x trace 0.65x--
solvesuite=small / dtype=f64 / threads=1 / shape=16x16,rhs=4eager 0.46x trace 0.54xeager 0.68x trace 0.79x--
solvesuite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1eager 0.38x trace 0.48xeager 0.52x trace 0.65x--
solvesuite=small / dtype=f64 / threads=1 / shape=2x2,rhs=4eager 0.39x trace 0.47xeager 0.51x trace 0.62x--
solvesuite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1eager 0.65x trace 0.69xeager 0.60x trace 0.63x--
solvesuite=small / dtype=f64 / threads=1 / shape=32x32,rhs=4eager 0.66x trace 0.70xeager 0.58x trace 0.63x--
solvesuite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1eager 0.44x trace 0.50xeager 0.55x trace 0.62x--
solvesuite=small / dtype=f64 / threads=1 / shape=4x4,rhs=4eager 0.45x trace 0.49xeager 0.56x trace 0.60x--
solvesuite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1eager 0.46x trace 0.50xeager 0.69x trace 0.75x--
solvesuite=small / dtype=f64 / threads=1 / shape=8x8,rhs=4eager 0.43x trace 0.51xeager 0.60x trace 0.71x--
solvesuite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1eager 0.54x trace 0.57xeager 0.69x trace 0.73x--
solvesuite=small / dtype=f64 / threads=4 / shape=16x16,rhs=4eager 0.50x trace 0.60xeager 0.73x trace 0.88x--
solvesuite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1eager 0.42x trace 0.54xeager 0.56x trace 0.71x--
solvesuite=small / dtype=f64 / threads=4 / shape=2x2,rhs=4eager 0.42x trace 0.54xeager 0.55x trace 0.71x--
solvesuite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1eager 0.68x trace 0.74xeager 0.90x trace 0.98x--
solvesuite=small / dtype=f64 / threads=4 / shape=32x32,rhs=4eager 0.67x trace 0.72xeager 0.69x trace 0.74x--
solvesuite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1eager 0.47x trace 0.57xeager 0.56x trace 0.68x--
solvesuite=small / dtype=f64 / threads=4 / shape=4x4,rhs=4eager 0.47x trace 0.57xeager 0.57x trace 0.69x--
solvesuite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1eager 0.50x trace 0.56xeager 0.72x trace 0.81x--
solvesuite=small / dtype=f64 / threads=4 / shape=8x8,rhs=4eager 0.46x trace 0.57xeager 0.63x trace 0.77x--
solvesuite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1eager 0.55x trace 0.60xeager 0.69x trace 0.75x--
solvesuite=small / dtype=f64 / threads=8 / shape=16x16,rhs=4eager 0.51x trace 0.62xeager 0.63x trace 0.77x--
solvesuite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1eager 0.50x trace 0.57xeager 0.68x trace 0.78x--
solvesuite=small / dtype=f64 / threads=8 / shape=2x2,rhs=4eager 0.50x trace 0.57xeager 0.69x trace 0.79x--
solvesuite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1eager 0.72x trace 0.75xeager 1.08x trace 1.12x--
solvesuite=small / dtype=f64 / threads=8 / shape=32x32,rhs=4eager 0.72x trace 0.80xeager 0.96x trace 1.07x--
solvesuite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1eager 0.47x trace 0.59xeager 0.61x trace 0.77x--
solvesuite=small / dtype=f64 / threads=8 / shape=4x4,rhs=4eager 0.47x trace 0.59xeager 0.58x trace 0.74x--
solvesuite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1eager 0.50x trace 0.60xeager 0.59x trace 0.71x--
solvesuite=small / dtype=f64 / threads=8 / shape=8x8,rhs=4eager 0.50x trace 0.62xeager 0.54x trace 0.67x--
svdsuite=large / dtype=f64 / threads=1 / shape=1024x1024eager 0.87x trace 0.88xeager 0.97x trace 0.98x--
svdsuite=large / dtype=f64 / threads=1 / shape=128x128eager 0.91x trace 0.91xeager 0.98x trace 0.98x--
svdsuite=large / dtype=f64 / threads=1 / shape=256x256eager 0.89x trace 0.89xeager 0.95x trace 0.95x--
svdsuite=large / dtype=f64 / threads=1 / shape=512x512eager 0.91x trace 0.91xeager 0.94x trace 0.94x--
svdsuite=large / dtype=f64 / threads=1 / shape=64x64eager 0.93x trace 0.93xeager 0.98x trace 0.98x--
svdsuite=large / dtype=f64 / threads=4 / shape=1024x1024eager 0.88x trace 0.88xeager 0.71x trace 0.71x--
svdsuite=large / dtype=f64 / threads=4 / shape=128x128eager 1.09x trace 1.26xeager 0.96x trace 1.12x--
svdsuite=large / dtype=f64 / threads=4 / shape=256x256eager 1.39x trace 0.91xeager 1.33x trace 0.87x--
svdsuite=large / dtype=f64 / threads=4 / shape=512x512eager 0.93x trace 0.94xeager 0.65x trace 0.65x--
svdsuite=large / dtype=f64 / threads=4 / shape=64x64eager 0.94x trace 0.93xeager 0.87x trace 0.86x--
svdsuite=large / dtype=f64 / threads=8 / shape=1024x1024eager 0.83x trace 0.87xeager 0.59x trace 0.62x--
svdsuite=large / dtype=f64 / threads=8 / shape=128x128eager 1.09x trace 1.09xeager 0.92x trace 0.92x--
svdsuite=large / dtype=f64 / threads=8 / shape=256x256eager 0.95x trace 1.39xeager 0.82x trace 1.20x--
svdsuite=large / dtype=f64 / threads=8 / shape=512x512eager 2.24x trace 2.27xeager 1.40x trace 1.42x--
svdsuite=large / dtype=f64 / threads=8 / shape=64x64eager 0.95x trace 0.95xeager 0.90x trace 0.90x--
svdsuite=small / dtype=f64 / threads=1 / shape=16x16eager 0.91x trace 0.89xeager 0.84x trace 0.82x--
svdsuite=small / dtype=f64 / threads=1 / shape=2x2eager 0.93x trace 0.84xeager 0.61x trace 0.55x--
svdsuite=small / dtype=f64 / threads=1 / shape=32x32eager 0.90x trace 0.88xeager 0.87x trace 0.85x--
svdsuite=small / dtype=f64 / threads=1 / shape=4x4eager 0.96x trace 0.92xeager 0.73x trace 0.69x--
svdsuite=small / dtype=f64 / threads=1 / shape=8x8eager 1.00x trace 0.96xeager 0.90x trace 0.87x--
svdsuite=small / dtype=f64 / threads=4 / shape=16x16eager 0.94x trace 0.90xeager 0.85x trace 0.82x--
svdsuite=small / dtype=f64 / threads=4 / shape=2x2eager 0.99x trace 0.88xeager 0.65x trace 0.58x--
svdsuite=small / dtype=f64 / threads=4 / shape=32x32eager 0.89x trace 0.88xeager 0.93x trace 0.92x--
svdsuite=small / dtype=f64 / threads=4 / shape=4x4eager 1.01x trace 0.93xeager 0.76x trace 0.70x--
svdsuite=small / dtype=f64 / threads=4 / shape=8x8eager 1.04x trace 0.97xeager 0.97x trace 0.89x--
svdsuite=small / dtype=f64 / threads=8 / shape=16x16eager 0.95x trace 0.92xeager 0.84x trace 0.82x--
svdsuite=small / dtype=f64 / threads=8 / shape=2x2eager 1.00x trace 0.92xeager 0.57x trace 0.52x--
svdsuite=small / dtype=f64 / threads=8 / shape=32x32eager 0.92x trace 0.91xeager 0.96x trace 0.95x--
svdsuite=small / dtype=f64 / threads=8 / shape=4x4eager 1.09x trace 0.96xeager 0.81x trace 0.71x--
svdsuite=small / dtype=f64 / threads=8 / shape=8x8eager 1.05x trace 1.00xeager 0.89x trace 0.84x--

Charts below are ordered best first (smallest ratio).

solve suite=large / dtype=f64 / threads=4 / shape=256x256,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (32.507 ms)jax-cpu3.299 mspytorch-cpu32.507 mstenferro-eager0.1608 ms · 0.00xtenferro-trace0.5955 ms · 0.02x

solve suite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (108.948 ms)jax-cpu2.472 mspytorch-cpu108.948 mstenferro-eager0.6366 ms · 0.01xtenferro-trace1.091 ms · 0.01x

solve suite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (21.984 ms)jax-cpu2.183 mspytorch-cpu21.984 mstenferro-eager0.1308 ms · 0.01xtenferro-trace0.5672 ms · 0.03x

solve suite=large / dtype=f64 / threads=4 / shape=256x256,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (32.015 ms)jax-cpu1.988 mspytorch-cpu32.015 mstenferro-eager0.2066 ms · 0.01xtenferro-trace0.8629 ms · 0.03x

solve suite=large / dtype=f64 / threads=4 / shape=128x128,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (9.691 ms)pytorch-cpu9.691 msjax-cpu12.517 mstenferro-eager0.09703 ms · 0.01xtenferro-trace0.5079 ms · 0.05x

solve suite=large / dtype=f64 / threads=4 / shape=128x128,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (11.945 ms)jax-cpu1.765 mspytorch-cpu11.945 mstenferro-eager0.1267 ms · 0.01xtenferro-trace0.5263 ms · 0.04x

solve suite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (86.898 ms)pytorch-cpu86.898 msjax-cpu131.230 mstenferro-eager0.9269 ms · 0.01xtenferro-trace1.634 ms · 0.02x

solve suite=large / dtype=f64 / threads=8 / shape=256x256,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (33.196 ms)jax-cpu6.649 mspytorch-cpu33.196 mstenferro-eager0.4164 ms · 0.01xtenferro-trace1.145 ms · 0.03x

solve suite=large / dtype=f64 / threads=8 / shape=128x128,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.314 ms)pytorch-cpu8.314 msjax-cpu14.987 mstenferro-eager0.1124 ms · 0.01xtenferro-trace0.384 ms · 0.05x

grad_sum_solve_backward suite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (27.962 ms)jax-cpu2.977 mspytorch-cpu27.962 mstenferro-trace0.3855 ms · 0.01x

solve suite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (21.977 ms)jax-cpu1.145 mspytorch-cpu21.977 mstenferro-eager0.3407 ms · 0.02xtenferro-trace1.024 ms · 0.05x

solve suite=large / dtype=f64 / threads=8 / shape=256x256,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (31.792 ms)jax-cpu12.270 mspytorch-cpu31.792 mstenferro-eager0.495 ms · 0.02xtenferro-trace1.223 ms · 0.04x

solve suite=large / dtype=f64 / threads=8 / shape=128x128,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (7.109 ms)jax-cpu4.009 mspytorch-cpu7.109 mstenferro-eager0.1268 ms · 0.02xtenferro-trace0.3967 ms · 0.06x

solve suite=large / dtype=f64 / threads=8 / shape=512x512,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (46.236 ms)pytorch-cpu46.236 msjax-cpu126.248 mstenferro-eager0.8712 ms · 0.02xtenferro-trace1.851 ms · 0.04x

solve suite=large / dtype=f64 / threads=8 / shape=512x512,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (36.520 ms)jax-cpu11.964 mspytorch-cpu36.520 mstenferro-eager1.159 ms · 0.03xtenferro-trace3.039 ms · 0.08x

solve suite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (116.570 ms)pytorch-cpu116.570 msjax-cpu149.175 mstenferro-eager4.211 ms · 0.04xtenferro-trace32.299 ms · 0.28x

solve suite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (77.950 ms)pytorch-cpu77.950 msjax-cpu134.573 mstenferro-eager3.809 ms · 0.05xtenferro-trace3.927 ms · 0.05x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1242 ms)jax-cpu0.005163 mspytorch-cpu0.1242 mstenferro-trace0.007891 ms · 0.06x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1241 ms)jax-cpu0.005246 mspytorch-cpu0.1241 mstenferro-trace0.007975 ms · 0.06x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1245 ms)jax-cpu0.005586 mspytorch-cpu0.1245 mstenferro-trace0.008208 ms · 0.07x

solve suite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (98.047 ms)pytorch-cpu98.047 msjax-cpu136.933 mstenferro-eager6.718 ms · 0.07xtenferro-trace12.696 ms · 0.13x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1286 ms)jax-cpu0.006725 mspytorch-cpu0.1286 mstenferro-trace0.008829 ms · 0.07x

grad_sum_solve_backward suite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (29.917 ms)jax-cpu3.422 mspytorch-cpu29.917 mstenferro-trace2.097 ms · 0.07x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1995 ms)jax-cpu0.008213 mspytorch-cpu0.1995 mstenferro-trace0.01445 ms · 0.07x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1997 ms)jax-cpu0.008382 mspytorch-cpu0.1997 mstenferro-trace0.01457 ms · 0.07x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.13 ms)jax-cpu0.005644 mspytorch-cpu0.13 mstenferro-trace0.009497 ms · 0.07x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1291 ms)jax-cpu0.005255 mspytorch-cpu0.1291 mstenferro-trace0.009453 ms · 0.07x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1277 ms)jax-cpu0.005245 mspytorch-cpu0.1277 mstenferro-trace0.009353 ms · 0.07x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2017 ms)jax-cpu0.009076 mspytorch-cpu0.2017 mstenferro-trace0.01502 ms · 0.07x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1297 ms)jax-cpu0.006992 mspytorch-cpu0.1297 mstenferro-trace0.01004 ms · 0.08x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2064 ms)jax-cpu0.01094 mspytorch-cpu0.2064 mstenferro-trace0.01604 ms · 0.08x

grad_sum_solve_backward suite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (27.940 ms)jax-cpu1.140 mspytorch-cpu27.940 mstenferro-trace2.337 ms · 0.08x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1348 ms)jax-cpu0.01153 mspytorch-cpu0.1348 mstenferro-trace0.01259 ms · 0.09x

grad_sum_solve_backward suite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (32.841 ms)jax-cpu2.601 mspytorch-cpu32.841 mstenferro-trace3.071 ms · 0.09x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07092 ms)jax-cpu0.005223 mspytorch-cpu0.07092 mstenferro-trace0.007258 ms · 0.10x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2153 ms)jax-cpu0.01129 mspytorch-cpu0.2153 mstenferro-trace0.02215 ms · 0.10x

grad_sum_solve_jvp suite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1364 ms)jax-cpu0.007161 mspytorch-cpu0.1364 mstenferro-trace0.01424 ms · 0.10x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07463 ms)jax-cpu0.005207 mspytorch-cpu0.07463 mstenferro-trace0.00814 ms · 0.11x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1129 ms)jax-cpu0.008364 mspytorch-cpu0.1129 mstenferro-trace0.01266 ms · 0.11x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07231 ms)jax-cpu0.006528 mspytorch-cpu0.07231 mstenferro-trace0.008807 ms · 0.12x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7337 ms)jax-cpu0.1097 mspytorch-cpu0.7337 mstenferro-trace0.09055 ms · 0.12x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.807 ms)jax-cpu0.4174 mspytorch-cpu2.807 mstenferro-trace0.3496 ms · 0.12x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2137 ms)jax-cpu0.03622 mspytorch-cpu0.2137 mstenferro-trace0.02722 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7289 ms)jax-cpu0.1508 mspytorch-cpu0.7289 mstenferro-trace0.09412 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.109 ms)jax-cpu0.2138 mspytorch-cpu1.109 mstenferro-trace0.1437 ms · 0.13x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07412 ms)jax-cpu0.006886 mspytorch-cpu0.07412 mstenferro-trace0.009639 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.265 ms)jax-cpu1.069 mspytorch-cpu4.265 mstenferro-trace0.5603 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2154 ms)jax-cpu0.04269 mspytorch-cpu0.2154 mstenferro-trace0.02834 ms · 0.13x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1153 ms)jax-cpu0.01072 mspytorch-cpu0.1153 mstenferro-trace0.01518 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.796 ms)jax-cpu0.7413 mspytorch-cpu2.796 mstenferro-trace0.3708 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08519 ms)jax-cpu0.01556 mspytorch-cpu0.08519 mstenferro-trace0.01131 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3277 ms)jax-cpu0.05718 mspytorch-cpu0.3277 mstenferro-trace0.04398 ms · 0.13x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08596 ms)jax-cpu0.01295 mspytorch-cpu0.08596 mstenferro-trace0.01195 ms · 0.14x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.054 ms)jax-cpu0.005631 mspytorch-cpu0.054 mstenferro-trace0.007726 ms · 0.14x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1314 ms)jax-cpu0.01862 mspytorch-cpu0.1314 mstenferro-trace0.01885 ms · 0.14x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05299 ms)jax-cpu0.005827 mspytorch-cpu0.05299 mstenferro-trace0.007784 ms · 0.15x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05398 ms)jax-cpu0.006187 mspytorch-cpu0.05398 mstenferro-trace0.008 ms · 0.15x

eigh suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (76.439 ms)jax-cpu9.824 mspytorch-cpu76.439 mstenferro-eager18.800 ms · 0.25xtenferro-trace11.581 ms · 0.15x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05667 ms)jax-cpu0.007526 mspytorch-cpu0.05667 mstenferro-trace0.008615 ms · 0.15x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04419 ms)jax-cpu0.005445 mspytorch-cpu0.04419 mstenferro-trace0.006825 ms · 0.15x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07624 ms)jax-cpu0.005285 mspytorch-cpu0.07624 mstenferro-trace0.01217 ms · 0.16x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07559 ms)jax-cpu0.005447 mspytorch-cpu0.07559 mstenferro-trace0.01228 ms · 0.16x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05652 ms)jax-cpu0.00637 mspytorch-cpu0.05652 mstenferro-trace0.009245 ms · 0.16x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05568 ms)jax-cpu0.005651 mspytorch-cpu0.05568 mstenferro-trace0.009159 ms · 0.16x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05477 ms)jax-cpu0.005898 mspytorch-cpu0.05477 mstenferro-trace0.009015 ms · 0.16x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0457 ms)jax-cpu0.005406 mspytorch-cpu0.0457 mstenferro-trace0.007526 ms · 0.16x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07668 ms)jax-cpu0.007936 mspytorch-cpu0.07668 mstenferro-trace0.01269 ms · 0.17x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08415 ms)jax-cpu0.009053 mspytorch-cpu0.08415 mstenferro-trace0.01416 ms · 0.17x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06905 ms)jax-cpu0.008643 mspytorch-cpu0.06905 mstenferro-trace0.01165 ms · 0.17x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08406 ms)jax-cpu0.009322 mspytorch-cpu0.08406 mstenferro-trace0.01418 ms · 0.17x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08591 ms)jax-cpu0.009919 mspytorch-cpu0.08591 mstenferro-trace0.01475 ms · 0.17x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05722 ms)jax-cpu0.007757 mspytorch-cpu0.05722 mstenferro-trace0.009841 ms · 0.17x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08192 ms)jax-cpu0.005352 mspytorch-cpu0.08192 mstenferro-trace0.01431 ms · 0.17x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1267 ms)jax-cpu0.008511 mspytorch-cpu0.1267 mstenferro-trace0.02229 ms · 0.18x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08868 ms)jax-cpu0.01222 mspytorch-cpu0.08868 mstenferro-trace0.01567 ms · 0.18x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08056 ms)jax-cpu0.005901 mspytorch-cpu0.08056 mstenferro-trace0.01433 ms · 0.18x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08279 ms)jax-cpu0.00866 mspytorch-cpu0.08279 mstenferro-trace0.01474 ms · 0.18x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07956 ms)jax-cpu0.01293 mspytorch-cpu0.07956 mstenferro-trace0.01418 ms · 0.18x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08292 ms)jax-cpu0.01025 mspytorch-cpu0.08292 mstenferro-trace0.01489 ms · 0.18x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04591 ms)jax-cpu0.006714 mspytorch-cpu0.04591 mstenferro-trace0.008305 ms · 0.18x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1251 ms)jax-cpu0.009149 mspytorch-cpu0.1251 mstenferro-trace0.02264 ms · 0.18x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1272 ms)jax-cpu0.01362 mspytorch-cpu0.1272 mstenferro-trace0.02336 ms · 0.18x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1268 ms)jax-cpu0.01391 mspytorch-cpu0.1268 mstenferro-trace0.02384 ms · 0.19x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06087 ms)jax-cpu0.005241 mspytorch-cpu0.06087 mstenferro-trace0.01151 ms · 0.19x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07858 ms)jax-cpu0.008897 mspytorch-cpu0.07858 mstenferro-trace0.01498 ms · 0.19x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06116 ms)jax-cpu0.005769 mspytorch-cpu0.06116 mstenferro-trace0.01167 ms · 0.19x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04745 ms)jax-cpu0.007174 mspytorch-cpu0.04745 mstenferro-trace0.009075 ms · 0.19x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06204 ms)jax-cpu0.007993 mspytorch-cpu0.06204 mstenferro-trace0.01202 ms · 0.19x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08732 ms)jax-cpu0.008088 mspytorch-cpu0.08732 mstenferro-trace0.01694 ms · 0.19x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1383 ms)jax-cpu0.01267 mspytorch-cpu0.1383 mstenferro-trace0.02692 ms · 0.19x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06396 ms)jax-cpu0.01373 mspytorch-cpu0.06396 mstenferro-trace0.01249 ms · 0.20x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07117 ms)jax-cpu0.01114 mspytorch-cpu0.07117 mstenferro-trace0.01417 ms · 0.20x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03987 ms)jax-cpu0.00577 mspytorch-cpu0.03987 mstenferro-trace0.007998 ms · 0.20x

grad_sum_solve_backward suite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (99.863 ms)pytorch-cpu99.863 msjax-cpu135.058 mstenferro-trace20.034 ms · 0.20x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04244 ms)jax-cpu0.01053 mspytorch-cpu0.04244 mstenferro-trace0.008541 ms · 0.20x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06477 ms)jax-cpu0.005849 mspytorch-cpu0.06477 mstenferro-trace0.01327 ms · 0.20x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06454 ms)jax-cpu0.005339 mspytorch-cpu0.06454 mstenferro-trace0.01331 ms · 0.21x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06599 ms)jax-cpu0.008228 mspytorch-cpu0.06599 mstenferro-trace0.01367 ms · 0.21x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0989 ms)jax-cpu0.00845 mspytorch-cpu0.0989 mstenferro-trace0.02067 ms · 0.21x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04733 ms)jax-cpu0.004629 mspytorch-cpu0.04733 mstenferro-trace0.009923 ms · 0.21x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04324 ms)jax-cpu0.009354 mspytorch-cpu0.04324 mstenferro-trace0.009103 ms · 0.21x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06321 ms)jax-cpu0.01021 mspytorch-cpu0.06321 mstenferro-trace0.01334 ms · 0.21x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04079 ms)jax-cpu0.006101 mspytorch-cpu0.04079 mstenferro-trace0.00863 ms · 0.21x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0991 ms)jax-cpu0.009355 mspytorch-cpu0.0991 mstenferro-trace0.02098 ms · 0.21x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06613 ms)jax-cpu0.01287 mspytorch-cpu0.06613 mstenferro-trace0.01422 ms · 0.22x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1021 ms)jax-cpu0.01278 mspytorch-cpu0.1021 mstenferro-trace0.02204 ms · 0.22x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1011 ms)jax-cpu0.01304 mspytorch-cpu0.1011 mstenferro-trace0.02182 ms · 0.22x

eigh suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (152.904 ms)jax-cpu151.430 mspytorch-cpu152.904 mstenferro-eager33.323 ms · 0.22xtenferro-trace33.022 ms · 0.22x

grad_sum_solve_vjp suite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06424 ms)jax-cpu0.007778 mspytorch-cpu0.06424 mstenferro-trace0.01413 ms · 0.22x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06627 ms)jax-cpu0.01059 mspytorch-cpu0.06627 mstenferro-trace0.01458 ms · 0.22x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04752 ms)jax-cpu0.005451 mspytorch-cpu0.04752 mstenferro-trace0.01087 ms · 0.23x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06943 ms)jax-cpu0.007555 mspytorch-cpu0.06943 mstenferro-trace0.01623 ms · 0.23x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04869 ms)jax-cpu0.004659 mspytorch-cpu0.04869 mstenferro-trace0.01157 ms · 0.24x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1049 ms)jax-cpu0.02992 mspytorch-cpu0.1049 mstenferro-trace0.02513 ms · 0.24x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04083 ms)jax-cpu0.004758 mspytorch-cpu0.04083 mstenferro-trace0.009797 ms · 0.24x

solve suite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (19.635 ms)jax-cpu11.466 mspytorch-cpu19.635 mstenferro-eager4.718 ms · 0.24xtenferro-trace4.901 ms · 0.25x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1078 ms)jax-cpu0.0116 mspytorch-cpu0.1078 mstenferro-trace0.02591 ms · 0.24x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2092 ms)jax-cpu0.06077 mspytorch-cpu0.2092 mstenferro-trace0.05122 ms · 0.24x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07496 ms)jax-cpu0.007323 mspytorch-cpu0.07496 mstenferro-trace0.01845 ms · 0.25x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05235 ms)jax-cpu0.009658 mspytorch-cpu0.05235 mstenferro-trace0.01289 ms · 0.25x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04889 ms)jax-cpu0.005713 mspytorch-cpu0.04889 mstenferro-trace0.01235 ms · 0.25x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1038 ms)jax-cpu0.01988 mspytorch-cpu0.1038 mstenferro-trace0.02624 ms · 0.25x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1023 ms)jax-cpu0.02905 mspytorch-cpu0.1023 mstenferro-trace0.02612 ms · 0.26x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04114 ms)jax-cpu0.005863 mspytorch-cpu0.04114 mstenferro-trace0.01059 ms · 0.26x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07605 ms)jax-cpu0.009068 mspytorch-cpu0.07605 mstenferro-trace0.01971 ms · 0.26x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05156 ms)jax-cpu0.01316 mspytorch-cpu0.05156 mstenferro-trace0.01372 ms · 0.27x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05382 ms)jax-cpu0.008874 mspytorch-cpu0.05382 mstenferro-trace0.01442 ms · 0.27x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1587 ms)jax-cpu0.03929 mspytorch-cpu0.1587 mstenferro-trace0.04287 ms · 0.27x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3006 ms)jax-cpu0.08633 mspytorch-cpu0.3006 mstenferro-trace0.08155 ms · 0.27x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0415 ms)jax-cpu0.004723 mspytorch-cpu0.0415 mstenferro-trace0.01132 ms · 0.27x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0525 ms)jax-cpu0.006109 mspytorch-cpu0.0525 mstenferro-trace0.01444 ms · 0.28x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09999 ms)jax-cpu0.02973 mspytorch-cpu0.09999 mstenferro-trace0.02783 ms · 0.28x

grad_sum_lu_jvp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1083 ms)jax-cpu0.02062 mspytorch-cpu0.1083 mstenferro-trace0.03032 ms · 0.28x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06335 ms)jax-cpu0.007567 mspytorch-cpu0.06335 mstenferro-trace0.01777 ms · 0.28x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0423 ms)jax-cpu0.006094 mspytorch-cpu0.0423 mstenferro-trace0.01189 ms · 0.28x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08112 ms)jax-cpu0.01388 mspytorch-cpu0.08112 mstenferro-trace0.02286 ms · 0.28x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.100 ms)jax-cpu0.3308 mspytorch-cpu1.100 mstenferro-trace0.3117 ms · 0.28x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1012 ms)jax-cpu0.02628 mspytorch-cpu0.1012 mstenferro-trace0.02871 ms · 0.28x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1593 ms)jax-cpu0.04136 mspytorch-cpu0.1593 mstenferro-trace0.04536 ms · 0.28x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2931 ms)jax-cpu0.1019 mspytorch-cpu0.2931 mstenferro-trace0.084 ms · 0.29x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04364 ms)jax-cpu0.01026 mspytorch-cpu0.04364 mstenferro-trace0.01255 ms · 0.29x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08046 ms)jax-cpu0.009905 mspytorch-cpu0.08046 mstenferro-trace0.02314 ms · 0.29x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.205 ms)jax-cpu1.545 mspytorch-cpu4.205 mstenferro-trace1.262 ms · 0.30x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06393 ms)jax-cpu0.009453 mspytorch-cpu0.06393 mstenferro-trace0.01918 ms · 0.30x

eigh suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (173.494 ms)jax-cpu107.516 mspytorch-cpu173.494 mstenferro-eager52.239 ms · 0.30xtenferro-trace72.046 ms · 0.42x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05633 ms)jax-cpu0.005003 mspytorch-cpu0.05633 mstenferro-trace0.01737 ms · 0.31x

eigh suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (176.905 ms)pytorch-cpu176.905 msjax-cpu214.049 mstenferro-eager128.201 ms · 0.72xtenferro-trace55.041 ms · 0.31x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04491 ms)jax-cpu0.006796 mspytorch-cpu0.04491 mstenferro-trace0.01398 ms · 0.31x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.051 ms)jax-cpu0.4832 mspytorch-cpu1.051 mstenferro-trace0.3307 ms · 0.31x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05585 ms)jax-cpu0.005767 mspytorch-cpu0.05585 mstenferro-trace0.01764 ms · 0.32x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.188 ms)jax-cpu2.370 mspytorch-cpu4.188 mstenferro-trace1.324 ms · 0.32x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4376 ms)jax-cpu0.147 mspytorch-cpu0.4376 mstenferro-trace0.1389 ms · 0.32x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0571 ms)jax-cpu0.007746 mspytorch-cpu0.0571 mstenferro-trace0.01839 ms · 0.32x

solve suite=large / dtype=f64 / threads=4 / shape=512x512,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.779 ms)pytorch-cpu2.779 msjax-cpu18.973 mstenferro-eager0.8971 ms · 0.32xtenferro-trace1.803 ms · 0.65x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.605 ms)jax-cpu0.7233 mspytorch-cpu1.605 mstenferro-trace0.5258 ms · 0.33x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0167 ms)jax-cpu0.006097 mspytorch-cpu0.0167 mstenferro-trace0.005477 ms · 0.33x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06724 ms)jax-cpu0.009869 mspytorch-cpu0.06724 mstenferro-trace0.02222 ms · 0.33x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05378 ms)jax-cpu0.005252 mspytorch-cpu0.05378 mstenferro-trace0.01785 ms · 0.33x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05945 ms)jax-cpu0.004944 mspytorch-cpu0.05945 mstenferro-trace0.01987 ms · 0.33x

matmul suite=large / dtype=f64 / threads=4 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06945 ms)jax-cpu0.0689 mspytorch-cpu0.06945 mstenferro-eager0.02569 ms · 0.37xtenferro-trace0.02332 ms · 0.34x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05976 ms)jax-cpu0.02009 mspytorch-cpu0.05976 mstenferro-trace0.02007 ms · 0.34x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05949 ms)jax-cpu0.005732 mspytorch-cpu0.05949 mstenferro-trace0.01999 ms · 0.34x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05494 ms)jax-cpu0.007978 mspytorch-cpu0.05494 mstenferro-trace0.01848 ms · 0.34x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05061 ms)jax-cpu0.02302 mspytorch-cpu0.05061 mstenferro-trace0.01706 ms · 0.34x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08095 ms)jax-cpu0.01968 mspytorch-cpu0.08095 mstenferro-trace0.02736 ms · 0.34x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05363 ms)jax-cpu0.005535 mspytorch-cpu0.05363 mstenferro-trace0.01819 ms · 0.34x

solve suite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (11.897 ms)pytorch-cpu11.897 msjax-cpu21.754 mstenferro-eager4.041 ms · 0.34xtenferro-trace8.149 ms · 0.68x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01575 ms)jax-cpu0.005693 mspytorch-cpu0.01575 mstenferro-trace0.005351 ms · 0.34x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0609 ms)jax-cpu0.006727 mspytorch-cpu0.0609 mstenferro-trace0.02074 ms · 0.34x

grad_sum_solve_backward suite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (15.820 ms)jax-cpu10.721 mspytorch-cpu15.820 mstenferro-trace5.388 ms · 0.34x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08032 ms)jax-cpu0.03702 mspytorch-cpu0.08032 mstenferro-trace0.02756 ms · 0.34x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.052 ms)jax-cpu0.02573 mspytorch-cpu0.052 mstenferro-trace0.01788 ms · 0.34x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0629 ms)jax-cpu0.01168 mspytorch-cpu0.0629 mstenferro-trace0.02166 ms · 0.34x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01628 ms)jax-cpu0.009505 mspytorch-cpu0.01628 mstenferro-trace0.005648 ms · 0.35x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09 ms)jax-cpu0.007817 mspytorch-cpu0.09 mstenferro-trace0.03127 ms · 0.35x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06113 ms)jax-cpu0.01652 mspytorch-cpu0.06113 mstenferro-trace0.02149 ms · 0.35x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0169 ms)jax-cpu0.006291 mspytorch-cpu0.0169 mstenferro-trace0.005948 ms · 0.35x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09035 ms)jax-cpu0.009078 mspytorch-cpu0.09035 mstenferro-trace0.03184 ms · 0.35x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04174 ms)jax-cpu0.009991 mspytorch-cpu0.04174 mstenferro-trace0.01471 ms · 0.35x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (6.033 ms)jax-cpu2.968 mspytorch-cpu6.033 mstenferro-trace2.146 ms · 0.36x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09327 ms)jax-cpu0.01076 mspytorch-cpu0.09327 mstenferro-trace0.03318 ms · 0.36x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0575 ms)jax-cpu0.005152 mspytorch-cpu0.0575 mstenferro-trace0.02056 ms · 0.36x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01621 ms)jax-cpu0.005867 mspytorch-cpu0.01621 mstenferro-trace0.00581 ms · 0.36x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02639 ms)jax-cpu0.01133 mspytorch-cpu0.02639 mstenferro-trace0.009461 ms · 0.36x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05984 ms)jax-cpu0.01198 mspytorch-cpu0.05984 mstenferro-trace0.02147 ms · 0.36x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05887 ms)jax-cpu0.007989 mspytorch-cpu0.05887 mstenferro-trace0.02117 ms · 0.36x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06707 ms)jax-cpu0.007211 mspytorch-cpu0.06707 mstenferro-trace0.02413 ms · 0.36x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08812 ms)jax-cpu0.00818 mspytorch-cpu0.08812 mstenferro-trace0.03191 ms · 0.36x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06562 ms)jax-cpu0.01098 mspytorch-cpu0.06562 mstenferro-trace0.02385 ms · 0.36x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0947 ms)jax-cpu0.02554 mspytorch-cpu0.0947 mstenferro-trace0.03447 ms · 0.36x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01667 ms)jax-cpu0.00711 mspytorch-cpu0.01667 mstenferro-trace0.006075 ms · 0.36x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04223 ms)jax-cpu0.007606 mspytorch-cpu0.04223 mstenferro-trace0.01545 ms · 0.37x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05629 ms)jax-cpu0.005921 mspytorch-cpu0.05629 mstenferro-trace0.02079 ms · 0.37x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08709 ms)jax-cpu0.009376 mspytorch-cpu0.08709 mstenferro-trace0.03231 ms · 0.37x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01801 ms)jax-cpu0.009223 mspytorch-cpu0.01801 mstenferro-trace0.0067 ms · 0.37x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01841 ms)jax-cpu0.005093 mspytorch-cpu0.01841 mstenferro-trace0.006848 ms · 0.37x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09019 ms)jax-cpu0.01258 mspytorch-cpu0.09019 mstenferro-trace0.0337 ms · 0.37x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06424 ms)jax-cpu0.007592 mspytorch-cpu0.06424 mstenferro-trace0.02408 ms · 0.37x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02478 ms)jax-cpu0.01026 mspytorch-cpu0.02478 mstenferro-trace0.009324 ms · 0.38x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02576 ms)jax-cpu0.01059 mspytorch-cpu0.02576 mstenferro-trace0.009717 ms · 0.38x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1018 ms)jax-cpu0.01129 mspytorch-cpu0.1018 mstenferro-trace0.03843 ms · 0.38x

matmul_rect suite=large / dtype=f64 / threads=4 / shape=256x1024 * 1024x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.423 ms)jax-cpu1.275 mspytorch-cpu1.423 mstenferro-eager0.5422 ms · 0.38xtenferro-trace0.5434 ms · 0.38x

solve suite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (13.588 ms)jax-cpu12.290 mspytorch-cpu13.588 mstenferro-eager5.184 ms · 0.38xtenferro-trace5.418 ms · 0.40x

grad_sum_solve_backward suite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02578 ms)jax-cpu0.00776 mspytorch-cpu0.02578 mstenferro-trace0.009866 ms · 0.38x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05161 ms)jax-cpu0.0205 mspytorch-cpu0.05161 mstenferro-trace0.01977 ms · 0.38x

solve suite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00696 ms)jax-cpu0.005168 mspytorch-cpu0.00696 mstenferro-eager0.002669 ms · 0.38xtenferro-trace0.003344 ms · 0.48x

matmul suite=large / dtype=f64 / threads=8 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05709 ms)pytorch-cpu0.05709 msjax-cpu0.06275 mstenferro-eager0.03121 ms · 0.55xtenferro-trace0.02212 ms · 0.39x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09892 ms)jax-cpu0.01214 mspytorch-cpu0.09892 mstenferro-trace0.03836 ms · 0.39x

solve suite=small / dtype=f64 / threads=1 / shape=2x2,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006977 ms)jax-cpu0.005371 mspytorch-cpu0.006977 mstenferro-eager0.002717 ms · 0.39xtenferro-trace0.003311 ms · 0.47x

grad_sum_solve_backward suite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02596 ms)jax-cpu0.008267 mspytorch-cpu0.02596 mstenferro-trace0.01012 ms · 0.39x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (36.808 ms)jax-cpu15.585 mspytorch-cpu36.808 mstenferro-trace14.401 ms · 0.39x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01894 ms)jax-cpu0.005082 mspytorch-cpu0.01894 mstenferro-trace0.00746 ms · 0.39x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06948 ms)jax-cpu0.03024 mspytorch-cpu0.06948 mstenferro-trace0.0274 ms · 0.39x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.240 ms)jax-cpu2.512 mspytorch-cpu5.240 mstenferro-trace2.077 ms · 0.40x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01827 ms)jax-cpu0.008598 mspytorch-cpu0.01827 mstenferro-trace0.007241 ms · 0.40x

grad_sum_solve_backward suite=small / dtype=f64 / threads=1 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02514 ms)jax-cpu0.006159 mspytorch-cpu0.02514 mstenferro-trace0.0101 ms · 0.40x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07023 ms)jax-cpu0.02644 mspytorch-cpu0.07023 mstenferro-trace0.02823 ms · 0.40x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05203 ms)jax-cpu0.01681 mspytorch-cpu0.05203 mstenferro-trace0.02116 ms · 0.41x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02062 ms)jax-cpu0.006404 mspytorch-cpu0.02062 mstenferro-trace0.008388 ms · 0.41x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02867 ms)jax-cpu0.008796 mspytorch-cpu0.02867 mstenferro-trace0.01171 ms · 0.41x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02845 ms)jax-cpu0.01246 mspytorch-cpu0.02845 mstenferro-trace0.01163 ms · 0.41x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005717 ms)pytorch-cpu0.005717 msjax-cpu0.05617 mstenferro-eager0.002354 ms · 0.41xtenferro-trace0.00387 ms · 0.68x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1082 ms)jax-cpu0.04174 mspytorch-cpu0.1082 mstenferro-trace0.04458 ms · 0.41x

grad_sum_solve_backward suite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0271 ms)jax-cpu0.008709 mspytorch-cpu0.0271 mstenferro-trace0.01122 ms · 0.41x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005628 ms)pytorch-cpu0.005628 msjax-cpu0.06064 mstenferro-eager0.002341 ms · 0.42xtenferro-trace0.003779 ms · 0.67x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08097 ms)jax-cpu0.02579 mspytorch-cpu0.08097 mstenferro-trace0.03374 ms · 0.42x

solve suite=small / dtype=f64 / threads=4 / shape=2x2,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006976 ms)jax-cpu0.005347 mspytorch-cpu0.006976 mstenferro-eager0.002946 ms · 0.42xtenferro-trace0.003788 ms · 0.54x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008676 ms)pytorch-cpu0.008676 msjax-cpu0.08799 mstenferro-eager0.003664 ms · 0.42xtenferro-trace0.0062 ms · 0.71x

solve suite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0069 ms)jax-cpu0.005266 mspytorch-cpu0.0069 mstenferro-eager0.002927 ms · 0.42xtenferro-trace0.003757 ms · 0.54x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (46.582 ms)jax-cpu18.784 mspytorch-cpu46.582 mstenferro-trace19.780 ms · 0.42x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008505 ms)pytorch-cpu0.008505 msjax-cpu0.08747 mstenferro-eager0.003616 ms · 0.43xtenferro-trace0.006164 ms · 0.72x

matmul suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3273 ms)pytorch-cpu0.3273 msjax-cpu0.3432 mstenferro-eager0.1468 ms · 0.45xtenferro-trace0.1396 ms · 0.43x

solve suite=small / dtype=f64 / threads=1 / shape=8x8,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007162 ms)jax-cpu0.005142 mspytorch-cpu0.007162 mstenferro-eager0.003087 ms · 0.43xtenferro-trace0.00365 ms · 0.51x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (115.178 ms)jax-cpu84.976 mspytorch-cpu115.178 mstenferro-trace49.739 ms · 0.43x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1424 ms)jax-cpu0.04616 mspytorch-cpu0.1424 mstenferro-trace0.06149 ms · 0.43x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02075 ms)jax-cpu0.006752 mspytorch-cpu0.02075 mstenferro-trace0.009115 ms · 0.44x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0831 ms)jax-cpu0.02524 mspytorch-cpu0.0831 mstenferro-trace0.03685 ms · 0.44x

grad_sum_solve_backward suite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02619 ms)jax-cpu0.007622 mspytorch-cpu0.02619 mstenferro-trace0.01162 ms · 0.44x

grad_sum_solve_backward suite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02677 ms)jax-cpu0.008275 mspytorch-cpu0.02677 mstenferro-trace0.01188 ms · 0.44x

grad_sum_matmul suite=large / dtype=f64 / threads=4 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06049 ms)pytorch-cpu0.06049 msjax-cpu0.07252 mstenferro-eager0.04038 ms · 0.67xtenferro-trace0.02685 ms · 0.44x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03174 ms)jax-cpu0.01075 mspytorch-cpu0.03174 mstenferro-trace0.0141 ms · 0.44x

solve suite=small / dtype=f64 / threads=1 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006635 ms)jax-cpu0.005373 mspytorch-cpu0.006635 mstenferro-eager0.00295 ms · 0.44xtenferro-trace0.003323 ms · 0.50x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008717 ms)pytorch-cpu0.008717 msjax-cpu0.09027 mstenferro-eager0.003885 ms · 0.45xtenferro-trace0.006266 ms · 0.72x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02869 ms)jax-cpu0.0105 mspytorch-cpu0.02869 mstenferro-trace0.01279 ms · 0.45x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005499 ms)pytorch-cpu0.005499 msjax-cpu0.05355 mstenferro-eager0.002452 ms · 0.45xtenferro-trace0.003755 ms · 0.68x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03 ms)jax-cpu0.01523 mspytorch-cpu0.03 mstenferro-trace0.01344 ms · 0.45x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7808 ms)jax-cpu0.3669 mspytorch-cpu0.7808 mstenferro-trace0.3499 ms · 0.45x

grad_sum_solve_backward suite=small / dtype=f64 / threads=4 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0259 ms)jax-cpu0.00608 mspytorch-cpu0.0259 mstenferro-trace0.01165 ms · 0.45x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006613 ms)pytorch-cpu0.006613 msjax-cpu0.06047 mstenferro-eager0.003136 ms · 0.47xtenferro-trace0.002974 ms · 0.45x

grad_sum_solve_backward suite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02814 ms)jax-cpu0.008675 mspytorch-cpu0.02814 mstenferro-trace0.01273 ms · 0.45x

grad_sum_lu_vjp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1352 ms)jax-cpu0.03378 mspytorch-cpu0.1352 mstenferro-trace0.06134 ms · 0.45x

solve suite=small / dtype=f64 / threads=1 / shape=4x4,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006826 ms)jax-cpu0.005548 mspytorch-cpu0.006826 mstenferro-eager0.0031 ms · 0.45xtenferro-trace0.003343 ms · 0.49x

matmul suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2459 ms)pytorch-cpu0.2459 msjax-cpu0.2907 mstenferro-eager0.1403 ms · 0.57xtenferro-trace0.112 ms · 0.46x

grad_sum_solve_backward suite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04035 ms)jax-cpu0.01185 mspytorch-cpu0.04035 mstenferro-trace0.01845 ms · 0.46x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07551 ms)jax-cpu0.02439 mspytorch-cpu0.07551 mstenferro-trace0.03465 ms · 0.46x

solve suite=small / dtype=f64 / threads=1 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00685 ms)jax-cpu0.004575 mspytorch-cpu0.00685 mstenferro-eager0.003157 ms · 0.46xtenferro-trace0.003452 ms · 0.50x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (311.117 ms)jax-cpu144.380 mspytorch-cpu311.117 mstenferro-trace143.633 ms · 0.46x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005368 ms)pytorch-cpu0.005368 msjax-cpu0.05359 mstenferro-eager0.002479 ms · 0.46xtenferro-trace0.003764 ms · 0.70x

solve suite=small / dtype=f64 / threads=4 / shape=8x8,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007173 ms)jax-cpu0.005261 mspytorch-cpu0.007173 mstenferro-eager0.003316 ms · 0.46xtenferro-trace0.004054 ms · 0.57x

solve suite=small / dtype=f64 / threads=1 / shape=16x16,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007966 ms)jax-cpu0.00542 mspytorch-cpu0.007966 mstenferro-eager0.003685 ms · 0.46xtenferro-trace0.004271 ms · 0.54x

eigh suite=large / dtype=f64 / threads=8 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.066 ms)pytorch-cpu2.066 msjax-cpu37.887 mstenferro-eager0.9581 ms · 0.46xtenferro-trace0.9589 ms · 0.46x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1656 ms)jax-cpu0.08003 mspytorch-cpu0.1656 mstenferro-trace0.07681 ms · 0.46x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07721 ms)jax-cpu0.02386 mspytorch-cpu0.07721 mstenferro-trace0.03585 ms · 0.46x

solve suite=small / dtype=f64 / threads=8 / shape=4x4,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01012 ms)jax-cpu0.008057 mspytorch-cpu0.01012 mstenferro-eager0.004712 ms · 0.47xtenferro-trace0.005963 ms · 0.59x

solve suite=small / dtype=f64 / threads=4 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006541 ms)jax-cpu0.005517 mspytorch-cpu0.006541 mstenferro-eager0.003073 ms · 0.47xtenferro-trace0.003753 ms · 0.57x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01032 ms)pytorch-cpu0.01032 msjax-cpu0.09123 mstenferro-eager0.004851 ms · 0.47xtenferro-trace0.004934 ms · 0.48x

grad_sum_solve_backward suite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03907 ms)jax-cpu0.01131 mspytorch-cpu0.03907 mstenferro-trace0.01839 ms · 0.47x

solve suite=small / dtype=f64 / threads=4 / shape=4x4,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006623 ms)jax-cpu0.005481 mspytorch-cpu0.006623 mstenferro-eager0.003124 ms · 0.47xtenferro-trace0.003766 ms · 0.57x

solve suite=small / dtype=f64 / threads=8 / shape=4x4,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00997 ms)jax-cpu0.007702 mspytorch-cpu0.00997 mstenferro-eager0.004724 ms · 0.47xtenferro-trace0.005897 ms · 0.59x

grad_sum_solve_backward suite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04057 ms)jax-cpu0.0127 mspytorch-cpu0.04057 mstenferro-trace0.01935 ms · 0.48x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00993 ms)pytorch-cpu0.00993 msjax-cpu0.08961 mstenferro-eager0.004745 ms · 0.48xtenferro-trace0.006783 ms · 0.68x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1298 ms)pytorch-cpu0.1298 msjax-cpu0.2488 mstenferro-trace0.06212 ms · 0.48x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007618 ms)pytorch-cpu0.007618 msjax-cpu0.06233 mstenferro-eager0.003745 ms · 0.49xtenferro-trace0.003655 ms · 0.48x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006745 ms)pytorch-cpu0.006745 msjax-cpu0.05839 mstenferro-eager0.003249 ms · 0.48xtenferro-trace0.003273 ms · 0.49x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03125 ms)jax-cpu0.01178 mspytorch-cpu0.03125 mstenferro-trace0.01515 ms · 0.48x

grad_sum_solve_backward suite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04232 ms)jax-cpu0.01622 mspytorch-cpu0.04232 mstenferro-trace0.02052 ms · 0.48x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005504 ms)pytorch-cpu0.005504 msjax-cpu0.05529 mstenferro-eager0.002671 ms · 0.49xtenferro-trace0.003964 ms · 0.72x

grad_sum_qr_vjp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08014 ms)jax-cpu0.02397 mspytorch-cpu0.08014 mstenferro-trace0.03911 ms · 0.49x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03009 ms)jax-cpu0.01085 mspytorch-cpu0.03009 mstenferro-trace0.0147 ms · 0.49x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005823 ms)pytorch-cpu0.005823 msjax-cpu0.05417 mstenferro-eager0.002894 ms · 0.50xtenferro-trace0.002846 ms · 0.49x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006032 ms)pytorch-cpu0.006032 msjax-cpu0.06128 mstenferro-eager0.002949 ms · 0.49xtenferro-trace0.004097 ms · 0.68x

matmul_rect suite=large / dtype=f64 / threads=8 / shape=256x1024 * 1024x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.8716 ms)pytorch-cpu0.8716 msjax-cpu1.021 mstenferro-eager0.4267 ms · 0.49xtenferro-trace0.4334 ms · 0.50x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1723 ms)jax-cpu0.07748 mspytorch-cpu0.1723 mstenferro-trace0.08451 ms · 0.49x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04783 ms)jax-cpu0.01749 mspytorch-cpu0.04783 mstenferro-trace0.02358 ms · 0.49x

grad_sum_solve_backward suite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03141 ms)jax-cpu0.01645 mspytorch-cpu0.03141 mstenferro-trace0.01549 ms · 0.49x

matmul suite=small / dtype=f64 / threads=4 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01581 ms)pytorch-cpu0.01581 msjax-cpu0.0203 mstenferro-eager0.04385 ms · 2.77xtenferro-trace0.007805 ms · 0.49x

grad_sum_svd_s_jvp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2711 ms)jax-cpu0.1226 mspytorch-cpu0.2711 mstenferro-trace0.1339 ms · 0.49x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0232 ms)jax-cpu0.01646 mspytorch-cpu0.0232 mstenferro-trace0.01147 ms · 0.49x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005569 ms)pytorch-cpu0.005569 msjax-cpu0.05543 mstenferro-eager0.002755 ms · 0.49xtenferro-trace0.003877 ms · 0.70x

solve suite=small / dtype=f64 / threads=8 / shape=2x2,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01037 ms)jax-cpu0.007534 mspytorch-cpu0.01037 mstenferro-eager0.005132 ms · 0.50xtenferro-trace0.005891 ms · 0.57x

solve suite=small / dtype=f64 / threads=8 / shape=8x8,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01055 ms)jax-cpu0.009712 mspytorch-cpu0.01055 mstenferro-eager0.005234 ms · 0.50xtenferro-trace0.006507 ms · 0.62x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04657 ms)jax-cpu0.01866 mspytorch-cpu0.04657 mstenferro-trace0.02313 ms · 0.50x

solve suite=small / dtype=f64 / threads=4 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006842 ms)jax-cpu0.004729 mspytorch-cpu0.006842 mstenferro-eager0.003406 ms · 0.50xtenferro-trace0.003845 ms · 0.56x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.308 ms)jax-cpu2.528 mspytorch-cpu5.308 mstenferro-trace2.654 ms · 0.50x

solve suite=small / dtype=f64 / threads=8 / shape=2x2,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0104 ms)jax-cpu0.007535 mspytorch-cpu0.0104 mstenferro-eager0.005201 ms · 0.50xtenferro-trace0.005941 ms · 0.57x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006231 ms)pytorch-cpu0.006231 msjax-cpu0.0567 mstenferro-eager0.003116 ms · 0.50xtenferro-trace0.004224 ms · 0.68x

solve suite=small / dtype=f64 / threads=4 / shape=16x16,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007849 ms)jax-cpu0.005399 mspytorch-cpu0.007849 mstenferro-eager0.003941 ms · 0.50xtenferro-trace0.004728 ms · 0.60x

solve suite=small / dtype=f64 / threads=1 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007591 ms)jax-cpu0.005985 mspytorch-cpu0.007591 mstenferro-eager0.003812 ms · 0.50xtenferro-trace0.003914 ms · 0.52x

solve suite=small / dtype=f64 / threads=8 / shape=8x8,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01024 ms)jax-cpu0.008718 mspytorch-cpu0.01024 mstenferro-eager0.005167 ms · 0.50xtenferro-trace0.006163 ms · 0.60x

grad_sum_matmul suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.687 ms)jax-cpu1.900 mspytorch-cpu2.687 mstenferro-eager2.775 ms · 1.03xtenferro-trace1.359 ms · 0.51x

grad_sum_qr_jvp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07801 ms)jax-cpu0.04606 mspytorch-cpu0.07801 mstenferro-trace0.0396 ms · 0.51x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03621 ms)jax-cpu0.02254 mspytorch-cpu0.03621 mstenferro-trace0.0184 ms · 0.51x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.054 ms)jax-cpu0.04384 mspytorch-cpu0.054 mstenferro-trace0.0276 ms · 0.51x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00726 ms)pytorch-cpu0.00726 msjax-cpu0.05776 mstenferro-eager0.003723 ms · 0.51xtenferro-trace0.003815 ms · 0.53x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09426 ms)jax-cpu0.05409 mspytorch-cpu0.09426 mstenferro-trace0.04835 ms · 0.51x

solve suite=small / dtype=f64 / threads=8 / shape=16x16,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01196 ms)jax-cpu0.009684 mspytorch-cpu0.01196 mstenferro-eager0.006132 ms · 0.51xtenferro-trace0.007468 ms · 0.62x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01172 ms)pytorch-cpu0.01172 msjax-cpu0.09243 mstenferro-eager0.006338 ms · 0.54xtenferro-trace0.006012 ms · 0.51x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02526 ms)jax-cpu0.01139 mspytorch-cpu0.02526 mstenferro-trace0.01305 ms · 0.52x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009122 ms)pytorch-cpu0.009122 msjax-cpu0.08894 mstenferro-eager0.004905 ms · 0.54xtenferro-trace0.00472 ms · 0.52x

grad_sum_matmul_backward suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03875 ms)jax-cpu0.01494 mspytorch-cpu0.03875 mstenferro-trace0.02015 ms · 0.52x

grad_sum_matmul suite=large / dtype=f64 / threads=8 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04981 ms)pytorch-cpu0.04981 msjax-cpu0.08283 mstenferro-eager0.04945 ms · 0.99xtenferro-trace0.02593 ms · 0.52x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005916 ms)pytorch-cpu0.005916 msjax-cpu0.05641 mstenferro-eager0.003083 ms · 0.52xtenferro-trace0.003157 ms · 0.53x

matmul suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.162 ms)jax-cpu1.779 mspytorch-cpu2.162 mstenferro-eager1.138 ms · 0.53xtenferro-trace1.209 ms · 0.56x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (18.516 ms)jax-cpu14.852 mspytorch-cpu18.516 mstenferro-trace9.787 ms · 0.53x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008228 ms)pytorch-cpu0.008228 msjax-cpu0.0626 mstenferro-eager0.004356 ms · 0.53xtenferro-trace0.005473 ms · 0.67x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02586 ms)jax-cpu0.01434 mspytorch-cpu0.02586 mstenferro-trace0.01377 ms · 0.53x

grad_sum_solve_backward suite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.032 ms)jax-cpu0.01213 mspytorch-cpu0.032 mstenferro-trace0.0172 ms · 0.54x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.677 ms)jax-cpu1.663 mspytorch-cpu1.677 mstenferro-trace0.9012 ms · 0.54x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00887 ms)pytorch-cpu0.00887 msjax-cpu0.05768 mstenferro-eager0.004817 ms · 0.54xtenferro-trace0.005984 ms · 0.67x

solve suite=small / dtype=f64 / threads=4 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007618 ms)jax-cpu0.005992 mspytorch-cpu0.007618 mstenferro-eager0.004141 ms · 0.54xtenferro-trace0.00438 ms · 0.57x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0264 ms)jax-cpu0.0108 mspytorch-cpu0.0264 mstenferro-trace0.01445 ms · 0.55x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09839 ms)jax-cpu0.05161 mspytorch-cpu0.09839 mstenferro-trace0.05398 ms · 0.55x

grad_sum_eigh_jvp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1554 ms)jax-cpu0.08376 mspytorch-cpu0.1554 mstenferro-trace0.0854 ms · 0.55x

solve suite=small / dtype=f64 / threads=8 / shape=16x16,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01148 ms)jax-cpu0.009203 mspytorch-cpu0.01148 mstenferro-eager0.006307 ms · 0.55xtenferro-trace0.006898 ms · 0.60x

grad_sum_solve_backward suite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04944 ms)jax-cpu0.01661 mspytorch-cpu0.04944 mstenferro-trace0.02728 ms · 0.55x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05713 ms)jax-cpu0.02834 mspytorch-cpu0.05713 mstenferro-trace0.03187 ms · 0.56x

einsum_ij_jk_ik suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01347 ms)pytorch-cpu0.01347 msjax-cpu0.09142 mstenferro-eager0.007565 ms · 0.56xtenferro-trace0.009244 ms · 0.69x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04064 ms)jax-cpu0.01466 mspytorch-cpu0.04064 mstenferro-trace0.02287 ms · 0.56x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03614 ms)jax-cpu0.01945 mspytorch-cpu0.03614 mstenferro-trace0.02053 ms · 0.57x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009473 ms)pytorch-cpu0.009473 msjax-cpu0.06193 mstenferro-eager0.005382 ms · 0.57xtenferro-trace0.005676 ms · 0.60x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=4 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04487 ms)jax-cpu0.04028 mspytorch-cpu0.04487 mstenferro-trace0.02595 ms · 0.58x

matmul suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.650 ms)jax-cpu1.508 mspytorch-cpu1.650 mstenferro-eager0.9573 ms · 0.58xtenferro-trace0.957 ms · 0.58x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08241 ms)jax-cpu0.05457 mspytorch-cpu0.08241 mstenferro-trace0.04781 ms · 0.58x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05094 ms)jax-cpu0.04289 mspytorch-cpu0.05094 mstenferro-trace0.02978 ms · 0.58x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01338 ms)pytorch-cpu0.01338 msjax-cpu0.0678 mstenferro-eager0.008433 ms · 0.63xtenferro-trace0.007855 ms · 0.59x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1348 ms)jax-cpu0.1333 mspytorch-cpu0.1348 mstenferro-trace0.07937 ms · 0.59x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.036 ms)jax-cpu0.03432 mspytorch-cpu0.036 mstenferro-trace0.02119 ms · 0.59x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009496 ms)pytorch-cpu0.009496 msjax-cpu0.05738 mstenferro-eager0.005609 ms · 0.59xtenferro-trace0.005807 ms · 0.61x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08454 ms)jax-cpu0.06363 mspytorch-cpu0.08454 mstenferro-trace0.05017 ms · 0.59x

grad_sum_solve_backward suite=large / dtype=f64 / threads=1 / shape=64x64,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04472 ms)jax-cpu0.03337 mspytorch-cpu0.04472 mstenferro-trace0.02658 ms · 0.59x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07841 ms)jax-cpu0.06441 mspytorch-cpu0.07841 mstenferro-trace0.04669 ms · 0.60x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1278 ms)jax-cpu0.08024 mspytorch-cpu0.1278 mstenferro-trace0.0765 ms · 0.60x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03217 ms)jax-cpu0.0264 mspytorch-cpu0.03217 mstenferro-trace0.01926 ms · 0.60x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1306 ms)pytorch-cpu0.1306 msjax-cpu0.1321 mstenferro-trace0.07825 ms · 0.60x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008268 ms)jax-cpu0.00826 mspytorch-cpu0.008268 mstenferro-eager0.005318 ms · 0.64xtenferro-trace0.004957 ms · 0.60x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08609 ms)jax-cpu0.08418 mspytorch-cpu0.08609 mstenferro-trace0.05191 ms · 0.60x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01488 ms)pytorch-cpu0.01488 msjax-cpu0.09186 mstenferro-eager0.009144 ms · 0.61xtenferro-trace0.009103 ms · 0.61x

grad_sum_solve_backward suite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.470 ms)jax-cpu2.872 mspytorch-cpu3.470 mstenferro-trace2.135 ms · 0.62x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008699 ms)jax-cpu0.008544 mspytorch-cpu0.008699 mstenferro-eager0.00539 ms · 0.62xtenferro-trace0.005432 ms · 0.62x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0082 ms)jax-cpu0.006376 mspytorch-cpu0.0082 mstenferro-eager0.005083 ms · 0.62xtenferro-trace0.005166 ms · 0.63x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007629 ms)jax-cpu0.006233 mspytorch-cpu0.007629 mstenferro-eager0.004857 ms · 0.64xtenferro-trace0.004753 ms · 0.62x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03707 ms)jax-cpu0.03396 mspytorch-cpu0.03707 mstenferro-trace0.02316 ms · 0.62x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08615 ms)jax-cpu0.05079 mspytorch-cpu0.08615 mstenferro-trace0.05388 ms · 0.63x

grad_sum_solve_backward suite=large / dtype=f64 / threads=8 / shape=64x64,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07159 ms)jax-cpu0.04725 mspytorch-cpu0.07159 mstenferro-trace0.0448 ms · 0.63x

grad_sum_solve_backward suite=large / dtype=f64 / threads=4 / shape=64x64,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04581 ms)jax-cpu0.03271 mspytorch-cpu0.04581 mstenferro-trace0.02872 ms · 0.63x

solve suite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (20.972 ms)jax-cpu16.346 mspytorch-cpu20.972 mstenferro-eager13.154 ms · 0.63xtenferro-trace13.549 ms · 0.65x

grad_sum_eigh_vjp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1349 ms)jax-cpu0.0803 mspytorch-cpu0.1349 mstenferro-trace0.08512 ms · 0.63x

solve suite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (22.000 ms)jax-cpu16.926 mspytorch-cpu22.000 mstenferro-eager13.896 ms · 0.63xtenferro-trace14.251 ms · 0.65x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1326 ms)jax-cpu0.07708 mspytorch-cpu0.1326 mstenferro-trace0.0838 ms · 0.63x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05126 ms)jax-cpu0.03639 mspytorch-cpu0.05126 mstenferro-trace0.03261 ms · 0.64x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05661 ms)jax-cpu0.05014 mspytorch-cpu0.05661 mstenferro-trace0.03615 ms · 0.64x

grad_sum_svd_s_vjp suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.208 ms)jax-cpu0.1224 mspytorch-cpu0.208 mstenferro-trace0.1331 ms · 0.64x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03246 ms)jax-cpu0.02356 mspytorch-cpu0.03246 mstenferro-trace0.02078 ms · 0.64x

solve suite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (24.162 ms)jax-cpu18.840 mspytorch-cpu24.162 mstenferro-eager15.574 ms · 0.64xtenferro-trace15.999 ms · 0.66x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01331 ms)pytorch-cpu0.01331 msjax-cpu0.01337 mstenferro-eager0.009266 ms · 0.70xtenferro-trace0.008577 ms · 0.64x

eigh suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (14.076 ms)pytorch-cpu14.076 msjax-cpu64.720 mstenferro-eager9.133 ms · 0.65xtenferro-trace9.431 ms · 0.67x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01092 ms)pytorch-cpu0.01092 msjax-cpu0.01447 mstenferro-eager0.007483 ms · 0.69xtenferro-trace0.007086 ms · 0.65x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5332 ms)jax-cpu0.3612 mspytorch-cpu0.5332 mstenferro-trace0.3488 ms · 0.65x

solve suite=small / dtype=f64 / threads=1 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01076 ms)pytorch-cpu0.01076 msjax-cpu0.0118 mstenferro-eager0.007048 ms · 0.65xtenferro-trace0.007405 ms · 0.69x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=4 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1379 ms)pytorch-cpu0.1379 msjax-cpu0.1424 mstenferro-trace0.09038 ms · 0.66x

solve suite=small / dtype=f64 / threads=1 / shape=32x32,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0114 ms)pytorch-cpu0.0114 msjax-cpu0.01283 mstenferro-eager0.007476 ms · 0.66xtenferro-trace0.008029 ms · 0.70x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.175 ms)jax-cpu2.508 mspytorch-cpu3.175 mstenferro-trace2.088 ms · 0.66x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.702 ms)jax-cpu4.590 mspytorch-cpu5.702 mstenferro-trace3.753 ms · 0.66x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04149 ms)jax-cpu0.03127 mspytorch-cpu0.04149 mstenferro-trace0.02742 ms · 0.66x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04206 ms)jax-cpu0.02935 mspytorch-cpu0.04206 mstenferro-trace0.02819 ms · 0.67x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.691 ms)pytorch-cpu1.691 msjax-cpu1.895 mstenferro-trace1.135 ms · 0.67x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (22.067 ms)jax-cpu17.103 mspytorch-cpu22.067 mstenferro-trace14.832 ms · 0.67x

solve suite=small / dtype=f64 / threads=4 / shape=32x32,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01319 ms)jax-cpu0.01285 mspytorch-cpu0.01319 mstenferro-eager0.008891 ms · 0.67xtenferro-trace0.00951 ms · 0.72x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=8 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.133 ms)pytorch-cpu0.133 msjax-cpu0.1566 mstenferro-trace0.08994 ms · 0.68x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01196 ms)pytorch-cpu0.01196 msjax-cpu0.05953 mstenferro-eager0.008593 ms · 0.72xtenferro-trace0.008095 ms · 0.68x

matmul suite=large / dtype=f64 / threads=1 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09903 ms)pytorch-cpu0.09903 msjax-cpu0.1006 mstenferro-eager0.07398 ms · 0.75xtenferro-trace0.06724 ms · 0.68x

matmul suite=small / dtype=f64 / threads=1 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0168 ms)pytorch-cpu0.0168 msjax-cpu0.02345 mstenferro-eager0.01313 ms · 0.78xtenferro-trace0.01142 ms · 0.68x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=1 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05266 ms)jax-cpu0.04063 mspytorch-cpu0.05266 mstenferro-trace0.03583 ms · 0.68x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01217 ms)jax-cpu0.01053 mspytorch-cpu0.01217 mstenferro-eager0.008401 ms · 0.69xtenferro-trace0.008304 ms · 0.68x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06533 ms)jax-cpu0.04571 mspytorch-cpu0.06533 mstenferro-trace0.04461 ms · 0.68x

solve suite=small / dtype=f64 / threads=4 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0107 ms)jax-cpu0.008105 mspytorch-cpu0.0107 mstenferro-eager0.007309 ms · 0.68xtenferro-trace0.007954 ms · 0.74x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4266 ms)pytorch-cpu0.4266 msjax-cpu0.4854 mstenferro-trace0.2925 ms · 0.69x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (105.859 ms)jax-cpu78.793 mspytorch-cpu105.859 mstenferro-trace72.732 ms · 0.69x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01178 ms)pytorch-cpu0.01178 msjax-cpu0.06729 mstenferro-eager0.008144 ms · 0.69xtenferro-trace0.008352 ms · 0.71x

grad_sum_solve_backward suite=large / dtype=f64 / threads=1 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (22.128 ms)jax-cpu16.121 mspytorch-cpu22.128 mstenferro-trace15.387 ms · 0.70x

matmul_rect suite=large / dtype=f64 / threads=4 / shape=1024x256 * 256x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.297 ms)jax-cpu2.794 mspytorch-cpu3.297 mstenferro-eager2.321 ms · 0.70xtenferro-trace2.304 ms · 0.70x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5167 ms)pytorch-cpu0.5167 msjax-cpu0.6571 mstenferro-eager0.3673 ms · 0.71xtenferro-trace0.3642 ms · 0.70x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05957 ms)jax-cpu0.05638 mspytorch-cpu0.05957 mstenferro-trace0.04223 ms · 0.71x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0167 ms)jax-cpu0.0152 mspytorch-cpu0.0167 mstenferro-eager0.01258 ms · 0.75xtenferro-trace0.01187 ms · 0.71x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (73.323 ms)jax-cpu55.257 mspytorch-cpu73.323 mstenferro-trace52.643 ms · 0.72x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (191.763 ms)pytorch-cpu191.763 msjax-cpu214.261 mstenferro-trace137.813 ms · 0.72x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (36.495 ms)pytorch-cpu36.495 msjax-cpu43.972 mstenferro-trace26.299 ms · 0.72x

grad_sum_solve_backward suite=large / dtype=f64 / threads=1 / shape=128x128,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.106 ms)jax-cpu0.09678 mspytorch-cpu0.106 mstenferro-trace0.07638 ms · 0.72x

solve suite=small / dtype=f64 / threads=8 / shape=32x32,rhs=4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01882 ms)jax-cpu0.01411 mspytorch-cpu0.01882 mstenferro-eager0.0136 ms · 0.72xtenferro-trace0.01505 ms · 0.80x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01887 ms)pytorch-cpu0.01887 msjax-cpu0.02828 mstenferro-eager0.01394 ms · 0.74xtenferro-trace0.01365 ms · 0.72x

solve suite=small / dtype=f64 / threads=8 / shape=32x32,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01673 ms)jax-cpu0.01122 mspytorch-cpu0.01673 mstenferro-eager0.01209 ms · 0.72xtenferro-trace0.01252 ms · 0.75x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (212.593 ms)pytorch-cpu212.593 msjax-cpu286.415 mstenferro-trace153.806 ms · 0.72x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (258.292 ms)jax-cpu191.724 mspytorch-cpu258.292 mstenferro-trace187.008 ms · 0.72x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (466.134 ms)jax-cpu351.224 mspytorch-cpu466.134 mstenferro-trace337.576 ms · 0.72x

solve suite=large / dtype=f64 / threads=1 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.703 ms)pytorch-cpu2.703 msjax-cpu2.873 mstenferro-eager1.980 ms · 0.73xtenferro-trace2.006 ms · 0.74x

qr suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02242 ms)pytorch-cpu0.02242 msjax-cpu0.02512 mstenferro-eager0.01802 ms · 0.80xtenferro-trace0.01646 ms · 0.73x

matmul suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6258 ms)pytorch-cpu0.6258 msjax-cpu0.644 mstenferro-eager0.4797 ms · 0.77xtenferro-trace0.4596 ms · 0.73x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006388 ms)pytorch-cpu0.006388 msjax-cpu0.06054 mstenferro-eager0.004706 ms · 0.74xtenferro-trace0.005116 ms · 0.80x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (89.330 ms)pytorch-cpu89.330 msjax-cpu105.188 mstenferro-trace65.816 ms · 0.74x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.113 ms)pytorch-cpu0.113 msjax-cpu0.162 mstenferro-trace0.08379 ms · 0.74x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1248 ms)pytorch-cpu0.1248 msjax-cpu0.188 mstenferro-eager0.09423 ms · 0.75xtenferro-trace0.09281 ms · 0.74x

grad_sum_solve_backward suite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4954 ms)jax-cpu0.4212 mspytorch-cpu0.4954 mstenferro-trace0.3683 ms · 0.74x

solve suite=large / dtype=f64 / threads=1 / shape=512x512,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.936 ms)pytorch-cpu2.936 msjax-cpu3.015 mstenferro-eager2.190 ms · 0.75xtenferro-trace2.205 ms · 0.75x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (34.944 ms)pytorch-cpu34.944 msjax-cpu43.837 mstenferro-trace26.240 ms · 0.75x

grad_sum_solve_backward suite=large / dtype=f64 / threads=8 / shape=128x128,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1698 ms)jax-cpu0.1557 mspytorch-cpu0.1698 mstenferro-trace0.1277 ms · 0.75x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01008 ms)pytorch-cpu0.01008 msjax-cpu0.01057 mstenferro-eager0.007646 ms · 0.76xtenferro-trace0.00759 ms · 0.75x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (36.983 ms)jax-cpu28.897 mspytorch-cpu36.983 mstenferro-trace28.003 ms · 0.76x

grad_sum_solve_backward suite=large / dtype=f64 / threads=4 / shape=128x128,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.109 ms)jax-cpu0.09042 mspytorch-cpu0.109 mstenferro-trace0.08251 ms · 0.76x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03312 ms)pytorch-cpu0.03312 msjax-cpu0.0909 mstenferro-eager0.02552 ms · 0.77xtenferro-trace0.02511 ms · 0.76x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05827 ms)jax-cpu0.05249 mspytorch-cpu0.05827 mstenferro-trace0.04432 ms · 0.76x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01111 ms)pytorch-cpu0.01111 msjax-cpu0.05833 mstenferro-eager0.008455 ms · 0.76xtenferro-trace0.008614 ms · 0.78x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (13.951 ms)pytorch-cpu13.951 msjax-cpu19.929 mstenferro-trace10.644 ms · 0.76x

qr suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009327 ms)pytorch-cpu0.009327 msjax-cpu0.01323 mstenferro-eager0.008598 ms · 0.92xtenferro-trace0.007161 ms · 0.77x

solve suite=large / dtype=f64 / threads=4 / shape=512x512,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.9853 ms)pytorch-cpu0.9853 msjax-cpu19.890 mstenferro-eager0.7571 ms · 0.77xtenferro-trace1.228 ms · 1.25x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006421 ms)pytorch-cpu0.006421 msjax-cpu0.05799 mstenferro-eager0.004953 ms · 0.77xtenferro-trace0.005255 ms · 0.82x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09955 ms)jax-cpu0.08322 mspytorch-cpu0.09955 mstenferro-trace0.07683 ms · 0.77x

solve suite=large / dtype=f64 / threads=1 / shape=512x512,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.485 ms)pytorch-cpu3.485 msjax-cpu3.660 mstenferro-eager2.693 ms · 0.77xtenferro-trace2.734 ms · 0.78x

qr suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01325 ms)pytorch-cpu0.01325 msjax-cpu0.01688 mstenferro-eager0.01127 ms · 0.85xtenferro-trace0.01026 ms · 0.77x

qr suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01281 ms)pytorch-cpu0.01281 msjax-cpu0.02035 mstenferro-eager0.01099 ms · 0.86xtenferro-trace0.009962 ms · 0.78x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (9.786 ms)jax-cpu7.833 mspytorch-cpu9.786 mstenferro-trace7.617 ms · 0.78x

solve suite=large / dtype=f64 / threads=4 / shape=64x64,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0345 ms)pytorch-cpu0.0345 msjax-cpu0.05524 mstenferro-eager0.02695 ms · 0.78xtenferro-trace0.02776 ms · 0.80x

grad_sum_matmul suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.708 ms)jax-cpu4.262 mspytorch-cpu4.708 mstenferro-eager3.833 ms · 0.81xtenferro-trace3.680 ms · 0.78x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08883 ms)jax-cpu0.08645 mspytorch-cpu0.08883 mstenferro-trace0.06947 ms · 0.78x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02062 ms)pytorch-cpu0.02062 msjax-cpu0.06543 mstenferro-eager0.01614 ms · 0.78xtenferro-trace0.01619 ms · 0.79x

solve suite=large / dtype=f64 / threads=1 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3997 ms)jax-cpu0.3756 mspytorch-cpu0.3997 mstenferro-eager0.3138 ms · 0.79xtenferro-trace0.3204 ms · 0.80x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1651 ms)pytorch-cpu0.1651 msjax-cpu0.239 mstenferro-trace0.1303 ms · 0.79x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1059 ms)jax-cpu0.08341 mspytorch-cpu0.1059 mstenferro-trace0.08407 ms · 0.79x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (17.580 ms)pytorch-cpu17.580 msjax-cpu20.051 mstenferro-trace13.972 ms · 0.79x

qr suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005636 ms)pytorch-cpu0.005636 msjax-cpu0.008883 mstenferro-eager0.005147 ms · 0.91xtenferro-trace0.004485 ms · 0.80x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03257 ms)pytorch-cpu0.03257 msjax-cpu0.09526 mstenferro-eager0.02641 ms · 0.81xtenferro-trace0.02594 ms · 0.80x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.343 ms)jax-cpu4.439 mspytorch-cpu5.343 mstenferro-trace4.286 ms · 0.80x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (41.858 ms)pytorch-cpu41.858 msjax-cpu65.127 mstenferro-trace33.624 ms · 0.80x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (33.120 ms)jax-cpu26.300 mspytorch-cpu33.120 mstenferro-trace26.629 ms · 0.80x

qr suite=large / dtype=f64 / threads=1 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3219 ms)jax-cpu0.2951 mspytorch-cpu0.3219 mstenferro-eager0.2615 ms · 0.81xtenferro-trace0.2589 ms · 0.80x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0206 ms)pytorch-cpu0.0206 msjax-cpu0.0586 mstenferro-eager0.01656 ms · 0.80xtenferro-trace0.01661 ms · 0.81x

solve suite=large / dtype=f64 / threads=1 / shape=64x64,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0271 ms)pytorch-cpu0.0271 msjax-cpu0.03548 mstenferro-eager0.02185 ms · 0.81xtenferro-trace0.02251 ms · 0.83x

solve suite=large / dtype=f64 / threads=1 / shape=64x64,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02073 ms)pytorch-cpu0.02073 msjax-cpu0.02497 mstenferro-eager0.01673 ms · 0.81xtenferro-trace0.01681 ms · 0.81x

solve suite=large / dtype=f64 / threads=1 / shape=256x256,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4581 ms)jax-cpu0.4434 mspytorch-cpu0.4581 mstenferro-eager0.3705 ms · 0.81xtenferro-trace0.3776 ms · 0.82x

qr suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.899 ms)jax-cpu1.554 mspytorch-cpu1.899 mstenferro-eager1.549 ms · 0.82xtenferro-trace1.537 ms · 0.81x

grad_sum_matmul suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (11.934 ms)jax-cpu9.044 mspytorch-cpu11.934 mstenferro-eager18.500 ms · 1.55xtenferro-trace9.685 ms · 0.81x

solve suite=large / dtype=f64 / threads=8 / shape=64x64,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04702 ms)pytorch-cpu0.04702 msjax-cpu0.0767 mstenferro-eager0.0382 ms · 0.81xtenferro-trace0.0409 ms · 0.87x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (23.829 ms)jax-cpu18.262 mspytorch-cpu23.829 mstenferro-trace19.376 ms · 0.81x

qr suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (79.928 ms)jax-cpu68.733 mspytorch-cpu79.928 mstenferro-eager65.136 ms · 0.81xtenferro-trace65.191 ms · 0.82x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2229 ms)pytorch-cpu0.2229 msjax-cpu0.2239 mstenferro-trace0.1826 ms · 0.82x

matmul_rect suite=large / dtype=f64 / threads=1 / shape=256x1024 * 1024x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.213 ms)pytorch-cpu2.213 msjax-cpu2.258 mstenferro-eager1.813 ms · 0.82xtenferro-trace1.823 ms · 0.82x

solve suite=large / dtype=f64 / threads=1 / shape=256x256,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6354 ms)jax-cpu0.6332 mspytorch-cpu0.6354 mstenferro-eager0.5213 ms · 0.82xtenferro-trace0.5306 ms · 0.83x

grad_sum_svd_s_backward suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1624 ms)jax-cpu0.1302 mspytorch-cpu0.1624 mstenferro-trace0.1333 ms · 0.82x

solve suite=large / dtype=f64 / threads=1 / shape=64x64,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04647 ms)pytorch-cpu0.04647 msjax-cpu0.06562 mstenferro-eager0.03815 ms · 0.82xtenferro-trace0.039 ms · 0.84x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01002 ms)pytorch-cpu0.01002 msjax-cpu0.09092 mstenferro-eager0.008227 ms · 0.82xtenferro-trace0.008319 ms · 0.83x

solve suite=large / dtype=f64 / threads=4 / shape=64x64,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02074 ms)pytorch-cpu0.02074 msjax-cpu0.02434 mstenferro-eager0.01708 ms · 0.82xtenferro-trace0.01756 ms · 0.85x

grad_sum_matmul suite=large / dtype=f64 / threads=4 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01118 ms)pytorch-cpu0.01118 msjax-cpu0.02105 mstenferro-eager0.01647 ms · 1.47xtenferro-trace0.009218 ms · 0.82x

qr suite=large / dtype=f64 / threads=1 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05443 ms)jax-cpu0.05129 mspytorch-cpu0.05443 mstenferro-eager0.04699 ms · 0.86xtenferro-trace0.04493 ms · 0.83x

matmul suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.435 ms)jax-cpu4.090 mspytorch-cpu4.435 mstenferro-eager3.704 ms · 0.84xtenferro-trace3.669 ms · 0.83x

solve suite=large / dtype=f64 / threads=8 / shape=64x64,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03299 ms)pytorch-cpu0.03299 msjax-cpu0.03576 mstenferro-eager0.02754 ms · 0.83xtenferro-trace0.0273 ms · 0.83x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=4 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.121 ms)pytorch-cpu1.121 msjax-cpu1.635 mstenferro-trace0.9285 ms · 0.83x

svd suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (168.432 ms)pytorch-cpu168.432 msjax-cpu235.705 mstenferro-eager139.595 ms · 0.83xtenferro-trace146.365 ms · 0.87x

qr suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (13.064 ms)jax-cpu10.990 mspytorch-cpu13.064 mstenferro-eager10.832 ms · 0.83xtenferro-trace10.854 ms · 0.83x

grad_sum_matmul suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5586 ms)pytorch-cpu0.5586 msjax-cpu0.5703 mstenferro-eager0.5096 ms · 0.91xtenferro-trace0.4633 ms · 0.83x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05251 ms)pytorch-cpu0.05251 msjax-cpu0.07902 mstenferro-eager0.04394 ms · 0.84xtenferro-trace0.04365 ms · 0.83x

qr suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.649 ms)pytorch-cpu5.649 msjax-cpu7.407 mstenferro-eager4.998 ms · 0.88xtenferro-trace4.703 ms · 0.83x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01095 ms)pytorch-cpu0.01095 msjax-cpu0.02009 mstenferro-eager0.01096 ms · 1.00xtenferro-trace0.009138 ms · 0.83x

solve suite=large / dtype=f64 / threads=4 / shape=64x64,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02539 ms)pytorch-cpu0.02539 msjax-cpu0.04055 mstenferro-eager0.02121 ms · 0.84xtenferro-trace0.02194 ms · 0.86x

grad_sum_matmul suite=large / dtype=f64 / threads=1 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08166 ms)pytorch-cpu0.08166 msjax-cpu0.09162 mstenferro-eager0.08353 ms · 1.02xtenferro-trace0.06825 ms · 0.84x

matmul_rect suite=large / dtype=f64 / threads=8 / shape=1024x256 * 256x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.603 ms)jax-cpu2.433 mspytorch-cpu2.603 mstenferro-eager2.176 ms · 0.84xtenferro-trace2.208 ms · 0.85x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (185.431 ms)pytorch-cpu185.431 msjax-cpu285.891 mstenferro-trace155.048 ms · 0.84x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (6.379 ms)pytorch-cpu6.379 msjax-cpu7.250 mstenferro-trace5.343 ms · 0.84x

eigh suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003228 ms)pytorch-cpu0.003228 msjax-cpu0.004895 mstenferro-eager0.002938 ms · 0.91xtenferro-trace0.002709 ms · 0.84x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (62.563 ms)jax-cpu55.564 mspytorch-cpu62.563 mstenferro-trace52.715 ms · 0.84x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01516 ms)pytorch-cpu0.01516 msjax-cpu0.09527 mstenferro-eager0.01558 ms · 1.03xtenferro-trace0.01277 ms · 0.84x

svd suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003996 ms)pytorch-cpu0.003996 msjax-cpu0.006077 mstenferro-eager0.003729 ms · 0.93xtenferro-trace0.003368 ms · 0.84x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (33.753 ms)jax-cpu26.118 mspytorch-cpu33.753 mstenferro-trace28.479 ms · 0.84x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (220.816 ms)jax-cpu199.602 mspytorch-cpu220.816 mstenferro-trace186.426 ms · 0.84x

solve suite=large / dtype=f64 / threads=8 / shape=64x64,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03899 ms)pytorch-cpu0.03899 msjax-cpu0.0589 mstenferro-eager0.03294 ms · 0.84xtenferro-trace0.03469 ms · 0.89x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (163.152 ms)pytorch-cpu163.152 msjax-cpu216.289 mstenferro-trace138.216 ms · 0.85x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=1 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2547 ms)jax-cpu0.2158 mspytorch-cpu0.2547 mstenferro-trace0.2158 ms · 0.85x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (34.022 ms)jax-cpu26.247 mspytorch-cpu34.022 mstenferro-trace28.947 ms · 0.85x

solve suite=large / dtype=f64 / threads=1 / shape=128x128,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06909 ms)pytorch-cpu0.06909 msjax-cpu0.07541 mstenferro-eager0.0588 ms · 0.85xtenferro-trace0.06035 ms · 0.87x

grad_sum_matmul suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.513 ms)jax-cpu7.422 mspytorch-cpu10.513 mstenferro-eager15.598 ms · 1.48xtenferro-trace8.951 ms · 0.85x

grad_sum_matmul suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (34.687 ms)jax-cpu30.636 mspytorch-cpu34.687 mstenferro-eager31.122 ms · 0.90xtenferro-trace29.534 ms · 0.85x

solve suite=large / dtype=f64 / threads=1 / shape=128x128,rhs=16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09154 ms)pytorch-cpu0.09154 msjax-cpu0.1085 mstenferro-eager0.07795 ms · 0.85xtenferro-trace0.08025 ms · 0.88x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04842 ms)jax-cpu0.01233 mspytorch-cpu0.04842 mstenferro-trace0.04131 ms · 0.85x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07636 ms)jax-cpu0.01624 mspytorch-cpu0.07636 mstenferro-trace0.06528 ms · 0.85x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (31.007 ms)pytorch-cpu31.007 msjax-cpu43.314 mstenferro-trace26.587 ms · 0.86x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0203 ms)pytorch-cpu0.0203 msjax-cpu0.03313 mstenferro-eager0.01958 ms · 0.96xtenferro-trace0.01755 ms · 0.86x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=4 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3306 ms)jax-cpu0.3201 mspytorch-cpu0.3306 mstenferro-trace0.286 ms · 0.87x

grad_sum_matmul suite=large / dtype=f64 / threads=1 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01414 ms)pytorch-cpu0.01414 msjax-cpu0.02634 mstenferro-eager0.01994 ms · 1.41xtenferro-trace0.01224 ms · 0.87x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (165.914 ms)jax-cpu144.087 mspytorch-cpu165.914 mstenferro-trace143.876 ms · 0.87x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03936 ms)pytorch-cpu0.03936 msjax-cpu0.05812 mstenferro-eager0.03572 ms · 0.91xtenferro-trace0.03413 ms · 0.87x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009563 ms)pytorch-cpu0.009563 msjax-cpu0.01524 mstenferro-eager0.008981 ms · 0.94xtenferro-trace0.008296 ms · 0.87x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (13.136 ms)jax-cpu11.823 mspytorch-cpu13.136 mstenferro-trace11.422 ms · 0.87x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1497 ms)pytorch-cpu0.1497 msjax-cpu0.2099 mstenferro-eager0.1335 ms · 0.89xtenferro-trace0.1302 ms · 0.87x

solve suite=large / dtype=f64 / threads=4 / shape=128x128,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07028 ms)pytorch-cpu0.07028 msjax-cpu0.07087 mstenferro-eager0.06114 ms · 0.87xtenferro-trace0.4961 ms · 7.06x

eigh suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003994 ms)pytorch-cpu0.003994 msjax-cpu0.005094 mstenferro-eager0.003912 ms · 0.98xtenferro-trace0.003479 ms · 0.87x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.289 ms)pytorch-cpu8.289 msjax-cpu12.981 mstenferro-trace7.225 ms · 0.87x

svd suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (316.254 ms)jax-cpu284.585 mspytorch-cpu316.254 mstenferro-eager275.704 ms · 0.87xtenferro-trace277.639 ms · 0.88x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (30.794 ms)jax-cpu21.980 mspytorch-cpu30.794 mstenferro-trace26.860 ms · 0.87x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01621 ms)pytorch-cpu0.01621 msjax-cpu0.02745 mstenferro-eager0.0144 ms · 0.89xtenferro-trace0.01414 ms · 0.87x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.741 ms)jax-cpu3.780 mspytorch-cpu4.741 mstenferro-trace4.139 ms · 0.87x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01095 ms)pytorch-cpu0.01095 msjax-cpu0.01721 mstenferro-eager0.01081 ms · 0.99xtenferro-trace0.009596 ms · 0.88x

matmul suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (9.191 ms)jax-cpu7.646 mspytorch-cpu9.191 mstenferro-eager8.196 ms · 0.89xtenferro-trace8.053 ms · 0.88x

eigh suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003245 ms)pytorch-cpu0.003245 msjax-cpu0.00487 mstenferro-eager0.003179 ms · 0.98xtenferro-trace0.002845 ms · 0.88x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (176.369 ms)pytorch-cpu176.369 msjax-cpu293.920 mstenferro-trace154.665 ms · 0.88x

svd suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003992 ms)pytorch-cpu0.003992 msjax-cpu0.006015 mstenferro-eager0.003933 ms · 0.99xtenferro-trace0.003502 ms · 0.88x

eigh suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005989 ms)pytorch-cpu0.005989 msjax-cpu0.007758 mstenferro-eager0.005606 ms · 0.94xtenferro-trace0.005256 ms · 0.88x

svd suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08705 ms)jax-cpu0.08352 mspytorch-cpu0.08705 mstenferro-eager0.07788 ms · 0.89xtenferro-trace0.07649 ms · 0.88x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (209.772 ms)jax-cpu197.539 mspytorch-cpu209.772 mstenferro-trace184.472 ms · 0.88x

svd suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (137.008 ms)pytorch-cpu137.008 msjax-cpu169.836 mstenferro-eager120.947 ms · 0.88xtenferro-trace120.536 ms · 0.88x

qr suite=large / dtype=f64 / threads=4 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06003 ms)jax-cpu0.05219 mspytorch-cpu0.06003 mstenferro-eager0.06455 ms · 1.08xtenferro-trace0.05289 ms · 0.88x

grad_sum_matmul suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.909 ms)jax-cpu1.705 mspytorch-cpu1.909 mstenferro-eager2.765 ms · 1.45xtenferro-trace1.684 ms · 0.88x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5865 ms)pytorch-cpu0.5865 msjax-cpu0.8228 mstenferro-eager0.5257 ms · 0.90xtenferro-trace0.5176 ms · 0.88x

svd suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08096 ms)pytorch-cpu0.08096 msjax-cpu0.08377 mstenferro-eager0.07261 ms · 0.90xtenferro-trace0.07148 ms · 0.88x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04862 ms)jax-cpu0.01073 mspytorch-cpu0.04862 mstenferro-trace0.04294 ms · 0.88x

solve suite=large / dtype=f64 / threads=1 / shape=128x128,rhs=64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1487 ms)pytorch-cpu0.1487 msjax-cpu0.1742 mstenferro-eager0.1314 ms · 0.88xtenferro-trace0.1349 ms · 0.91x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=1 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3361 ms)jax-cpu0.2994 mspytorch-cpu0.3361 mstenferro-trace0.2975 ms · 0.89x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.187 ms)pytorch-cpu0.187 msjax-cpu0.2848 mstenferro-eager0.1656 ms · 0.89xtenferro-trace0.1722 ms · 0.92x

qr suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (30.690 ms)pytorch-cpu30.690 msjax-cpu45.476 mstenferro-eager42.365 ms · 1.38xtenferro-trace27.179 ms · 0.89x

solve suite=large / dtype=f64 / threads=8 / shape=128x128,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1102 ms)pytorch-cpu0.1102 msjax-cpu0.1245 mstenferro-eager0.09816 ms · 0.89xtenferro-trace0.09767 ms · 0.89x

svd suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (7.555 ms)jax-cpu7.051 mspytorch-cpu7.555 mstenferro-eager6.706 ms · 0.89xtenferro-trace6.718 ms · 0.89x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=1 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.560 ms)jax-cpu1.381 mspytorch-cpu1.560 mstenferro-trace1.385 ms · 0.89x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05815 ms)pytorch-cpu0.05815 msjax-cpu0.1013 mstenferro-trace0.05168 ms · 0.89x

qr suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (26.087 ms)pytorch-cpu26.087 msjax-cpu35.896 mstenferro-eager23.604 ms · 0.90xtenferro-trace23.240 ms · 0.89x

svd suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02538 ms)pytorch-cpu0.02538 msjax-cpu0.02759 mstenferro-eager0.02311 ms · 0.91xtenferro-trace0.02266 ms · 0.89x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (58.354 ms)jax-cpu55.221 mspytorch-cpu58.354 mstenferro-trace52.158 ms · 0.89x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=8 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4823 ms)pytorch-cpu0.4823 msjax-cpu0.4835 mstenferro-trace0.4326 ms · 0.90x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03936 ms)pytorch-cpu0.03936 msjax-cpu0.0568 mstenferro-eager0.03635 ms · 0.92xtenferro-trace0.03531 ms · 0.90x

qr suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005571 ms)pytorch-cpu0.005571 msjax-cpu0.00955 mstenferro-eager0.005759 ms · 1.03xtenferro-trace0.004998 ms · 0.90x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01686 ms)pytorch-cpu0.01686 msjax-cpu0.02664 mstenferro-eager0.0174 ms · 1.03xtenferro-trace0.01513 ms · 0.90x

svd suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02539 ms)pytorch-cpu0.02539 msjax-cpu0.02796 mstenferro-eager0.02378 ms · 0.94xtenferro-trace0.0228 ms · 0.90x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1526 ms)pytorch-cpu0.1526 msjax-cpu0.1862 mstenferro-trace0.137 ms · 0.90x

matmul suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.184 ms)jax-cpu8.511 mspytorch-cpu10.184 mstenferro-eager9.160 ms · 0.90xtenferro-trace9.164 ms · 0.90x

eigh suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04137 ms)pytorch-cpu0.04137 msjax-cpu0.05237 mstenferro-eager0.03804 ms · 0.92xtenferro-trace0.03724 ms · 0.90x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.008 ms)jax-cpu3.486 mspytorch-cpu4.008 mstenferro-trace3.610 ms · 0.90x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009405 ms)pytorch-cpu0.009405 msjax-cpu0.01109 mstenferro-eager0.009451 ms · 1.00xtenferro-trace0.008478 ms · 0.90x

qr suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.004973 ms)pytorch-cpu0.004973 msjax-cpu0.007931 mstenferro-eager0.004931 ms · 0.99xtenferro-trace0.004486 ms · 0.90x

eigh suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01301 ms)pytorch-cpu0.01301 msjax-cpu0.01733 mstenferro-eager0.01211 ms · 0.93xtenferro-trace0.01174 ms · 0.90x

qr suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003466 ms)pytorch-cpu0.003466 msjax-cpu0.005663 mstenferro-eager0.003752 ms · 1.08xtenferro-trace0.003129 ms · 0.90x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06176 ms)pytorch-cpu0.06176 msjax-cpu0.08837 mstenferro-eager0.05906 ms · 0.96xtenferro-trace0.05592 ms · 0.91x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.574 ms)jax-cpu1.516 mspytorch-cpu1.574 mstenferro-trace1.427 ms · 0.91x

svd suite=large / dtype=f64 / threads=1 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.380 ms)jax-cpu1.283 mspytorch-cpu1.380 mstenferro-eager1.255 ms · 0.91xtenferro-trace1.251 ms · 0.91x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.283 ms)pytorch-cpu2.283 msjax-cpu3.309 mstenferro-eager2.070 ms · 0.91xtenferro-trace2.071 ms · 0.91x

qr suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003162 ms)pytorch-cpu0.003162 msjax-cpu0.004621 mstenferro-eager0.003239 ms · 1.02xtenferro-trace0.002867 ms · 0.91x

eigh suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01318 ms)pytorch-cpu0.01318 msjax-cpu0.01732 mstenferro-eager0.01261 ms · 0.96xtenferro-trace0.01195 ms · 0.91x

eigh suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04469 ms)pytorch-cpu0.04469 msjax-cpu0.05367 mstenferro-eager0.04179 ms · 0.94xtenferro-trace0.04059 ms · 0.91x

eigh suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00603 ms)pytorch-cpu0.00603 msjax-cpu0.007635 mstenferro-eager0.005948 ms · 0.99xtenferro-trace0.005477 ms · 0.91x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01469 ms)pytorch-cpu0.01469 msjax-cpu0.09484 mstenferro-eager0.01384 ms · 0.94xtenferro-trace0.01334 ms · 0.91x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7277 ms)pytorch-cpu0.7277 msjax-cpu1.190 mstenferro-eager0.6611 ms · 0.91xtenferro-trace0.691 ms · 0.95x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06434 ms)pytorch-cpu0.06434 msjax-cpu0.07922 mstenferro-eager0.05872 ms · 0.91xtenferro-trace0.0585 ms · 0.91x

eigh suite=large / dtype=f64 / threads=4 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1212 ms)pytorch-cpu0.1212 msjax-cpu0.2019 mstenferro-eager0.1115 ms · 0.92xtenferro-trace0.1103 ms · 0.91x

matmul suite=small / dtype=f64 / threads=4 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.004627 ms)pytorch-cpu0.004627 msjax-cpu0.005857 mstenferro-eager0.004454 ms · 0.96xtenferro-trace0.004208 ms · 0.91x

svd suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (48.492 ms)jax-cpu47.033 mspytorch-cpu48.492 mstenferro-eager44.111 ms · 0.91xtenferro-trace44.333 ms · 0.91x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3618 ms)jax-cpu0.2544 mspytorch-cpu0.3618 mstenferro-eager0.3304 ms · 0.91xtenferro-trace0.3354 ms · 0.93x

svd suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.761 ms)pytorch-cpu5.761 msjax-cpu6.031 mstenferro-eager8.010 ms · 1.39xtenferro-trace5.262 ms · 0.91x

svd suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1333 ms)jax-cpu0.1282 mspytorch-cpu0.1333 mstenferro-eager0.1228 ms · 0.92xtenferro-trace0.1219 ms · 0.91x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.798 ms)jax-cpu5.798 mspytorch-cpu5.798 mstenferro-eager5.303 ms · 0.91xtenferro-trace5.308 ms · 0.92x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (151.604 ms)pytorch-cpu151.604 msjax-cpu215.124 mstenferro-trace138.654 ms · 0.91x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.444 ms)pytorch-cpu1.444 msjax-cpu1.454 mstenferro-eager1.321 ms · 0.91xtenferro-trace1.324 ms · 0.92x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.341 ms)jax-cpu8.012 mspytorch-cpu8.341 mstenferro-trace7.636 ms · 0.92x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01491 ms)pytorch-cpu0.01491 msjax-cpu0.01964 mstenferro-eager0.01457 ms · 0.98xtenferro-trace0.01368 ms · 0.92x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0295 ms)pytorch-cpu0.0295 msjax-cpu0.08244 mstenferro-eager0.02706 ms · 0.92xtenferro-trace0.0273 ms · 0.93x

qr suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.004705 ms)pytorch-cpu0.004705 msjax-cpu0.008918 mstenferro-eager0.004938 ms · 1.05xtenferro-trace0.004316 ms · 0.92x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (98.152 ms)jax-cpu91.268 mspytorch-cpu98.152 mstenferro-trace90.101 ms · 0.92x

svd suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005562 ms)pytorch-cpu0.005562 msjax-cpu0.007385 mstenferro-eager0.005364 ms · 0.96xtenferro-trace0.005106 ms · 0.92x

eigh suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.004919 ms)pytorch-cpu0.004919 msjax-cpu0.007425 mstenferro-eager0.004986 ms · 1.01xtenferro-trace0.00452 ms · 0.92x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.996 ms)jax-cpu3.515 mspytorch-cpu3.996 mstenferro-trace3.672 ms · 0.92x

matmul_rect suite=large / dtype=f64 / threads=1 / shape=1024x256 * 256x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.044 ms)jax-cpu7.686 mspytorch-cpu8.044 mstenferro-eager7.394 ms · 0.92xtenferro-trace7.463 ms · 0.93x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3553 ms)pytorch-cpu0.3553 msjax-cpu0.3701 mstenferro-eager0.327 ms · 0.92xtenferro-trace0.3273 ms · 0.92x

svd suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005989 ms)pytorch-cpu0.005989 msjax-cpu0.01052 mstenferro-eager0.005998 ms · 1.00xtenferro-trace0.005512 ms · 0.92x

svd suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03929 ms)pytorch-cpu0.03929 msjax-cpu0.04398 mstenferro-eager0.03713 ms · 0.95xtenferro-trace0.03617 ms · 0.92x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (22.983 ms)jax-cpu22.971 mspytorch-cpu22.983 mstenferro-eager21.182 ms · 0.92xtenferro-trace21.220 ms · 0.92x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0281 ms)pytorch-cpu0.0281 msjax-cpu0.06686 mstenferro-eager0.02644 ms · 0.94xtenferro-trace0.02601 ms · 0.93x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1455 ms)pytorch-cpu0.1455 msjax-cpu0.1784 mstenferro-eager0.1369 ms · 0.94xtenferro-trace0.1346 ms · 0.93x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (36.181 ms)jax-cpu9.483 mspytorch-cpu36.181 mstenferro-eager33.647 ms · 0.93xtenferro-trace33.577 ms · 0.93x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (363.785 ms)jax-cpu356.682 mspytorch-cpu363.785 mstenferro-trace337.656 ms · 0.93x

svd suite=large / dtype=f64 / threads=4 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2839 ms)pytorch-cpu0.2839 msjax-cpu0.3058 mstenferro-eager0.2655 ms · 0.94xtenferro-trace0.2635 ms · 0.93x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2296 ms)pytorch-cpu0.2296 msjax-cpu0.2479 mstenferro-eager0.2164 ms · 0.94xtenferro-trace0.2132 ms · 0.93x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5751 ms)pytorch-cpu0.5751 msjax-cpu0.6341 mstenferro-eager0.5376 ms · 0.93xtenferro-trace0.534 ms · 0.93x

svd suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (25.482 ms)pytorch-cpu25.482 msjax-cpu36.666 mstenferro-eager23.680 ms · 0.93xtenferro-trace23.883 ms · 0.94x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.183 ms)jax-cpu7.823 mspytorch-cpu8.183 mstenferro-trace7.606 ms · 0.93x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (9.028 ms)jax-cpu2.397 mspytorch-cpu9.028 mstenferro-eager8.401 ms · 0.93xtenferro-trace8.393 ms · 0.93x

svd suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005636 ms)pytorch-cpu0.005636 msjax-cpu0.007457 mstenferro-eager0.005666 ms · 1.01xtenferro-trace0.005241 ms · 0.93x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.8796 ms)jax-cpu0.4795 mspytorch-cpu0.8796 mstenferro-eager0.8255 ms · 0.94xtenferro-trace0.819 ms · 0.93x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.249 ms)jax-cpu0.6967 mspytorch-cpu2.249 mstenferro-eager2.095 ms · 0.93xtenferro-trace2.100 ms · 0.93x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (55.290 ms)pytorch-cpu55.290 msjax-cpu80.030 mstenferro-trace51.512 ms · 0.93x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6455 ms)pytorch-cpu0.6455 msjax-cpu0.8302 mstenferro-eager0.6016 ms · 0.93xtenferro-trace0.604 ms · 0.94x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.632 ms)pytorch-cpu2.632 msjax-cpu3.291 mstenferro-eager2.456 ms · 0.93xtenferro-trace2.454 ms · 0.93x

svd suite=large / dtype=f64 / threads=1 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2926 ms)jax-cpu0.2797 mspytorch-cpu0.2926 mstenferro-eager0.2729 ms · 0.93xtenferro-trace0.2735 ms · 0.93x

matmul suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (31.365 ms)jax-cpu29.747 mspytorch-cpu31.365 mstenferro-eager29.340 ms · 0.94xtenferro-trace29.253 ms · 0.93x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.406 ms)jax-cpu8.167 mspytorch-cpu10.406 mstenferro-trace9.737 ms · 0.94x

eigh suite=large / dtype=f64 / threads=1 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7148 ms)pytorch-cpu0.7148 msjax-cpu0.7336 mstenferro-eager0.6716 ms · 0.94xtenferro-trace0.6705 ms · 0.94x

eigh suite=large / dtype=f64 / threads=8 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1769 ms)pytorch-cpu0.1769 msjax-cpu0.2923 mstenferro-eager0.1674 ms · 0.95xtenferro-trace0.1659 ms · 0.94x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.439 ms)jax-cpu0.9196 mspytorch-cpu1.439 mstenferro-eager1.350 ms · 0.94xtenferro-trace1.350 ms · 0.94x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5534 ms)jax-cpu0.2522 mspytorch-cpu0.5534 mstenferro-eager0.5195 ms · 0.94xtenferro-trace0.5206 ms · 0.94x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1589 ms)pytorch-cpu0.1589 msjax-cpu0.1689 mstenferro-eager0.1492 ms · 0.94xtenferro-trace0.1522 ms · 0.96x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.465 ms)pytorch-cpu10.465 msjax-cpu13.071 mstenferro-eager9.863 ms · 0.94xtenferro-trace9.855 ms · 0.94x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1578 ms)pytorch-cpu0.1578 msjax-cpu0.2109 mstenferro-eager0.1487 ms · 0.94xtenferro-trace0.1486 ms · 0.94x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.915 ms)jax-cpu2.709 mspytorch-cpu5.915 mstenferro-eager5.574 ms · 0.94xtenferro-trace5.574 ms · 0.94x

eigh suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009174 ms)pytorch-cpu0.009174 msjax-cpu0.01201 mstenferro-eager0.009727 ms · 1.06xtenferro-trace0.008652 ms · 0.94x

eigh suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003972 ms)pytorch-cpu0.003972 msjax-cpu0.005181 mstenferro-eager0.004046 ms · 1.02xtenferro-trace0.003752 ms · 0.94x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.419 ms)jax-cpu1.762 mspytorch-cpu3.419 mstenferro-eager3.235 ms · 0.95xtenferro-trace3.237 ms · 0.95x

svd suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.140 ms)pytorch-cpu8.140 msjax-cpu9.419 mstenferro-eager7.709 ms · 0.95xtenferro-trace11.293 ms · 1.39x

eigh suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01999 ms)pytorch-cpu0.01999 msjax-cpu0.02736 mstenferro-eager0.0196 ms · 0.98xtenferro-trace0.01895 ms · 0.95x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.819 ms)jax-cpu2.448 mspytorch-cpu2.819 mstenferro-trace2.672 ms · 0.95x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6498 ms)jax-cpu0.5204 mspytorch-cpu0.6498 mstenferro-eager0.6168 ms · 0.95xtenferro-trace0.6188 ms · 0.95x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.007 ms)jax-cpu0.3875 mspytorch-cpu1.007 mstenferro-eager0.9565 ms · 0.95xtenferro-trace0.9606 ms · 0.95x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.096 ms)jax-cpu1.620 mspytorch-cpu4.096 mstenferro-eager3.907 ms · 0.95xtenferro-trace3.892 ms · 0.95x

svd suite=large / dtype=f64 / threads=8 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4263 ms)pytorch-cpu0.4263 msjax-cpu0.4506 mstenferro-eager0.4053 ms · 0.95xtenferro-trace0.4051 ms · 0.95x

eigh suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06782 ms)pytorch-cpu0.06782 msjax-cpu0.08263 mstenferro-eager0.06592 ms · 0.97xtenferro-trace0.06458 ms · 0.95x

qr suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.002788 ms)pytorch-cpu0.002788 msjax-cpu0.004908 mstenferro-eager0.002903 ms · 1.04xtenferro-trace0.002655 ms · 0.95x

eigh suite=large / dtype=f64 / threads=1 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1553 ms)pytorch-cpu0.1553 msjax-cpu0.1798 mstenferro-eager0.1493 ms · 0.96xtenferro-trace0.1481 ms · 0.95x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05703 ms)pytorch-cpu0.05703 msjax-cpu0.1043 mstenferro-trace0.05443 ms · 0.95x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (72.653 ms)pytorch-cpu72.653 msjax-cpu112.952 mstenferro-trace69.388 ms · 0.96x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (73.734 ms)pytorch-cpu73.734 msjax-cpu122.938 mstenferro-trace70.481 ms · 0.96x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (16.334 ms)jax-cpu6.655 mspytorch-cpu16.334 mstenferro-eager15.622 ms · 0.96xtenferro-trace15.631 ms · 0.96x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.687 ms)jax-cpu1.696 mspytorch-cpu2.687 mstenferro-eager2.576 ms · 0.96xtenferro-trace2.588 ms · 0.96x

svd suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009862 ms)pytorch-cpu0.009862 msjax-cpu0.01093 mstenferro-eager0.009849 ms · 1.00xtenferro-trace0.009463 ms · 0.96x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02111 ms)pytorch-cpu0.02111 msjax-cpu0.03151 mstenferro-eager0.02145 ms · 1.02xtenferro-trace0.02027 ms · 0.96x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (75.625 ms)pytorch-cpu75.625 msjax-cpu130.987 mstenferro-trace72.724 ms · 0.96x

qr suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.004343 ms)pytorch-cpu0.004343 msjax-cpu0.007384 mstenferro-eager0.004984 ms · 1.15xtenferro-trace0.00418 ms · 0.96x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (12.310 ms)pytorch-cpu12.310 msjax-cpu18.769 mstenferro-trace11.850 ms · 0.96x

svd suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008541 ms)pytorch-cpu0.008541 msjax-cpu0.01155 mstenferro-eager0.009323 ms · 1.09xtenferro-trace0.008232 ms · 0.96x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (23.330 ms)jax-cpu11.671 mspytorch-cpu23.330 mstenferro-eager22.578 ms · 0.97xtenferro-trace22.488 ms · 0.96x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2454 ms)pytorch-cpu0.2454 msjax-cpu0.2467 mstenferro-eager0.2367 ms · 0.96xtenferro-trace0.2366 ms · 0.96x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01335 ms)pytorch-cpu0.01335 msjax-cpu0.02418 mstenferro-eager0.01361 ms · 1.02xtenferro-trace0.01288 ms · 0.96x

svd suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009969 ms)pytorch-cpu0.009969 msjax-cpu0.01077 mstenferro-eager0.0104 ms · 1.04xtenferro-trace0.009625 ms · 0.97x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08805 ms)pytorch-cpu0.08805 msjax-cpu0.1721 mstenferro-trace0.08524 ms · 0.97x

eigh suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.817 ms)jax-cpu3.602 mspytorch-cpu3.817 mstenferro-eager3.714 ms · 0.97xtenferro-trace3.702 ms · 0.97x

eigh suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005899 ms)pytorch-cpu0.005899 msjax-cpu0.008861 mstenferro-eager0.00623 ms · 1.06xtenferro-trace0.005734 ms · 0.97x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.191 ms)jax-cpu2.164 mspytorch-cpu2.191 mstenferro-eager2.175 ms · 0.99xtenferro-trace2.135 ms · 0.97x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0448 ms)pytorch-cpu0.0448 msjax-cpu0.07306 mstenferro-eager0.0448 ms · 1.00xtenferro-trace0.0437 ms · 0.98x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0136 ms)pytorch-cpu0.0136 msjax-cpu0.02225 mstenferro-eager0.01368 ms · 1.01xtenferro-trace0.01327 ms · 0.98x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (345.597 ms)pytorch-cpu345.597 msjax-cpu358.294 mstenferro-trace337.412 ms · 0.98x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch16 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02287 ms)pytorch-cpu0.02287 msjax-cpu0.04046 mstenferro-eager0.02281 ms · 1.00xtenferro-trace0.02235 ms · 0.98x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1702 ms)pytorch-cpu0.1702 msjax-cpu0.2685 mstenferro-eager0.1708 ms · 1.00xtenferro-trace0.1665 ms · 0.98x

qr suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003026 ms)pytorch-cpu0.003026 msjax-cpu0.005636 mstenferro-eager0.003717 ms · 1.23xtenferro-trace0.002978 ms · 0.98x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04524 ms)pytorch-cpu0.04524 msjax-cpu0.07217 mstenferro-eager0.04558 ms · 1.01xtenferro-trace0.04455 ms · 0.98x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6722 ms)pytorch-cpu0.6722 msjax-cpu1.057 mstenferro-eager0.6689 ms · 0.99xtenferro-trace0.6639 ms · 0.99x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (28.174 ms)pytorch-cpu28.174 msjax-cpu28.650 mstenferro-trace27.836 ms · 0.99x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3822 ms)pytorch-cpu0.3822 msjax-cpu1.359 mstenferro-eager0.3776 ms · 0.99xtenferro-trace0.3777 ms · 0.99x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01843 ms)pytorch-cpu0.01843 msjax-cpu0.03295 mstenferro-eager0.02007 ms · 1.09xtenferro-trace0.01823 ms · 0.99x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=1 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.327 ms)pytorch-cpu4.327 msjax-cpu4.444 mstenferro-trace4.295 ms · 0.99x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1024 ms)pytorch-cpu0.1024 msjax-cpu0.1495 mstenferro-eager0.1021 ms · 1.00xtenferro-trace0.1018 ms · 0.99x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05027 ms)pytorch-cpu0.05027 msjax-cpu0.05978 mstenferro-eager0.05033 ms · 1.00xtenferro-trace0.05006 ms · 1.00x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.693 ms)pytorch-cpu8.693 msjax-cpu11.951 mstenferro-trace8.659 ms · 1.00x

svd suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01524 ms)pytorch-cpu0.01524 msjax-cpu0.01806 mstenferro-eager0.01603 ms · 1.05xtenferro-trace0.01518 ms · 1.00x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0692 ms)pytorch-cpu0.0692 msjax-cpu0.1134 mstenferro-eager0.07054 ms · 1.02xtenferro-trace0.069 ms · 1.00x

qr suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.002661 ms)pytorch-cpu0.002661 msjax-cpu0.004677 mstenferro-eager0.002978 ms · 1.12xtenferro-trace0.002661 ms · 1.00x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05049 ms)pytorch-cpu0.05049 msjax-cpu0.06088 mstenferro-eager0.05055 ms · 1.00xtenferro-trace0.05123 ms · 1.01x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1925 ms)pytorch-cpu0.1925 msjax-cpu0.2166 mstenferro-eager0.1936 ms · 1.01xtenferro-trace0.1934 ms · 1.00x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.416 ms)jax-cpu7.156 mspytorch-cpu10.416 mstenferro-eager10.515 ms · 1.01xtenferro-trace10.464 ms · 1.00x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7619 ms)pytorch-cpu0.7619 msjax-cpu0.8541 mstenferro-eager0.7681 ms · 1.01xtenferro-trace0.7675 ms · 1.01x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01894 ms)pytorch-cpu0.01894 msjax-cpu0.02994 mstenferro-eager0.01947 ms · 1.03xtenferro-trace0.0191 ms · 1.01x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.039 ms)pytorch-cpu3.039 msjax-cpu3.388 mstenferro-eager3.068 ms · 1.01xtenferro-trace3.067 ms · 1.01x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0784 ms)pytorch-cpu0.0784 msjax-cpu0.0946 mstenferro-eager0.08 ms · 1.02xtenferro-trace0.07914 ms · 1.01x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5167 ms)pytorch-cpu0.5167 msjax-cpu0.7155 mstenferro-trace0.5217 ms · 1.01x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05841 ms)pytorch-cpu0.05841 msjax-cpu0.1044 mstenferro-eager0.06779 ms · 1.16xtenferro-trace0.05899 ms · 1.01x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1952 ms)pytorch-cpu0.1952 msjax-cpu0.2363 mstenferro-eager0.1973 ms · 1.01xtenferro-trace0.1974 ms · 1.01x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.17 ms)pytorch-cpu0.17 msjax-cpu0.312 mstenferro-eager0.1719 ms · 1.01xtenferro-trace0.1735 ms · 1.02x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (11.005 ms)pytorch-cpu11.005 msjax-cpu21.794 mstenferro-trace11.145 ms · 1.01x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0432 ms)pytorch-cpu0.0432 msjax-cpu0.07313 mstenferro-trace0.0438 ms · 1.01x

eigh suite=large / dtype=f64 / threads=1 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (22.830 ms)jax-cpu20.771 mspytorch-cpu22.830 mstenferro-eager23.255 ms · 1.02xtenferro-trace23.152 ms · 1.01x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1403 ms)pytorch-cpu0.1403 msjax-cpu0.2005 mstenferro-trace0.1423 ms · 1.01x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7719 ms)jax-cpu0.6513 mspytorch-cpu0.7719 mstenferro-eager0.7859 ms · 1.02xtenferro-trace0.7853 ms · 1.02x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2584 ms)pytorch-cpu0.2584 msjax-cpu0.4385 mstenferro-eager0.2644 ms · 1.02xtenferro-trace0.2632 ms · 1.02x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.880 ms)pytorch-cpu5.880 msjax-cpu7.402 mstenferro-trace6.016 ms · 1.02x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3 ms)pytorch-cpu0.3 msjax-cpu0.3623 mstenferro-eager0.3072 ms · 1.02xtenferro-trace0.3069 ms · 1.02x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (4.737 ms)jax-cpu2.275 mspytorch-cpu4.737 mstenferro-eager4.865 ms · 1.03xtenferro-trace4.847 ms · 1.02x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01071 ms)pytorch-cpu0.01071 msjax-cpu0.01699 mstenferro-eager0.01166 ms · 1.09xtenferro-trace0.01099 ms · 1.03x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.186 ms)jax-cpu0.6774 mspytorch-cpu1.186 mstenferro-eager1.217 ms · 1.03xtenferro-trace1.223 ms · 1.03x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2586 ms)pytorch-cpu0.2586 msjax-cpu0.3669 mstenferro-eager0.2683 ms · 1.04xtenferro-trace0.2653 ms · 1.03x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06684 ms)pytorch-cpu0.06684 msjax-cpu0.09696 mstenferro-eager0.06935 ms · 1.04xtenferro-trace0.06864 ms · 1.03x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6598 ms)jax-cpu0.6551 mspytorch-cpu0.6598 mstenferro-eager0.6832 ms · 1.04xtenferro-trace0.68 ms · 1.03x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.086 ms)jax-cpu1.643 mspytorch-cpu3.086 mstenferro-eager3.202 ms · 1.04xtenferro-trace3.214 ms · 1.04x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.9928 ms)jax-cpu0.7796 mspytorch-cpu0.9928 mstenferro-eager1.036 ms · 1.04xtenferro-trace1.034 ms · 1.04x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00681 ms)pytorch-cpu0.00681 msjax-cpu0.01016 mstenferro-eager0.007445 ms · 1.09xtenferro-trace0.007135 ms · 1.05x

matmul suite=small / dtype=f64 / threads=1 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003593 ms)pytorch-cpu0.003593 msjax-cpu0.009557 mstenferro-eager0.004339 ms · 1.21xtenferro-trace0.003778 ms · 1.05x

eigh suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (144.766 ms)jax-cpu124.864 mspytorch-cpu144.766 mstenferro-eager152.526 ms · 1.05xtenferro-trace152.507 ms · 1.05x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2115 ms)pytorch-cpu0.2115 msjax-cpu0.3191 mstenferro-trace0.2229 ms · 1.05x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0895 ms)pytorch-cpu0.0895 msjax-cpu0.2316 mstenferro-eager0.09618 ms · 1.07xtenferro-trace0.09432 ms · 1.05x

qr suite=large / dtype=f64 / threads=8 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1018 ms)jax-cpu0.08045 mspytorch-cpu0.1018 mstenferro-eager0.1076 ms · 1.06xtenferro-trace0.1077 ms · 1.06x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02624 ms)pytorch-cpu0.02624 msjax-cpu0.07346 mstenferro-eager0.02794 ms · 1.06xtenferro-trace0.02775 ms · 1.06x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006442 ms)pytorch-cpu0.006442 msjax-cpu0.01006 mstenferro-eager0.007196 ms · 1.12xtenferro-trace0.006816 ms · 1.06x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01871 ms)pytorch-cpu0.01871 msjax-cpu0.02796 mstenferro-eager0.02 ms · 1.07xtenferro-trace0.01984 ms · 1.06x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04267 ms)pytorch-cpu0.04267 msjax-cpu0.07123 mstenferro-trace0.04531 ms · 1.06x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0265 ms)pytorch-cpu0.0265 msjax-cpu0.04897 mstenferro-eager0.02934 ms · 1.11xtenferro-trace0.02819 ms · 1.06x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02866 ms)pytorch-cpu0.02866 msjax-cpu0.04332 mstenferro-eager0.03134 ms · 1.09xtenferro-trace0.03058 ms · 1.07x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=1 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (177.132 ms)pytorch-cpu177.132 msjax-cpu190.045 mstenferro-trace188.994 ms · 1.07x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1129 ms)jax-cpu0.1037 mspytorch-cpu0.1129 mstenferro-eager0.1211 ms · 1.07xtenferro-trace0.1205 ms · 1.07x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.769 ms)jax-cpu1.551 mspytorch-cpu1.769 mstenferro-eager1.902 ms · 1.08xtenferro-trace1.901 ms · 1.07x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1134 ms)jax-cpu0.1053 mspytorch-cpu0.1134 mstenferro-eager0.122 ms · 1.08xtenferro-trace0.1239 ms · 1.09x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (7.054 ms)jax-cpu6.149 mspytorch-cpu7.054 mstenferro-eager7.630 ms · 1.08xtenferro-trace7.604 ms · 1.08x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4422 ms)jax-cpu0.391 mspytorch-cpu0.4422 mstenferro-eager0.478 ms · 1.08xtenferro-trace0.4767 ms · 1.08x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006565 ms)pytorch-cpu0.006565 msjax-cpu0.009726 mstenferro-eager0.007558 ms · 1.15xtenferro-trace0.007079 ms · 1.08x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06736 ms)pytorch-cpu0.06736 msjax-cpu0.1205 mstenferro-trace0.07267 ms · 1.08x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04295 ms)pytorch-cpu0.04295 msjax-cpu0.1043 mstenferro-eager0.04939 ms · 1.15xtenferro-trace0.04635 ms · 1.08x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01883 ms)pytorch-cpu0.01883 msjax-cpu0.01955 mstenferro-eager0.02072 ms · 1.10xtenferro-trace0.0204 ms · 1.08x

qr suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.0023 ms)pytorch-cpu0.0023 msjax-cpu0.00503 mstenferro-eager0.002708 ms · 1.18xtenferro-trace0.002493 ms · 1.08x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4496 ms)jax-cpu0.3697 mspytorch-cpu0.4496 mstenferro-eager0.488 ms · 1.09xtenferro-trace0.488 ms · 1.09x

svd suite=large / dtype=f64 / threads=8 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.707 ms)pytorch-cpu1.707 msjax-cpu2.011 mstenferro-eager1.855 ms · 1.09xtenferro-trace1.854 ms · 1.09x

svd suite=large / dtype=f64 / threads=4 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.143 ms)pytorch-cpu1.143 msjax-cpu1.288 mstenferro-eager1.242 ms · 1.09xtenferro-trace1.441 ms · 1.26x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.787 ms)jax-cpu0.988 mspytorch-cpu1.787 mstenferro-eager1.944 ms · 1.09xtenferro-trace1.948 ms · 1.09x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1755 ms)jax-cpu0.1737 mspytorch-cpu0.1755 mstenferro-eager0.1918 ms · 1.09xtenferro-trace0.1911 ms · 1.09x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.755 ms)jax-cpu0.6406 mspytorch-cpu2.755 mstenferro-eager3.002 ms · 1.09xtenferro-trace3.006 ms · 1.09x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=8x8xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2126 ms)pytorch-cpu0.2126 msjax-cpu0.3942 mstenferro-eager0.2658 ms · 1.25xtenferro-trace0.2317 ms · 1.09x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.691 ms)jax-cpu0.4909 mspytorch-cpu0.691 mstenferro-eager0.7537 ms · 1.09xtenferro-trace0.7531 ms · 1.09x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.003874 ms)pytorch-cpu0.003874 msjax-cpu0.006178 mstenferro-eager0.004851 ms · 1.25xtenferro-trace0.004225 ms · 1.09x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.981 ms)jax-cpu2.270 mspytorch-cpu10.981 mstenferro-eager12.011 ms · 1.09xtenferro-trace11.994 ms · 1.09x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01883 ms)pytorch-cpu0.01883 msjax-cpu0.02011 mstenferro-eager0.02061 ms · 1.09xtenferro-trace0.02076 ms · 1.10x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.264 ms)pytorch-cpu0.264 msjax-cpu0.6048 mstenferro-trace0.2891 ms · 1.10x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02917 ms)pytorch-cpu0.02917 msjax-cpu0.03152 mstenferro-eager0.0327 ms · 1.12xtenferro-trace0.03209 ms · 1.10x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09846 ms)pytorch-cpu0.09846 msjax-cpu0.1624 mstenferro-eager0.1106 ms · 1.12xtenferro-trace0.1085 ms · 1.10x

matmul suite=small / dtype=f64 / threads=8 / shape=32x32 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.005982 ms)pytorch-cpu0.005982 msjax-cpu0.009119 mstenferro-eager0.007268 ms · 1.21xtenferro-trace0.006598 ms · 1.10x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2472 ms)pytorch-cpu0.2472 msjax-cpu0.4068 mstenferro-eager0.2752 ms · 1.11xtenferro-trace0.2745 ms · 1.11x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03585 ms)jax-cpu0.03512 mspytorch-cpu0.03585 mstenferro-eager0.04037 ms · 1.13xtenferro-trace0.03983 ms · 1.11x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02561 ms)pytorch-cpu0.02561 msjax-cpu0.0378 mstenferro-eager0.02881 ms · 1.12xtenferro-trace0.02846 ms · 1.11x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06337 ms)pytorch-cpu0.06337 msjax-cpu0.09871 mstenferro-eager0.07161 ms · 1.13xtenferro-trace0.07069 ms · 1.12x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.004094 ms)pytorch-cpu0.004094 msjax-cpu0.006152 mstenferro-eager0.005042 ms · 1.23xtenferro-trace0.004576 ms · 1.12x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3775 ms)pytorch-cpu0.3775 msjax-cpu0.6092 mstenferro-eager0.4229 ms · 1.12xtenferro-trace0.4222 ms · 1.12x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008158 ms)pytorch-cpu0.008158 msjax-cpu0.01189 mstenferro-eager0.009379 ms · 1.15xtenferro-trace0.009123 ms · 1.12x

batched_qr suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.09396 ms)pytorch-cpu0.09396 msjax-cpu0.1279 mstenferro-eager0.1059 ms · 1.13xtenferro-trace0.1052 ms · 1.12x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=4 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (60.836 ms)pytorch-cpu60.836 msjax-cpu107.397 mstenferro-trace68.289 ms · 1.12x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03571 ms)pytorch-cpu0.03571 msjax-cpu0.03581 mstenferro-eager0.0402 ms · 1.13xtenferro-trace0.04077 ms · 1.14x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06558 ms)pytorch-cpu0.06558 msjax-cpu0.06767 mstenferro-eager0.07435 ms · 1.13xtenferro-trace0.07408 ms · 1.13x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01208 ms)pytorch-cpu0.01208 msjax-cpu0.01438 mstenferro-eager0.01408 ms · 1.16xtenferro-trace0.01367 ms · 1.13x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (7.045 ms)jax-cpu2.808 mspytorch-cpu7.045 mstenferro-eager7.981 ms · 1.13xtenferro-trace8.011 ms · 1.14x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06593 ms)pytorch-cpu0.06593 msjax-cpu0.07061 mstenferro-eager0.07499 ms · 1.14xtenferro-trace0.07481 ms · 1.13x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05532 ms)pytorch-cpu0.05532 msjax-cpu0.05596 mstenferro-eager0.06393 ms · 1.16xtenferro-trace0.06283 ms · 1.14x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1016 ms)pytorch-cpu0.1016 msjax-cpu0.11 mstenferro-eager0.1162 ms · 1.14xtenferro-trace0.1156 ms · 1.14x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2536 ms)jax-cpu0.2496 mspytorch-cpu0.2536 mstenferro-eager0.2898 ms · 1.14xtenferro-trace0.2892 ms · 1.14x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.558 ms)jax-cpu1.150 mspytorch-cpu1.558 mstenferro-eager1.784 ms · 1.14xtenferro-trace1.794 ms · 1.15x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.002 ms)jax-cpu0.9823 mspytorch-cpu1.002 mstenferro-eager1.150 ms · 1.15xtenferro-trace1.148 ms · 1.15x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (61.875 ms)pytorch-cpu61.875 msjax-cpu127.451 mstenferro-trace70.888 ms · 1.15x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1316 ms)jax-cpu0.1269 mspytorch-cpu0.1316 mstenferro-eager0.1512 ms · 1.15xtenferro-trace0.151 ms · 1.15x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3925 ms)pytorch-cpu0.3925 msjax-cpu0.4237 mstenferro-eager0.4525 ms · 1.15xtenferro-trace0.4507 ms · 1.15x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.004 ms)jax-cpu0.789 mspytorch-cpu1.004 mstenferro-eager1.160 ms · 1.15xtenferro-trace1.159 ms · 1.15x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5168 ms)jax-cpu0.4862 mspytorch-cpu0.5168 mstenferro-eager0.5992 ms · 1.16xtenferro-trace0.5968 ms · 1.15x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.058 ms)jax-cpu1.927 mspytorch-cpu2.058 mstenferro-eager2.384 ms · 1.16xtenferro-trace2.380 ms · 1.16x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.204 ms)pytorch-cpu0.204 msjax-cpu0.2084 mstenferro-eager0.2374 ms · 1.16xtenferro-trace0.2366 ms · 1.16x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1306 ms)pytorch-cpu0.1306 msjax-cpu0.1327 mstenferro-eager0.1515 ms · 1.16xtenferro-trace0.1537 ms · 1.18x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.8018 ms)pytorch-cpu0.8018 msjax-cpu0.8235 mstenferro-eager0.9343 ms · 1.17xtenferro-trace0.9361 ms · 1.17x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5202 ms)pytorch-cpu0.5202 msjax-cpu0.5205 mstenferro-eager0.6063 ms · 1.17xtenferro-trace0.6086 ms · 1.17x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.249 ms)pytorch-cpu0.249 msjax-cpu0.2704 mstenferro-eager0.292 ms · 1.17xtenferro-trace0.2912 ms · 1.17x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.066 ms)jax-cpu1.019 mspytorch-cpu2.066 mstenferro-eager2.421 ms · 1.17xtenferro-trace2.425 ms · 1.17x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (3.187 ms)jax-cpu1.279 mspytorch-cpu3.187 mstenferro-eager3.736 ms · 1.17xtenferro-trace3.740 ms · 1.17x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01801 ms)pytorch-cpu0.01801 msjax-cpu0.02278 mstenferro-eager0.02178 ms · 1.21xtenferro-trace0.02124 ms · 1.18x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05166 ms)pytorch-cpu0.05166 msjax-cpu0.1186 mstenferro-eager0.06923 ms · 1.34xtenferro-trace0.06203 ms · 1.20x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01222 ms)pytorch-cpu0.01222 msjax-cpu0.01989 mstenferro-eager0.01551 ms · 1.27xtenferro-trace0.01468 ms · 1.20x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01166 ms)pytorch-cpu0.01166 msjax-cpu0.01458 mstenferro-eager0.01439 ms · 1.23xtenferro-trace0.01401 ms · 1.20x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1458 ms)pytorch-cpu0.1458 msjax-cpu0.3751 mstenferro-trace0.1753 ms · 1.20x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006161 ms)pytorch-cpu0.006161 msjax-cpu0.006664 mstenferro-eager0.007973 ms · 1.29xtenferro-trace0.007436 ms · 1.21x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.007845 ms)pytorch-cpu0.007845 msjax-cpu0.01182 mstenferro-eager0.00985 ms · 1.26xtenferro-trace0.00956 ms · 1.22x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.006175 ms)pytorch-cpu0.006175 msjax-cpu0.006624 mstenferro-eager0.00788 ms · 1.28xtenferro-trace0.007561 ms · 1.22x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03734 ms)pytorch-cpu0.03734 msjax-cpu0.0423 mstenferro-eager0.04621 ms · 1.24xtenferro-trace0.04583 ms · 1.23x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch16 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.009523 ms)pytorch-cpu0.009523 msjax-cpu0.01051 mstenferro-eager0.01206 ms · 1.27xtenferro-trace0.01171 ms · 1.23x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3584 ms)pytorch-cpu0.3584 msjax-cpu0.8031 mstenferro-trace0.4428 ms · 1.24x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02081 ms)pytorch-cpu0.02081 msjax-cpu0.0527 mstenferro-eager0.03298 ms · 1.59xtenferro-trace0.0257 ms · 1.24x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=4 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.322 ms)pytorch-cpu1.322 msjax-cpu1.580 mstenferro-trace1.637 ms · 1.24x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03562 ms)pytorch-cpu0.03562 msjax-cpu0.05547 mstenferro-eager0.04472 ms · 1.26xtenferro-trace0.04558 ms · 1.28x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1373 ms)pytorch-cpu0.1373 msjax-cpu0.1574 mstenferro-eager0.1751 ms · 1.27xtenferro-trace0.1745 ms · 1.27x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08193 ms)pytorch-cpu0.08193 msjax-cpu0.2646 mstenferro-eager0.1048 ms · 1.28xtenferro-trace0.1044 ms · 1.27x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05518 ms)pytorch-cpu0.05518 msjax-cpu0.06654 mstenferro-eager0.07089 ms · 1.28xtenferro-trace0.07033 ms · 1.27x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03541 ms)pytorch-cpu0.03541 msjax-cpu0.04218 mstenferro-eager0.04518 ms · 1.28xtenferro-trace0.04564 ms · 1.29x

batched_svd suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5364 ms)pytorch-cpu0.5364 msjax-cpu0.594 mstenferro-eager0.6881 ms · 1.28xtenferro-trace0.6894 ms · 1.29x

eigh suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.804 ms)pytorch-cpu1.804 msjax-cpu11.782 mstenferro-eager2.324 ms · 1.29xtenferro-trace2.315 ms · 1.28x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02296 ms)pytorch-cpu0.02296 msjax-cpu0.03551 mstenferro-eager0.0301 ms · 1.31xtenferro-trace0.02957 ms · 1.29x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3436 ms)jax-cpu0.3152 mspytorch-cpu0.3436 mstenferro-trace0.447 ms · 1.30x

qr suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.9353 ms)pytorch-cpu0.9353 msjax-cpu1.320 mstenferro-eager1.219 ms · 1.30xtenferro-trace1.221 ms · 1.31x

eigh suite=large / dtype=f64 / threads=4 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6466 ms)pytorch-cpu0.6466 msjax-cpu1.443 mstenferro-eager1.999 ms · 3.09xtenferro-trace0.846 ms · 1.31x

batched_qr suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08354 ms)pytorch-cpu0.08354 msjax-cpu0.1308 mstenferro-eager0.1099 ms · 1.32xtenferro-trace0.1094 ms · 1.31x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2028 ms)pytorch-cpu0.2028 msjax-cpu0.2532 mstenferro-eager0.2666 ms · 1.31xtenferro-trace0.266 ms · 1.31x

batched_qr suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1251 ms)pytorch-cpu0.1251 msjax-cpu0.2106 mstenferro-eager0.165 ms · 1.32xtenferro-trace0.1687 ms · 1.35x

batched_svd suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7939 ms)pytorch-cpu0.7939 msjax-cpu0.9986 mstenferro-eager1.050 ms · 1.32xtenferro-trace1.048 ms · 1.32x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04487 ms)pytorch-cpu0.04487 msjax-cpu0.1322 mstenferro-eager0.06068 ms · 1.35xtenferro-trace0.05956 ms · 1.33x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1375 ms)pytorch-cpu0.1375 msjax-cpu0.4206 mstenferro-trace0.1827 ms · 1.33x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.984 ms)pytorch-cpu1.984 msjax-cpu2.241 mstenferro-trace2.643 ms · 1.33x

grad_sum_matmul suite=large / dtype=f64 / threads=8 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01681 ms)pytorch-cpu0.01681 msjax-cpu0.02852 mstenferro-eager0.02241 ms · 1.33xtenferro-trace0.06644 ms · 3.95x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1287 ms)pytorch-cpu0.1287 msjax-cpu0.1756 mstenferro-eager0.1731 ms · 1.34xtenferro-trace0.1729 ms · 1.34x

grad_sum_matmul suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2731 ms)pytorch-cpu0.2731 msjax-cpu0.3676 mstenferro-eager0.6323 ms · 2.31xtenferro-trace0.3711 ms · 1.36x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02925 ms)pytorch-cpu0.02925 msjax-cpu0.1055 mstenferro-eager0.04725 ms · 1.62xtenferro-trace0.03982 ms · 1.36x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch64 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05245 ms)pytorch-cpu0.05245 msjax-cpu0.1432 mstenferro-eager0.07654 ms · 1.46xtenferro-trace0.07183 ms · 1.37x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02408 ms)jax-cpu0.02079 mspytorch-cpu0.02408 mstenferro-eager0.03398 ms · 1.41xtenferro-trace0.03307 ms · 1.37x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2085 ms)pytorch-cpu0.2085 msjax-cpu0.6704 mstenferro-trace0.2867 ms · 1.37x

batched_svd suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5108 ms)pytorch-cpu0.5108 msjax-cpu0.7117 mstenferro-eager0.7044 ms · 1.38xtenferro-trace0.7083 ms · 1.39x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.019 ms)pytorch-cpu0.019 msjax-cpu0.05235 mstenferro-eager0.03185 ms · 1.68xtenferro-trace0.02625 ms · 1.38x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01595 ms)pytorch-cpu0.01595 msjax-cpu0.03803 mstenferro-eager0.02535 ms · 1.59xtenferro-trace0.02226 ms · 1.40x

matmul suite=small / dtype=f64 / threads=8 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.002952 ms)pytorch-cpu0.002952 msjax-cpu0.007626 mstenferro-eager0.004599 ms · 1.56xtenferro-trace0.004126 ms · 1.40x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=8 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.858 ms)pytorch-cpu1.858 msjax-cpu2.509 mstenferro-trace2.603 ms · 1.40x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.608 ms)pytorch-cpu2.608 msjax-cpu3.972 mstenferro-trace3.673 ms · 1.41x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01531 ms)jax-cpu0.01363 mspytorch-cpu0.01531 mstenferro-eager0.02159 ms · 1.41xtenferro-trace0.02159 ms · 1.41x

qr suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.967 ms)pytorch-cpu5.967 msjax-cpu10.365 mstenferro-eager8.951 ms · 1.50xtenferro-trace8.447 ms · 1.42x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch64 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01531 ms)pytorch-cpu0.01531 msjax-cpu0.01716 mstenferro-eager0.02191 ms · 1.43xtenferro-trace0.02175 ms · 1.42x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06705 ms)pytorch-cpu0.06705 msjax-cpu0.1779 mstenferro-eager0.1068 ms · 1.59xtenferro-trace0.09556 ms · 1.43x

matmul suite=small / dtype=f64 / threads=4 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.001747 ms)pytorch-cpu0.001747 msjax-cpu0.004713 mstenferro-eager0.002956 ms · 1.69xtenferro-trace0.002507 ms · 1.44x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.12 ms)pytorch-cpu0.12 msjax-cpu0.4518 mstenferro-eager0.1849 ms · 1.54xtenferro-trace0.1734 ms · 1.45x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (42.266 ms)pytorch-cpu42.266 msjax-cpu64.028 mstenferro-trace61.152 ms · 1.45x

matmul suite=small / dtype=f64 / threads=1 / shape=16x16 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.001669 ms)pytorch-cpu0.001669 msjax-cpu0.00911 mstenferro-eager0.002787 ms · 1.67xtenferro-trace0.002423 ms · 1.45x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.129 ms)pytorch-cpu0.129 msjax-cpu0.3348 mstenferro-trace0.1879 ms · 1.46x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02864 ms)pytorch-cpu0.02864 msjax-cpu0.08755 mstenferro-eager0.04972 ms · 1.74xtenferro-trace0.04177 ms · 1.46x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.149 ms)pytorch-cpu1.149 msjax-cpu3.253 mstenferro-trace1.678 ms · 1.46x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.7577 ms)pytorch-cpu0.7577 msjax-cpu2.579 mstenferro-trace1.109 ms · 1.46x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01474 ms)pytorch-cpu0.01474 msjax-cpu0.03855 mstenferro-eager0.02687 ms · 1.82xtenferro-trace0.02176 ms · 1.48x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08032 ms)jax-cpu0.07008 mspytorch-cpu0.08032 mstenferro-eager0.1205 ms · 1.50xtenferro-trace0.1195 ms · 1.49x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (40.990 ms)pytorch-cpu40.990 msjax-cpu67.046 mstenferro-trace61.142 ms · 1.49x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3516 ms)pytorch-cpu0.3516 msjax-cpu0.8571 mstenferro-trace0.5252 ms · 1.49x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05183 ms)jax-cpu0.04612 mspytorch-cpu0.05183 mstenferro-eager0.07765 ms · 1.50xtenferro-trace0.07767 ms · 1.50x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.180 ms)jax-cpu8.984 mspytorch-cpu10.180 mstenferro-trace15.299 ms · 1.50x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5316 ms)pytorch-cpu0.5316 msjax-cpu1.370 mstenferro-trace0.8014 ms · 1.51x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=8 / shape=512x512,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.411 ms)pytorch-cpu1.411 msjax-cpu2.285 mstenferro-trace2.128 ms · 1.51x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=4x4xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.06071 ms)pytorch-cpu0.06071 msjax-cpu0.1877 mstenferro-eager0.1224 ms · 2.02xtenferro-trace0.09171 ms · 1.51x

batched_eigh suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.305 ms)jax-cpu0.2686 mspytorch-cpu0.305 mstenferro-eager0.4644 ms · 1.52xtenferro-trace0.4657 ms · 1.53x

batched_eigh suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.197 ms)jax-cpu0.1766 mspytorch-cpu0.197 mstenferro-eager0.3015 ms · 1.53xtenferro-trace0.3016 ms · 1.53x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (52.381 ms)pytorch-cpu52.381 msjax-cpu87.642 mstenferro-trace80.207 ms · 1.53x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=4 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2954 ms)pytorch-cpu0.2954 msjax-cpu0.2981 mstenferro-trace0.4533 ms · 1.53x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05108 ms)jax-cpu0.04611 mspytorch-cpu0.05108 mstenferro-eager0.0789 ms · 1.54xtenferro-trace0.07869 ms · 1.54x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (13.993 ms)pytorch-cpu13.993 msjax-cpu28.212 mstenferro-trace21.594 ms · 1.54x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01373 ms)pytorch-cpu0.01373 msjax-cpu0.09201 mstenferro-eager0.02155 ms · 1.57xtenferro-trace0.02193 ms · 1.60x

qr suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.183 ms)pytorch-cpu1.183 msjax-cpu2.058 mstenferro-eager1.860 ms · 1.57xtenferro-trace2.473 ms · 2.09x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00867 ms)pytorch-cpu0.00867 msjax-cpu0.06162 mstenferro-eager0.01365 ms · 1.57xtenferro-trace0.0139 ms · 1.60x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=4 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (5.662 ms)pytorch-cpu5.662 msjax-cpu9.059 mstenferro-trace8.963 ms · 1.58x

batched_eigh suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1931 ms)jax-cpu0.1646 mspytorch-cpu0.1931 mstenferro-eager0.3063 ms · 1.59xtenferro-trace0.306 ms · 1.59x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02325 ms)pytorch-cpu0.02325 msjax-cpu0.0607 mstenferro-eager0.04089 ms · 1.76xtenferro-trace0.03699 ms · 1.59x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1805 ms)pytorch-cpu0.1805 msjax-cpu0.5205 mstenferro-trace0.288 ms · 1.59x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02662 ms)pytorch-cpu0.02662 msjax-cpu0.1058 mstenferro-eager0.04408 ms · 1.66xtenferro-trace0.0426 ms · 1.60x

grad_sum_svd_s_jvp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (9.340 ms)pytorch-cpu9.340 msjax-cpu12.494 mstenferro-trace14.975 ms · 1.60x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.620 ms)pytorch-cpu8.620 msjax-cpu16.255 mstenferro-trace13.830 ms · 1.60x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08793 ms)pytorch-cpu0.08793 msjax-cpu0.262 mstenferro-trace0.1427 ms · 1.62x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.008632 ms)pytorch-cpu0.008632 msjax-cpu0.0586 mstenferro-eager0.01406 ms · 1.63xtenferro-trace0.01429 ms · 1.66x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (88.704 ms)pytorch-cpu88.704 msjax-cpu131.017 mstenferro-trace145.846 ms · 1.64x

qr suite=large / dtype=f64 / threads=4 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2066 ms)pytorch-cpu0.2066 msjax-cpu0.3337 mstenferro-eager0.3411 ms · 1.65xtenferro-trace0.6466 ms · 3.13x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05538 ms)pytorch-cpu0.05538 msjax-cpu0.1826 mstenferro-eager0.09303 ms · 1.68xtenferro-trace0.09178 ms · 1.66x

grad_sum_svd_s_backward suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (6.443 ms)pytorch-cpu6.443 msjax-cpu7.391 mstenferro-trace10.733 ms · 1.67x

matmul suite=small / dtype=f64 / threads=4 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.001249 ms)pytorch-cpu0.001249 msjax-cpu0.005261 mstenferro-eager0.002137 ms · 1.71xtenferro-trace0.002204 ms · 1.76x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=4x4xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05512 ms)pytorch-cpu0.05512 msjax-cpu0.2114 mstenferro-eager0.1162 ms · 2.11xtenferro-trace0.09502 ms · 1.72x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.08187 ms)pytorch-cpu0.08187 msjax-cpu0.3045 mstenferro-trace0.1429 ms · 1.74x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.6966 ms)jax-cpu0.656 mspytorch-cpu0.6966 mstenferro-trace1.225 ms · 1.76x

matmul suite=small / dtype=f64 / threads=8 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.002017 ms)pytorch-cpu0.002017 msjax-cpu0.007287 mstenferro-eager0.003669 ms · 1.82xtenferro-trace0.003571 ms · 1.77x

matmul suite=small / dtype=f64 / threads=1 / shape=8x8 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00119 ms)pytorch-cpu0.00119 msjax-cpu0.007954 mstenferro-eager0.002517 ms · 2.12xtenferro-trace0.002108 ms · 1.77x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=8x8xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1341 ms)pytorch-cpu0.1341 msjax-cpu0.561 mstenferro-eager0.2655 ms · 1.98xtenferro-trace0.2385 ms · 1.78x

grad_sum_lu_jvp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.229 ms)pytorch-cpu2.229 msjax-cpu2.356 mstenferro-trace3.988 ms · 1.79x

grad_sum_svd_s_vjp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (8.582 ms)pytorch-cpu8.582 msjax-cpu11.971 mstenferro-trace15.362 ms · 1.79x

grad_sum_batched_solve_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1279 ms)pytorch-cpu0.1279 msjax-cpu0.4521 mstenferro-trace0.2332 ms · 1.82x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1959 ms)pytorch-cpu0.1959 msjax-cpu0.7523 mstenferro-eager0.4027 ms · 2.05xtenferro-trace0.3581 ms · 1.83x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.142 ms)pytorch-cpu0.142 msjax-cpu0.4497 mstenferro-eager0.2798 ms · 1.97xtenferro-trace0.2602 ms · 1.83x

batched_solve suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.04142 ms)pytorch-cpu0.04142 msjax-cpu0.129 mstenferro-eager0.09118 ms · 2.20xtenferro-trace0.07789 ms · 1.88x

matmul suite=small / dtype=f64 / threads=1 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.001082 ms)pytorch-cpu0.001082 msjax-cpu0.004423 mstenferro-eager0.002274 ms · 2.10xtenferro-trace0.002053 ms · 1.90x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.9209 ms)jax-cpu0.3476 mspytorch-cpu0.9209 mstenferro-trace1.771 ms · 1.92x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=16x16xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.3483 ms)pytorch-cpu0.3483 msjax-cpu1.469 mstenferro-eager0.7274 ms · 2.09xtenferro-trace0.6743 ms · 1.94x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.1186 ms)jax-cpu0.02174 mspytorch-cpu0.1186 mstenferro-trace0.2318 ms · 1.95x

matmul suite=small / dtype=f64 / threads=8 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.001718 ms)pytorch-cpu0.001718 msjax-cpu0.006655 mstenferro-eager0.003384 ms · 1.97xtenferro-trace0.003474 ms · 2.02x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07466 ms)jax-cpu0.02069 mspytorch-cpu0.07466 mstenferro-trace0.1479 ms · 1.98x

matmul suite=small / dtype=f64 / threads=8 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.001627 ms)pytorch-cpu0.001627 msjax-cpu0.006315 mstenferro-eager0.003231 ms · 1.99xtenferro-trace0.003476 ms · 2.14x

matmul suite=small / dtype=f64 / threads=4 / shape=4x4 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00109 ms)pytorch-cpu0.00109 msjax-cpu0.004951 mstenferro-eager0.002404 ms · 2.21xtenferro-trace0.002173 ms · 1.99x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch256 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07446 ms)pytorch-cpu0.07446 msjax-cpu0.2824 mstenferro-eager0.1701 ms · 2.28xtenferro-trace0.149 ms · 2.00x

matmul suite=small / dtype=f64 / threads=1 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.001012 ms)pytorch-cpu0.001012 msjax-cpu0.004424 mstenferro-eager0.002096 ms · 2.07xtenferro-trace0.002035 ms · 2.01x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5585 ms)pytorch-cpu0.5585 msjax-cpu0.6053 mstenferro-trace1.126 ms · 2.02x

grad_sum_batched_matmul_backward suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07521 ms)jax-cpu0.01789 mspytorch-cpu0.07521 mstenferro-trace0.1525 ms · 2.03x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=4x4xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07573 ms)pytorch-cpu0.07573 msjax-cpu0.3303 mstenferro-eager0.1815 ms · 2.40xtenferro-trace0.1537 ms · 2.03x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.4953 ms)pytorch-cpu0.4953 msjax-cpu1.662 mstenferro-eager1.093 ms · 2.21xtenferro-trace1.009 ms · 2.04x

qr suite=large / dtype=f64 / threads=8 / shape=128x128 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.28 ms)pytorch-cpu0.28 msjax-cpu0.5313 mstenferro-eager0.5869 ms · 2.10xtenferro-trace0.5734 ms · 2.05x

matmul suite=small / dtype=f64 / threads=4 / shape=2x2 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.00106 ms)pytorch-cpu0.00106 msjax-cpu0.004532 mstenferro-eager0.002273 ms · 2.14xtenferro-trace0.002181 ms · 2.06x

batched_solve suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.03501 ms)pytorch-cpu0.03501 msjax-cpu0.1327 mstenferro-eager0.0967 ms · 2.76xtenferro-trace0.0751 ms · 2.15x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (11.916 ms)pytorch-cpu11.916 msjax-cpu27.349 mstenferro-trace26.142 ms · 2.19x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=4 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (14.159 ms)pytorch-cpu14.159 msjax-cpu21.770 mstenferro-trace31.235 ms · 2.21x

svd suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (33.397 ms)pytorch-cpu33.397 msjax-cpu53.530 mstenferro-eager74.729 ms · 2.24xtenferro-trace75.925 ms · 2.27x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=8 / shape=1024x1024 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (72.048 ms)pytorch-cpu72.048 msjax-cpu126.977 mstenferro-trace162.127 ms · 2.25x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=8x8xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.07107 ms)pytorch-cpu0.07107 msjax-cpu0.3644 mstenferro-eager0.1613 ms · 2.27xtenferro-trace0.1603 ms · 2.26x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.082 ms)pytorch-cpu1.082 msjax-cpu1.845 mstenferro-trace2.527 ms · 2.33x

matmul suite=small / dtype=f64 / threads=8 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01761 ms)pytorch-cpu0.01761 msjax-cpu0.02798 mstenferro-eager0.06617 ms · 3.76xtenferro-trace0.0423 ms · 2.40x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=16x16xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.2355 ms)pytorch-cpu0.2355 msjax-cpu1.382 mstenferro-eager0.5889 ms · 2.50xtenferro-trace0.6072 ms · 2.58x

batched_solve suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout),rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05113 ms)pytorch-cpu0.05113 msjax-cpu0.2298 mstenferro-eager0.1467 ms · 2.87xtenferro-trace0.1292 ms · 2.53x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.055 ms)pytorch-cpu2.055 msjax-cpu4.185 mstenferro-trace5.192 ms · 2.53x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=8 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.02708 ms)pytorch-cpu0.02708 msjax-cpu0.09528 mstenferro-eager0.07645 ms · 2.82xtenferro-trace0.07708 ms · 2.85x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=1 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01703 ms)pytorch-cpu0.01703 msjax-cpu0.06583 mstenferro-eager0.0493 ms · 2.89xtenferro-trace0.04929 ms · 2.89x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (13.546 ms)pytorch-cpu13.546 msjax-cpu33.056 mstenferro-trace39.714 ms · 2.93x

batched_matmul_ikb_kjb_ijb suite=batched / dtype=f64 / threads=4 / shape=2x2xbatch1024 (native batch layout) · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.01722 ms)pytorch-cpu0.01722 msjax-cpu0.05882 mstenferro-eager0.05214 ms · 3.03xtenferro-trace0.0522 ms · 3.03x

grad_sum_solve_vjp suite=large / dtype=f64 / threads=8 / shape=256x256,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.5535 ms)jax-cpu0.3543 mspytorch-cpu0.5535 mstenferro-trace1.767 ms · 3.19x

grad_sum_matmul_backward suite=large / dtype=f64 / threads=8 / shape=64x64 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.05659 ms)jax-cpu0.05581 mspytorch-cpu0.05659 mstenferro-trace0.1972 ms · 3.48x

grad_sum_matmul suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (0.219 ms)pytorch-cpu0.219 msjax-cpu0.3078 mstenferro-eager0.8902 ms · 4.07xtenferro-trace0.806 ms · 3.68x

grad_sum_lu_vjp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.352 ms)pytorch-cpu1.352 msjax-cpu3.727 mstenferro-trace5.358 ms · 3.96x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.668 ms)pytorch-cpu1.668 msjax-cpu3.324 mstenferro-trace7.221 ms · 4.33x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (1.795 ms)pytorch-cpu1.795 msjax-cpu3.417 mstenferro-trace8.337 ms · 4.64x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=4 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.371 ms)pytorch-cpu2.371 msjax-cpu4.329 mstenferro-trace11.288 ms · 4.76x

grad_sum_solve_jvp suite=large / dtype=f64 / threads=8 / shape=1024x1024,rhs=1 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (6.222 ms)pytorch-cpu6.222 msjax-cpu9.895 mstenferro-trace32.936 ms · 5.29x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=8 / shape=512x512 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (10.593 ms)pytorch-cpu10.593 msjax-cpu30.960 mstenferro-trace56.452 ms · 5.33x

grad_sum_qr_vjp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.294 ms)pytorch-cpu2.294 msjax-cpu6.924 mstenferro-trace12.632 ms · 5.51x

grad_sum_qr_jvp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.129 ms)pytorch-cpu2.129 msjax-cpu6.683 mstenferro-trace11.764 ms · 5.53x

grad_sum_eigh_jvp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.969 ms)pytorch-cpu2.969 msjax-cpu7.389 mstenferro-trace23.445 ms · 7.90x

grad_sum_eigh_vjp suite=large / dtype=f64 / threads=8 / shape=256x256 · n=7

bar = median time (log scale) · shorter (left) is faster · dashed line = PyTorch (2.624 ms)pytorch-cpu2.624 msjax-cpu7.439 mstenferro-trace23.683 ms · 9.02x

Original report

CPU Benchmark Results

Generated from the explicit runs below; each section retains its own provenance and thread settings.

Threads: 1

Source report: data/results/zen5-cpu/cpu/einsum/20261027_231715/cpu_ops_report.md.

Latest run: ./scripts/run_all.sh 1.

This file is generated from one CPU ops run under data/results/zen5-cpu/cpu/einsum/20261027_231715.

CPU Information

Thread Environment

Tenferro CPU BLAS Backend

Python Backend Providers

CPU Benchmark Items

Small rows use time/memory-bounded batches, normalized per operation. Tenferro eager/trace share a CPU execution scope outside timing. Eager primal rows reuse a borrowed session entered before sampling; eager backward rows without a borrowed-session API are unsupported. Raw JSONL records contain batch durations and operation counts.

Median ± IQR (ms). Missing backends are shown as -.

suite benchmark dtype threads shape tenferro-rs direct API (ms) tenferro-rs eager mode (ms) tenferro-rs trace mode (ms) PyTorch Python (ms) JAX Python (XLA CPU) (ms) Julia (Base/LinearAlgebra) (ms) Julia (Strided.jl) (ms)
batched batched_eigh f64 1 16x16xbatch1024 (native batch layout) - 9.863 ± 0.018 9.855 ± 0.005 10.465 ± 0.031 13.071 ± 0.117 - -
batched batched_eigh f64 1 16x16xbatch16 (native batch layout) - 0.149 ± 0.000 0.149 ± 0.000 0.158 ± 0.000 0.211 ± 0.002 - -
batched batched_eigh f64 1 16x16xbatch256 (native batch layout) - 2.456 ± 0.002 2.454 ± 0.005 2.632 ± 0.009 3.291 ± 0.015 - -
batched batched_eigh f64 1 16x16xbatch64 (native batch layout) - 0.602 ± 0.000 0.604 ± 0.001 0.645 ± 0.002 0.830 ± 0.006 - -
batched batched_eigh f64 1 2x2xbatch1024 (native batch layout) - 0.306 ± 0.000 0.306 ± 0.001 0.193 ± 0.000 0.165 ± 0.001 - -
batched batched_eigh f64 1 2x2xbatch16 (native batch layout) - 0.008 ± 0.000 0.007 ± 0.000 0.006 ± 0.000 0.007 ± 0.000 - -
batched batched_eigh f64 1 2x2xbatch256 (native batch layout) - 0.079 ± 0.000 0.079 ± 0.000 0.051 ± 0.000 0.046 ± 0.000 - -
batched batched_eigh f64 1 2x2xbatch64 (native batch layout) - 0.022 ± 0.000 0.022 ± 0.000 0.015 ± 0.000 0.017 ± 0.000 - -
batched batched_eigh f64 1 4x4xbatch1024 (native batch layout) - 1.150 ± 0.001 1.148 ± 0.002 1.002 ± 0.001 0.982 ± 0.002 - -
batched batched_eigh f64 1 4x4xbatch16 (native batch layout) - 0.021 ± 0.000 0.020 ± 0.000 0.019 ± 0.000 0.020 ± 0.000 - -
batched batched_eigh f64 1 4x4xbatch256 (native batch layout) - 0.290 ± 0.000 0.289 ± 0.000 0.254 ± 0.000 0.250 ± 0.002 - -
batched batched_eigh f64 1 4x4xbatch64 (native batch layout) - 0.074 ± 0.000 0.074 ± 0.000 0.066 ± 0.000 0.068 ± 0.001 - -
batched batched_eigh f64 1 8x8xbatch1024 (native batch layout) - 3.068 ± 0.005 3.067 ± 0.001 3.039 ± 0.007 3.388 ± 0.007 - -
batched batched_eigh f64 1 8x8xbatch16 (native batch layout) - 0.050 ± 0.000 0.050 ± 0.000 0.050 ± 0.000 0.060 ± 0.000 - -
batched batched_eigh f64 1 8x8xbatch256 (native batch layout) - 0.768 ± 0.001 0.768 ± 0.002 0.762 ± 0.001 0.854 ± 0.004 - -
batched batched_eigh f64 1 8x8xbatch64 (native batch layout) - 0.194 ± 0.000 0.193 ± 0.000 0.193 ± 0.000 0.217 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 16x16xbatch1024 (native batch layout) - 0.367 ± 0.004 0.364 ± 0.002 0.517 ± 0.016 0.657 ± 0.013 - -
batched batched_matmul_ikb_kjb_ijb f64 1 16x16xbatch16 (native batch layout) - 0.008 ± 0.000 0.008 ± 0.000 0.013 ± 0.000 0.068 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 16x16xbatch256 (native batch layout) - 0.094 ± 0.001 0.093 ± 0.001 0.125 ± 0.004 0.188 ± 0.003 - -
batched batched_matmul_ikb_kjb_ijb f64 1 16x16xbatch64 (native batch layout) - 0.026 ± 0.000 0.025 ± 0.000 0.033 ± 0.001 0.091 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 2x2xbatch1024 (native batch layout) - 0.049 ± 0.000 0.049 ± 0.000 0.017 ± 0.000 0.066 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 2x2xbatch16 (native batch layout) - 0.003 ± 0.000 0.003 ± 0.000 0.006 ± 0.000 0.054 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 2x2xbatch256 (native batch layout) - 0.014 ± 0.000 0.014 ± 0.000 0.009 ± 0.000 0.062 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 2x2xbatch64 (native batch layout) - 0.005 ± 0.000 0.005 ± 0.000 0.006 ± 0.000 0.061 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 1 4x4xbatch1024 (native batch layout) - 0.059 ± 0.001 0.058 ± 0.000 0.064 ± 0.001 0.079 ± 0.002 - -
batched batched_matmul_ikb_kjb_ijb f64 1 4x4xbatch16 (native batch layout) - 0.003 ± 0.000 0.003 ± 0.000 0.007 ± 0.000 0.060 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 4x4xbatch256 (native batch layout) - 0.016 ± 0.000 0.016 ± 0.000 0.021 ± 0.000 0.065 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 4x4xbatch64 (native batch layout) - 0.005 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 0.062 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 1 8x8xbatch1024 (native batch layout) - 0.102 ± 0.001 0.102 ± 0.001 0.102 ± 0.001 0.149 ± 0.007 - -
batched batched_matmul_ikb_kjb_ijb f64 1 8x8xbatch16 (native batch layout) - 0.004 ± 0.000 0.004 ± 0.000 0.008 ± 0.000 0.062 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 8x8xbatch256 (native batch layout) - 0.027 ± 0.001 0.027 ± 0.000 0.030 ± 0.000 0.082 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 1 8x8xbatch64 (native batch layout) - 0.008 ± 0.000 0.008 ± 0.000 0.012 ± 0.000 0.067 ± 0.001 - -
batched batched_qr f64 1 16x16xbatch1024 (native batch layout) - 2.070 ± 0.002 2.071 ± 0.007 2.283 ± 0.011 3.309 ± 0.035 - -
batched batched_qr f64 1 16x16xbatch16 (native batch layout) - 0.036 ± 0.000 0.034 ± 0.000 0.039 ± 0.000 0.058 ± 0.001 - -
batched batched_qr f64 1 16x16xbatch256 (native batch layout) - 0.526 ± 0.002 0.518 ± 0.005 0.587 ± 0.005 0.823 ± 0.013 - -
batched batched_qr f64 1 16x16xbatch64 (native batch layout) - 0.134 ± 0.000 0.130 ± 0.001 0.150 ± 0.001 0.210 ± 0.003 - -
batched batched_qr f64 1 2x2xbatch1024 (native batch layout) - 0.106 ± 0.000 0.105 ± 0.000 0.094 ± 0.000 0.128 ± 0.001 - -
batched batched_qr f64 1 2x2xbatch16 (native batch layout) - 0.005 ± 0.000 0.004 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 - -
batched batched_qr f64 1 2x2xbatch256 (native batch layout) - 0.029 ± 0.000 0.028 ± 0.000 0.026 ± 0.000 0.038 ± 0.000 - -
batched batched_qr f64 1 2x2xbatch64 (native batch layout) - 0.009 ± 0.000 0.009 ± 0.000 0.008 ± 0.000 0.012 ± 0.000 - -
batched batched_qr f64 1 4x4xbatch1024 (native batch layout) - 0.268 ± 0.001 0.265 ± 0.000 0.259 ± 0.001 0.367 ± 0.002 - -
batched batched_qr f64 1 4x4xbatch16 (native batch layout) - 0.007 ± 0.000 0.007 ± 0.000 0.006 ± 0.000 0.010 ± 0.000 - -
batched batched_qr f64 1 4x4xbatch256 (native batch layout) - 0.069 ± 0.000 0.069 ± 0.000 0.067 ± 0.000 0.097 ± 0.001 - -
batched batched_qr f64 1 4x4xbatch64 (native batch layout) - 0.019 ± 0.000 0.019 ± 0.000 0.019 ± 0.000 0.030 ± 0.000 - -
batched batched_qr f64 1 8x8xbatch1024 (native batch layout) - 0.669 ± 0.002 0.664 ± 0.000 0.672 ± 0.002 1.057 ± 0.005 - -
batched batched_qr f64 1 8x8xbatch16 (native batch layout) - 0.014 ± 0.000 0.013 ± 0.000 0.013 ± 0.000 0.024 ± 0.001 - -
batched batched_qr f64 1 8x8xbatch256 (native batch layout) - 0.171 ± 0.000 0.167 ± 0.000 0.170 ± 0.001 0.269 ± 0.001 - -
batched batched_qr f64 1 8x8xbatch64 (native batch layout) - 0.045 ± 0.000 0.044 ± 0.000 0.045 ± 0.000 0.073 ± 0.001 - -
batched batched_solve f64 1 16x16xbatch1024 (native batch layout),rhs=1 - 0.661 ± 0.003 0.691 ± 0.002 0.728 ± 0.009 1.190 ± 0.025 - -
batched batched_solve f64 1 16x16xbatch16 (native batch layout),rhs=1 - 0.014 ± 0.000 0.014 ± 0.000 0.019 ± 0.000 0.028 ± 0.001 - -
batched batched_solve f64 1 16x16xbatch256 (native batch layout),rhs=1 - 0.166 ± 0.000 0.172 ± 0.001 0.187 ± 0.001 0.285 ± 0.003 - -
batched batched_solve f64 1 16x16xbatch64 (native batch layout),rhs=1 - 0.044 ± 0.000 0.044 ± 0.000 0.053 ± 0.001 0.079 ± 0.004 - -
batched batched_solve f64 1 2x2xbatch1024 (native batch layout),rhs=1 - 0.091 ± 0.000 0.078 ± 0.000 0.041 ± 0.000 0.129 ± 0.001 - -
batched batched_solve f64 1 2x2xbatch16 (native batch layout),rhs=1 - 0.005 ± 0.000 0.005 ± 0.000 0.008 ± 0.000 0.006 ± 0.000 - -
batched batched_solve f64 1 2x2xbatch256 (native batch layout),rhs=1 - 0.025 ± 0.000 0.022 ± 0.000 0.016 ± 0.000 0.038 ± 0.000 - -
batched batched_solve f64 1 2x2xbatch64 (native batch layout),rhs=1 - 0.009 ± 0.000 0.008 ± 0.000 0.010 ± 0.000 0.015 ± 0.000 - -
batched batched_solve f64 1 4x4xbatch1024 (native batch layout),rhs=1 - 0.122 ± 0.000 0.092 ± 0.000 0.061 ± 0.001 0.188 ± 0.001 - -
batched batched_solve f64 1 4x4xbatch16 (native batch layout),rhs=1 - 0.005 ± 0.000 0.005 ± 0.000 0.008 ± 0.000 0.008 ± 0.000 - -
batched batched_solve f64 1 4x4xbatch256 (native batch layout),rhs=1 - 0.033 ± 0.000 0.026 ± 0.000 0.021 ± 0.000 0.053 ± 0.000 - -
batched batched_solve f64 1 4x4xbatch64 (native batch layout),rhs=1 - 0.011 ± 0.000 0.009 ± 0.000 0.011 ± 0.000 0.020 ± 0.001 - -
batched batched_solve f64 1 8x8xbatch1024 (native batch layout),rhs=1 - 0.266 ± 0.001 0.232 ± 0.001 0.213 ± 0.003 0.394 ± 0.006 - -
batched batched_solve f64 1 8x8xbatch16 (native batch layout),rhs=1 - 0.007 ± 0.000 0.007 ± 0.000 0.011 ± 0.000 0.014 ± 0.000 - -
batched batched_solve f64 1 8x8xbatch256 (native batch layout),rhs=1 - 0.068 ± 0.000 0.059 ± 0.000 0.058 ± 0.000 0.104 ± 0.004 - -
batched batched_solve f64 1 8x8xbatch64 (native batch layout),rhs=1 - 0.020 ± 0.000 0.018 ± 0.000 0.020 ± 0.000 0.033 ± 0.001 - -
batched batched_svd f64 1 16x16xbatch1024 (native batch layout) - 21.182 ± 0.018 21.220 ± 0.035 22.983 ± 0.039 22.971 ± 0.085 - -
batched batched_svd f64 1 16x16xbatch16 (native batch layout) - 0.327 ± 0.001 0.327 ± 0.001 0.355 ± 0.001 0.370 ± 0.003 - -
batched batched_svd f64 1 16x16xbatch256 (native batch layout) - 5.303 ± 0.029 5.308 ± 0.004 5.798 ± 0.016 5.798 ± 0.030 - -
batched batched_svd f64 1 16x16xbatch64 (native batch layout) - 1.321 ± 0.001 1.324 ± 0.004 1.444 ± 0.003 1.454 ± 0.008 - -
batched batched_svd f64 1 2x2xbatch1024 (native batch layout) - 0.688 ± 0.004 0.689 ± 0.002 0.536 ± 0.002 0.594 ± 0.007 - -
batched batched_svd f64 1 2x2xbatch16 (native batch layout) - 0.014 ± 0.000 0.014 ± 0.000 0.012 ± 0.000 0.014 ± 0.000 - -
batched batched_svd f64 1 2x2xbatch256 (native batch layout) - 0.175 ± 0.001 0.174 ± 0.001 0.137 ± 0.000 0.157 ± 0.002 - -
batched batched_svd f64 1 2x2xbatch64 (native batch layout) - 0.046 ± 0.000 0.046 ± 0.000 0.037 ± 0.000 0.042 ± 0.000 - -
batched batched_svd f64 1 4x4xbatch1024 (native batch layout) - 2.384 ± 0.004 2.380 ± 0.003 2.058 ± 0.004 1.927 ± 0.016 - -
batched batched_svd f64 1 4x4xbatch16 (native batch layout) - 0.040 ± 0.000 0.040 ± 0.000 0.036 ± 0.000 0.035 ± 0.000 - -
batched batched_svd f64 1 4x4xbatch256 (native batch layout) - 0.599 ± 0.002 0.597 ± 0.001 0.517 ± 0.001 0.486 ± 0.002 - -
batched batched_svd f64 1 4x4xbatch64 (native batch layout) - 0.151 ± 0.000 0.151 ± 0.000 0.132 ± 0.000 0.127 ± 0.001 - -
batched batched_svd f64 1 8x8xbatch1024 (native batch layout) - 7.630 ± 0.013 7.604 ± 0.005 7.054 ± 0.022 6.149 ± 0.012 - -
batched batched_svd f64 1 8x8xbatch16 (native batch layout) - 0.121 ± 0.000 0.120 ± 0.000 0.113 ± 0.000 0.104 ± 0.001 - -
batched batched_svd f64 1 8x8xbatch256 (native batch layout) - 1.902 ± 0.006 1.901 ± 0.003 1.769 ± 0.004 1.551 ± 0.006 - -
batched batched_svd f64 1 8x8xbatch64 (native batch layout) - 0.478 ± 0.001 0.477 ± 0.000 0.442 ± 0.001 0.391 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 1 16x16xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.262 ± 0.004 4.205 ± 0.059 1.545 ± 0.016 - -
batched grad_sum_batched_matmul_backward f64 1 16x16xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.025 ± 0.000 0.105 ± 0.002 0.030 ± 0.003 - -
batched grad_sum_batched_matmul_backward f64 1 16x16xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.312 ± 0.002 1.100 ± 0.021 0.331 ± 0.004 - -
batched grad_sum_batched_matmul_backward f64 1 16x16xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.082 ± 0.000 0.301 ± 0.003 0.086 ± 0.005 - -
batched grad_sum_batched_matmul_backward f64 1 2x2xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.148 ± 0.000 0.075 ± 0.000 0.021 ± 0.002 - -
batched grad_sum_batched_matmul_backward f64 1 2x2xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.008 ± 0.000 0.040 ± 0.000 0.006 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 1 2x2xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.041 ± 0.000 0.048 ± 0.000 0.012 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 1 2x2xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.015 ± 0.000 0.042 ± 0.000 0.010 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 1 4x4xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.183 ± 0.000 0.223 ± 0.001 0.224 ± 0.002 - -
batched grad_sum_batched_matmul_backward f64 1 4x4xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.009 ± 0.000 0.042 ± 0.000 0.011 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 1 4x4xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.050 ± 0.000 0.085 ± 0.001 0.064 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 1 4x4xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.017 ± 0.000 0.051 ± 0.000 0.023 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 1 8x8xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.350 ± 0.001 2.807 ± 0.019 0.417 ± 0.005 - -
batched grad_sum_batched_matmul_backward f64 1 8x8xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.011 ± 0.000 0.085 ± 0.000 0.016 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 1 8x8xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.091 ± 0.000 0.734 ± 0.002 0.110 ± 0.002 - -
batched grad_sum_batched_matmul_backward f64 1 8x8xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.027 ± 0.000 0.214 ± 0.001 0.036 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 1 16x16xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.135 ± 0.005 1.691 ± 0.033 1.895 ± 0.026 - -
batched grad_sum_batched_solve_backward f64 1 16x16xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.028 ± 0.000 0.054 ± 0.000 0.044 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 1 16x16xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.292 ± 0.001 0.427 ± 0.011 0.485 ± 0.006 - -
batched grad_sum_batched_solve_backward f64 1 16x16xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.078 ± 0.000 0.131 ± 0.002 0.132 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 1 2x2xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.143 ± 0.000 0.088 ± 0.001 0.262 ± 0.002 - -
batched grad_sum_batched_solve_backward f64 1 2x2xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.013 ± 0.000 0.029 ± 0.000 0.010 ± 0.000 - -
batched grad_sum_batched_solve_backward f64 1 2x2xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.044 ± 0.000 0.043 ± 0.000 0.073 ± 0.000 - -
batched grad_sum_batched_solve_backward f64 1 2x2xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.019 ± 0.000 0.032 ± 0.000 0.026 ± 0.000 - -
batched grad_sum_batched_solve_backward f64 1 4x4xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.175 ± 0.001 0.146 ± 0.001 0.375 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 1 4x4xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.013 ± 0.000 0.030 ± 0.000 0.015 ± 0.000 - -
batched grad_sum_batched_solve_backward f64 1 4x4xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.052 ± 0.000 0.058 ± 0.001 0.101 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 1 4x4xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.021 ± 0.000 0.036 ± 0.000 0.034 ± 0.000 - -
batched grad_sum_batched_solve_backward f64 1 8x8xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.522 ± 0.008 0.517 ± 0.004 0.715 ± 0.003 - -
batched grad_sum_batched_solve_backward f64 1 8x8xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.018 ± 0.000 0.036 ± 0.000 0.023 ± 0.000 - -
batched grad_sum_batched_solve_backward f64 1 8x8xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.137 ± 0.000 0.153 ± 0.001 0.186 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 1 8x8xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.042 ± 0.000 0.060 ± 0.000 0.056 ± 0.001 - -
large eigh f64 1 1024x1024 - 152.526 ± 0.196 152.507 ± 0.305 144.766 ± 0.439 124.864 ± 0.305 - -
large eigh f64 1 128x128 - 0.672 ± 0.001 0.670 ± 0.001 0.715 ± 0.001 0.734 ± 0.005 - -
large eigh f64 1 256x256 - 3.714 ± 0.006 3.702 ± 0.006 3.817 ± 0.014 3.602 ± 0.015 - -
large eigh f64 1 512x512 - 23.255 ± 0.164 23.152 ± 0.118 22.830 ± 0.123 20.771 ± 0.073 - -
large eigh f64 1 64x64 - 0.149 ± 0.000 0.148 ± 0.000 0.155 ± 0.000 0.180 ± 0.001 - -
large grad_sum_eigh_jvp f64 1 1024x1024 - - 187.008 ± 0.705 258.292 ± 3.675 191.724 ± 0.427 - -
large grad_sum_eigh_jvp f64 1 256x256 - - 4.286 ± 0.009 5.343 ± 0.010 4.439 ± 0.007 - -
large grad_sum_eigh_jvp f64 1 512x512 - - 28.003 ± 0.035 36.983 ± 0.126 28.897 ± 0.042 - -
large grad_sum_eigh_vjp f64 1 1024x1024 - - 188.994 ± 0.537 177.132 ± 0.839 190.045 ± 0.245 - -
large grad_sum_eigh_vjp f64 1 256x256 - - 4.295 ± 0.003 4.327 ± 0.013 4.444 ± 0.010 - -
large grad_sum_eigh_vjp f64 1 512x512 - - 27.836 ± 0.037 28.174 ± 0.086 28.650 ± 0.097 - -
large grad_sum_lu_jvp f64 1 1024x1024 - - 143.633 ± 0.723 311.117 ± 0.684 144.380 ± 1.637 - -
large grad_sum_lu_jvp f64 1 256x256 - - 2.654 ± 0.005 5.308 ± 0.081 2.528 ± 0.004 - -
large grad_sum_lu_jvp f64 1 512x512 - - 19.780 ± 0.127 46.582 ± 0.233 18.784 ± 0.037 - -
large grad_sum_lu_vjp f64 1 1024x1024 - - 143.876 ± 0.500 165.914 ± 1.192 144.087 ± 0.727 - -
large grad_sum_lu_vjp f64 1 256x256 - - 2.672 ± 0.002 2.819 ± 0.010 2.448 ± 0.003 - -
large grad_sum_lu_vjp f64 1 512x512 - - 19.376 ± 0.323 23.829 ± 0.127 18.262 ± 0.043 - -
large grad_sum_matmul f64 1 1024x1024 - 31.122 ± 0.117 29.534 ± 0.061 34.687 ± 0.142 30.636 ± 0.262 - -
large grad_sum_matmul f64 1 128x128 - 0.084 ± 0.001 0.068 ± 0.000 0.082 ± 0.002 0.092 ± 0.006 - -
large grad_sum_matmul f64 1 256x256 - 0.510 ± 0.012 0.463 ± 0.001 0.559 ± 0.006 0.570 ± 0.010 - -
large grad_sum_matmul f64 1 512x512 - 3.833 ± 0.013 3.680 ± 0.004 4.708 ± 0.031 4.262 ± 0.019 - -
large grad_sum_matmul f64 1 64x64 - 0.020 ± 0.000 0.012 ± 0.000 0.014 ± 0.000 0.026 ± 0.004 - -
large grad_sum_matmul_backward f64 1 1024x1024 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 90.101 ± 0.202 98.152 ± 0.362 91.268 ± 0.582 - -
large grad_sum_matmul_backward f64 1 128x128 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.216 ± 0.001 0.255 ± 0.002 0.216 ± 0.003 - -
large grad_sum_matmul_backward f64 1 256x256 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.427 ± 0.005 1.574 ± 0.006 1.516 ± 0.005 - -
large grad_sum_matmul_backward f64 1 512x512 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 11.422 ± 0.058 13.136 ± 0.045 11.823 ± 0.017 - -
large grad_sum_matmul_backward f64 1 64x64 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.036 ± 0.000 0.053 ± 0.001 0.041 ± 0.000 - -
large grad_sum_qr_jvp f64 1 1024x1024 - - 186.426 ± 0.292 220.816 ± 2.519 199.602 ± 1.597 - -
large grad_sum_qr_jvp f64 1 256x256 - - 3.672 ± 0.007 3.996 ± 0.023 3.515 ± 0.004 - -
large grad_sum_qr_jvp f64 1 512x512 - - 28.479 ± 0.134 33.753 ± 0.129 26.118 ± 0.064 - -
large grad_sum_qr_vjp f64 1 1024x1024 - - 184.472 ± 0.363 209.772 ± 2.942 197.539 ± 0.428 - -
large grad_sum_qr_vjp f64 1 256x256 - - 3.610 ± 0.008 4.008 ± 0.010 3.486 ± 0.007 - -
large grad_sum_qr_vjp f64 1 512x512 - - 26.629 ± 0.044 33.120 ± 0.478 26.300 ± 0.050 - -
large grad_sum_solve_backward f64 1 1024x1024,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 15.387 ± 0.073 22.128 ± 0.152 16.121 ± 0.044 - -
large grad_sum_solve_backward f64 1 128x128,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.076 ± 0.000 0.106 ± 0.003 0.097 ± 0.005 - -
large grad_sum_solve_backward f64 1 256x256,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.368 ± 0.001 0.495 ± 0.008 0.421 ± 0.010 - -
large grad_sum_solve_backward f64 1 512x512,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 2.135 ± 0.008 3.470 ± 0.029 2.872 ± 0.065 - -
large grad_sum_solve_backward f64 1 64x64,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.027 ± 0.000 0.045 ± 0.000 0.033 ± 0.001 - -
large grad_sum_solve_jvp f64 1 1024x1024,rhs=1 - - 14.832 ± 0.062 22.067 ± 1.072 17.103 ± 0.106 - -
large grad_sum_solve_jvp f64 1 256x256,rhs=1 - - 0.349 ± 0.004 0.533 ± 0.007 0.361 ± 0.001 - -
large grad_sum_solve_jvp f64 1 512x512,rhs=1 - - 2.088 ± 0.007 3.175 ± 0.014 2.508 ± 0.005 - -
large grad_sum_solve_vjp f64 1 1024x1024,rhs=1 - - 14.401 ± 0.065 36.808 ± 0.424 15.585 ± 0.052 - -
large grad_sum_solve_vjp f64 1 256x256,rhs=1 - - 0.350 ± 0.001 0.781 ± 0.009 0.367 ± 0.002 - -
large grad_sum_solve_vjp f64 1 512x512,rhs=1 - - 2.077 ± 0.017 5.240 ± 0.008 2.512 ± 0.007 - -
large grad_sum_svd_s_backward f64 1 1024x1024 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 337.656 ± 1.002 363.785 ± 2.996 356.682 ± 0.429 - -
large grad_sum_svd_s_backward f64 1 128x128 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.385 ± 0.003 1.560 ± 0.004 1.381 ± 0.002 - -
large grad_sum_svd_s_backward f64 1 256x256 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 7.636 ± 0.016 8.341 ± 0.017 8.012 ± 0.013 - -
large grad_sum_svd_s_backward f64 1 512x512 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 52.715 ± 0.307 62.563 ± 0.560 55.564 ± 0.085 - -
large grad_sum_svd_s_backward f64 1 64x64 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.298 ± 0.001 0.336 ± 0.002 0.299 ± 0.002 - -
large grad_sum_svd_s_jvp f64 1 1024x1024 - - 337.576 ± 6.623 466.134 ± 1.813 351.224 ± 0.688 - -
large grad_sum_svd_s_jvp f64 1 256x256 - - 7.617 ± 0.013 9.786 ± 0.014 7.833 ± 0.016 - -
large grad_sum_svd_s_jvp f64 1 512x512 - - 52.643 ± 0.257 73.323 ± 0.836 55.257 ± 0.106 - -
large grad_sum_svd_s_vjp f64 1 1024x1024 - - 337.412 ± 0.788 345.597 ± 2.802 358.294 ± 0.440 - -
large grad_sum_svd_s_vjp f64 1 256x256 - - 7.606 ± 0.034 8.183 ± 0.015 7.823 ± 0.011 - -
large grad_sum_svd_s_vjp f64 1 512x512 - - 52.158 ± 0.384 58.354 ± 0.212 55.221 ± 0.160 - -
large matmul f64 1 1024x1024 - 29.340 ± 0.046 29.253 ± 0.044 31.365 ± 0.173 29.747 ± 0.402 - -
large matmul f64 1 128x128 - 0.074 ± 0.000 0.067 ± 0.000 0.099 ± 0.002 0.101 ± 0.008 - -
large matmul f64 1 256x256 - 0.480 ± 0.003 0.460 ± 0.002 0.626 ± 0.003 0.644 ± 0.006 - -
large matmul f64 1 512x512 - 3.704 ± 0.031 3.669 ± 0.004 4.435 ± 0.021 4.090 ± 0.111 - -
large matmul_rect f64 1 1024x256 * 256x1024 - 7.394 ± 0.012 7.463 ± 0.036 8.044 ± 0.008 7.686 ± 0.158 - -
large matmul_rect f64 1 256x1024 * 1024x256 - 1.813 ± 0.011 1.823 ± 0.002 2.213 ± 0.009 2.258 ± 0.019 - -
large qr f64 1 1024x1024 - 65.136 ± 0.055 65.191 ± 0.109 79.928 ± 0.863 68.733 ± 0.389 - -
large qr f64 1 128x128 - 0.262 ± 0.001 0.259 ± 0.001 0.322 ± 0.001 0.295 ± 0.001 - -
large qr f64 1 256x256 - 1.549 ± 0.003 1.537 ± 0.003 1.899 ± 0.007 1.554 ± 0.009 - -
large qr f64 1 512x512 - 10.832 ± 0.010 10.854 ± 0.014 13.064 ± 0.025 10.990 ± 0.025 - -
large qr f64 1 64x64 - 0.047 ± 0.000 0.045 ± 0.000 0.054 ± 0.000 0.051 ± 0.000 - -
large solve f64 1 1024x1024,rhs=1 - 13.154 ± 0.123 13.549 ± 0.062 20.972 ± 0.143 16.346 ± 0.039 - -
large solve f64 1 1024x1024,rhs=16 - 13.896 ± 0.088 14.251 ± 0.042 22.000 ± 0.187 16.926 ± 0.092 - -
large solve f64 1 1024x1024,rhs=64 - 15.574 ± 0.102 15.999 ± 0.045 24.162 ± 0.139 18.840 ± 0.044 - -
large solve f64 1 128x128,rhs=1 - 0.059 ± 0.000 0.060 ± 0.000 0.069 ± 0.000 0.075 ± 0.004 - -
large solve f64 1 128x128,rhs=16 - 0.078 ± 0.000 0.080 ± 0.001 0.092 ± 0.001 0.109 ± 0.002 - -
large solve f64 1 128x128,rhs=64 - 0.131 ± 0.000 0.135 ± 0.000 0.149 ± 0.001 0.174 ± 0.002 - -
large solve f64 1 256x256,rhs=1 - 0.314 ± 0.001 0.320 ± 0.001 0.400 ± 0.003 0.376 ± 0.006 - -
large solve f64 1 256x256,rhs=16 - 0.370 ± 0.002 0.378 ± 0.002 0.458 ± 0.005 0.443 ± 0.003 - -
large solve f64 1 256x256,rhs=64 - 0.521 ± 0.003 0.531 ± 0.001 0.635 ± 0.003 0.633 ± 0.006 - -
large solve f64 1 512x512,rhs=1 - 1.980 ± 0.005 2.006 ± 0.018 2.703 ± 0.017 2.873 ± 0.049 - -
large solve f64 1 512x512,rhs=16 - 2.190 ± 0.009 2.205 ± 0.020 2.936 ± 0.016 3.015 ± 0.056 - -
large solve f64 1 512x512,rhs=64 - 2.693 ± 0.012 2.734 ± 0.033 3.485 ± 0.024 3.660 ± 0.064 - -
large solve f64 1 64x64,rhs=1 - 0.017 ± 0.000 0.017 ± 0.000 0.021 ± 0.000 0.025 ± 0.003 - -
large solve f64 1 64x64,rhs=16 - 0.022 ± 0.000 0.023 ± 0.000 0.027 ± 0.000 0.035 ± 0.000 - -
large solve f64 1 64x64,rhs=64 - 0.038 ± 0.000 0.039 ± 0.000 0.046 ± 0.000 0.066 ± 0.001 - -
large svd f64 1 1024x1024 - 275.704 ± 2.755 277.639 ± 1.584 316.254 ± 3.059 284.585 ± 0.562 - -
large svd f64 1 128x128 - 1.255 ± 0.003 1.251 ± 0.004 1.380 ± 0.003 1.283 ± 0.003 - -
large svd f64 1 256x256 - 6.706 ± 0.046 6.718 ± 0.015 7.555 ± 0.028 7.051 ± 0.014 - -
large svd f64 1 512x512 - 44.111 ± 0.258 44.333 ± 0.245 48.492 ± 0.127 47.033 ± 0.115 - -
large svd f64 1 64x64 - 0.273 ± 0.001 0.274 ± 0.001 0.293 ± 0.001 0.280 ± 0.002 - -
small eigh f64 1 16x16 - 0.012 ± 0.000 0.012 ± 0.000 0.013 ± 0.000 0.017 ± 0.000 - -
small eigh f64 1 2x2 - 0.003 ± 0.000 0.003 ± 0.000 0.003 ± 0.000 0.005 ± 0.000 - -
small eigh f64 1 32x32 - 0.038 ± 0.000 0.037 ± 0.000 0.041 ± 0.000 0.052 ± 0.000 - -
small eigh f64 1 4x4 - 0.004 ± 0.000 0.003 ± 0.000 0.004 ± 0.000 0.005 ± 0.000 - -
small eigh f64 1 8x8 - 0.006 ± 0.000 0.005 ± 0.000 0.006 ± 0.000 0.008 ± 0.000 - -
small einsum_ij_jk_ik f64 1 16x16 - 0.003 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 0.061 ± 0.001 - -
small einsum_ij_jk_ik f64 1 2x2 - 0.002 ± 0.000 0.004 ± 0.000 0.005 ± 0.000 0.054 ± 0.001 - -
small einsum_ij_jk_ik f64 1 32x32 - 0.004 ± 0.000 0.005 ± 0.000 0.008 ± 0.000 0.063 ± 0.001 - -
small einsum_ij_jk_ik f64 1 4x4 - 0.002 ± 0.000 0.004 ± 0.000 0.005 ± 0.000 0.054 ± 0.001 - -
small einsum_ij_jk_ik f64 1 8x8 - 0.002 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 0.061 ± 0.000 - -
small grad_sum_eigh_jvp f64 1 16x16 - - 0.020 ± 0.000 0.060 ± 0.001 0.020 ± 0.000 - -
small grad_sum_eigh_jvp f64 1 2x2 - - 0.010 ± 0.000 0.047 ± 0.001 0.005 ± 0.000 - -
small grad_sum_eigh_jvp f64 1 32x32 - - 0.048 ± 0.000 0.094 ± 0.001 0.054 ± 0.000 - -
small grad_sum_eigh_jvp f64 1 4x4 - - 0.011 ± 0.000 0.048 ± 0.000 0.005 ± 0.000 - -
small grad_sum_eigh_jvp f64 1 8x8 - - 0.013 ± 0.000 0.052 ± 0.001 0.010 ± 0.000 - -
small grad_sum_eigh_vjp f64 1 16x16 - - 0.020 ± 0.000 0.052 ± 0.000 0.020 ± 0.000 - -
small grad_sum_eigh_vjp f64 1 2x2 - - 0.010 ± 0.000 0.041 ± 0.000 0.005 ± 0.000 - -
small grad_sum_eigh_vjp f64 1 32x32 - - 0.048 ± 0.000 0.082 ± 0.000 0.055 ± 0.000 - -
small grad_sum_eigh_vjp f64 1 4x4 - - 0.011 ± 0.000 0.041 ± 0.000 0.006 ± 0.000 - -
small grad_sum_eigh_vjp f64 1 8x8 - - 0.013 ± 0.000 0.044 ± 0.000 0.010 ± 0.000 - -
small grad_sum_lu_jvp f64 1 16x16 - - 0.015 ± 0.000 0.083 ± 0.001 0.010 ± 0.000 - -
small grad_sum_lu_jvp f64 1 2x2 - - 0.012 ± 0.000 0.076 ± 0.001 0.005 ± 0.000 - -
small grad_sum_lu_jvp f64 1 32x32 - - 0.026 ± 0.000 0.104 ± 0.001 0.020 ± 0.000 - -
small grad_sum_lu_jvp f64 1 4x4 - - 0.012 ± 0.000 0.076 ± 0.000 0.005 ± 0.000 - -
small grad_sum_lu_jvp f64 1 8x8 - - 0.013 ± 0.000 0.077 ± 0.001 0.008 ± 0.000 - -
small grad_sum_lu_vjp f64 1 16x16 - - 0.015 ± 0.000 0.066 ± 0.001 0.011 ± 0.000 - -
small grad_sum_lu_vjp f64 1 2x2 - - 0.012 ± 0.000 0.061 ± 0.000 0.005 ± 0.000 - -
small grad_sum_lu_vjp f64 1 32x32 - - 0.027 ± 0.000 0.081 ± 0.001 0.020 ± 0.000 - -
small grad_sum_lu_vjp f64 1 4x4 - - 0.012 ± 0.000 0.061 ± 0.001 0.006 ± 0.000 - -
small grad_sum_lu_vjp f64 1 8x8 - - 0.012 ± 0.000 0.062 ± 0.000 0.008 ± 0.000 - -
small grad_sum_matmul_backward f64 1 16x16 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.007 ± 0.000 0.018 ± 0.000 0.009 ± 0.000 - -
small grad_sum_matmul_backward f64 1 2x2 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.005 ± 0.000 0.016 ± 0.000 0.006 ± 0.000 - -
small grad_sum_matmul_backward f64 1 32x32 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.011 ± 0.000 0.023 ± 0.000 0.016 ± 0.000 - -
small grad_sum_matmul_backward f64 1 4x4 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.005 ± 0.000 0.017 ± 0.000 0.006 ± 0.000 - -
small grad_sum_matmul_backward f64 1 8x8 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.006 ± 0.000 0.016 ± 0.000 0.010 ± 0.001 - -
small grad_sum_qr_jvp f64 1 16x16 - - 0.021 ± 0.000 0.060 ± 0.000 0.012 ± 0.000 - -
small grad_sum_qr_jvp f64 1 2x2 - - 0.018 ± 0.000 0.054 ± 0.001 0.005 ± 0.000 - -
small grad_sum_qr_jvp f64 1 32x32 - - 0.035 ± 0.000 0.076 ± 0.001 0.024 ± 0.000 - -
small grad_sum_qr_jvp f64 1 4x4 - - 0.018 ± 0.000 0.054 ± 0.000 0.006 ± 0.000 - -
small grad_sum_qr_jvp f64 1 8x8 - - 0.018 ± 0.000 0.055 ± 0.000 0.008 ± 0.000 - -
small grad_sum_qr_vjp f64 1 16x16 - - 0.022 ± 0.000 0.063 ± 0.000 0.012 ± 0.000 - -
small grad_sum_qr_vjp f64 1 2x2 - - 0.017 ± 0.000 0.056 ± 0.000 0.005 ± 0.000 - -
small grad_sum_qr_vjp f64 1 32x32 - - 0.036 ± 0.000 0.077 ± 0.000 0.024 ± 0.000 - -
small grad_sum_qr_vjp f64 1 4x4 - - 0.018 ± 0.000 0.056 ± 0.000 0.006 ± 0.000 - -
small grad_sum_qr_vjp f64 1 8x8 - - 0.018 ± 0.000 0.057 ± 0.000 0.008 ± 0.000 - -
small grad_sum_solve_backward f64 1 16x16,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.011 ± 0.000 0.027 ± 0.000 0.009 ± 0.000 - -
small grad_sum_solve_backward f64 1 2x2,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.010 ± 0.000 0.025 ± 0.000 0.006 ± 0.000 - -
small grad_sum_solve_backward f64 1 32x32,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.015 ± 0.000 0.031 ± 0.000 0.016 ± 0.000 - -
small grad_sum_solve_backward f64 1 4x4,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.010 ± 0.000 0.026 ± 0.000 0.008 ± 0.000 - -
small grad_sum_solve_backward f64 1 8x8,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.010 ± 0.000 0.026 ± 0.000 0.008 ± 0.000 - -
small grad_sum_solve_jvp f64 1 16x16,rhs=1 - - 0.009 ± 0.000 0.129 ± 0.001 0.007 ± 0.000 - -
small grad_sum_solve_jvp f64 1 2x2,rhs=1 - - 0.008 ± 0.000 0.124 ± 0.001 0.005 ± 0.000 - -
small grad_sum_solve_jvp f64 1 32x32,rhs=1 - - 0.013 ± 0.000 0.135 ± 0.001 0.012 ± 0.000 - -
small grad_sum_solve_jvp f64 1 4x4,rhs=1 - - 0.008 ± 0.000 0.124 ± 0.001 0.005 ± 0.000 - -
small grad_sum_solve_jvp f64 1 8x8,rhs=1 - - 0.008 ± 0.000 0.124 ± 0.001 0.006 ± 0.000 - -
small grad_sum_solve_vjp f64 1 16x16,rhs=1 - - 0.009 ± 0.000 0.057 ± 0.001 0.008 ± 0.000 - -
small grad_sum_solve_vjp f64 1 2x2,rhs=1 - - 0.008 ± 0.000 0.054 ± 0.000 0.006 ± 0.000 - -
small grad_sum_solve_vjp f64 1 32x32,rhs=1 - - 0.012 ± 0.000 0.064 ± 0.001 0.014 ± 0.000 - -
small grad_sum_solve_vjp f64 1 4x4,rhs=1 - - 0.008 ± 0.000 0.053 ± 0.001 0.006 ± 0.000 - -
small grad_sum_solve_vjp f64 1 8x8,rhs=1 - - 0.008 ± 0.000 0.054 ± 0.000 0.006 ± 0.000 - -
small grad_sum_svd_s_backward f64 1 16x16 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.027 ± 0.000 0.041 ± 0.000 0.031 ± 0.000 - -
small grad_sum_svd_s_backward f64 1 2x2 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.007 ± 0.000 0.018 ± 0.000 0.005 ± 0.000 - -
small grad_sum_svd_s_backward f64 1 32x32 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.077 ± 0.000 0.100 ± 0.000 0.083 ± 0.001 - -
small grad_sum_svd_s_backward f64 1 4x4 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.008 ± 0.000 0.021 ± 0.000 0.006 ± 0.000 - -
small grad_sum_svd_s_backward f64 1 8x8 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.014 ± 0.000 0.026 ± 0.000 0.014 ± 0.000 - -
small grad_sum_svd_s_jvp f64 1 16x16 - - 0.028 ± 0.000 0.100 ± 0.001 0.030 ± 0.000 - -
small grad_sum_svd_s_jvp f64 1 2x2 - - 0.007 ± 0.000 0.071 ± 0.001 0.005 ± 0.000 - -
small grad_sum_svd_s_jvp f64 1 32x32 - - 0.077 ± 0.000 0.166 ± 0.002 0.080 ± 0.000 - -
small grad_sum_svd_s_jvp f64 1 4x4 - - 0.009 ± 0.000 0.072 ± 0.001 0.007 ± 0.000 - -
small grad_sum_svd_s_jvp f64 1 8x8 - - 0.014 ± 0.000 0.080 ± 0.001 0.013 ± 0.000 - -
small grad_sum_svd_s_vjp f64 1 16x16 - - 0.027 ± 0.000 0.069 ± 0.001 0.030 ± 0.000 - -
small grad_sum_svd_s_vjp f64 1 2x2 - - 0.007 ± 0.000 0.044 ± 0.000 0.005 ± 0.000 - -
small grad_sum_svd_s_vjp f64 1 32x32 - - 0.077 ± 0.000 0.128 ± 0.001 0.080 ± 0.000 - -
small grad_sum_svd_s_vjp f64 1 4x4 - - 0.008 ± 0.000 0.046 ± 0.000 0.007 ± 0.000 - -
small grad_sum_svd_s_vjp f64 1 8x8 - - 0.014 ± 0.000 0.052 ± 0.000 0.013 ± 0.000 - -
small matmul f64 1 16x16 - 0.003 ± 0.000 0.002 ± 0.000 0.002 ± 0.000 0.009 ± 0.000 - -
small matmul f64 1 2x2 - 0.002 ± 0.000 0.002 ± 0.000 0.001 ± 0.000 0.004 ± 0.000 - -
small matmul f64 1 32x32 - 0.004 ± 0.000 0.004 ± 0.000 0.004 ± 0.001 0.010 ± 0.003 - -
small matmul f64 1 4x4 - 0.002 ± 0.000 0.002 ± 0.000 0.001 ± 0.000 0.004 ± 0.000 - -
small matmul f64 1 64x64 - 0.013 ± 0.000 0.011 ± 0.000 0.017 ± 0.001 0.023 ± 0.004 - -
small matmul f64 1 8x8 - 0.003 ± 0.000 0.002 ± 0.000 0.001 ± 0.000 0.008 ± 0.000 - -
small qr f64 1 16x16 - 0.005 ± 0.000 0.004 ± 0.000 0.005 ± 0.000 0.009 ± 0.000 - -
small qr f64 1 2x2 - 0.003 ± 0.000 0.002 ± 0.000 0.002 ± 0.000 0.005 ± 0.000 - -
small qr f64 1 32x32 - 0.011 ± 0.000 0.010 ± 0.000 0.013 ± 0.000 0.020 ± 0.000 - -
small qr f64 1 4x4 - 0.003 ± 0.000 0.003 ± 0.000 0.003 ± 0.000 0.005 ± 0.000 - -
small qr f64 1 8x8 - 0.004 ± 0.000 0.003 ± 0.000 0.003 ± 0.000 0.006 ± 0.000 - -
small solve f64 1 16x16,rhs=1 - 0.004 ± 0.000 0.004 ± 0.000 0.008 ± 0.000 0.006 ± 0.000 - -
small solve f64 1 16x16,rhs=4 - 0.004 ± 0.000 0.004 ± 0.000 0.008 ± 0.000 0.005 ± 0.000 - -
small solve f64 1 2x2,rhs=1 - 0.003 ± 0.000 0.003 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 1 2x2,rhs=4 - 0.003 ± 0.000 0.003 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 1 32x32,rhs=1 - 0.007 ± 0.000 0.007 ± 0.000 0.011 ± 0.000 0.012 ± 0.002 - -
small solve f64 1 32x32,rhs=4 - 0.007 ± 0.000 0.008 ± 0.000 0.011 ± 0.000 0.013 ± 0.002 - -
small solve f64 1 4x4,rhs=1 - 0.003 ± 0.000 0.003 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 1 4x4,rhs=4 - 0.003 ± 0.000 0.003 ± 0.000 0.007 ± 0.000 0.006 ± 0.000 - -
small solve f64 1 8x8,rhs=1 - 0.003 ± 0.000 0.003 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 1 8x8,rhs=4 - 0.003 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small svd f64 1 16x16 - 0.023 ± 0.000 0.023 ± 0.000 0.025 ± 0.000 0.028 ± 0.000 - -
small svd f64 1 2x2 - 0.004 ± 0.000 0.003 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 - -
small svd f64 1 32x32 - 0.073 ± 0.001 0.071 ± 0.000 0.081 ± 0.000 0.084 ± 0.001 - -
small svd f64 1 4x4 - 0.005 ± 0.000 0.005 ± 0.000 0.006 ± 0.000 0.007 ± 0.000 - -
small svd f64 1 8x8 - 0.010 ± 0.000 0.009 ± 0.000 0.010 ± 0.000 0.011 ± 0.000 - -

Cross-Backend Spread Audit

Rows with a successful cell more than 10x faster than the slowest successful cell are flagged for operation-specific review. This cross-backend spread check is a warning, not a correctness verdict.

Physical Bound Audit

This independent check derives minimum logical bytes from dtype and shape for materializing public API operations, plus conservative operation FLOPs for reductions, Frobenius norms, matrix products, triangular solves, and recognized dense linalg families. Decorated shapes (->, rhs=, and +) are parsed explicitly. Operations whose touched region cannot be inferred conservatively from the reported shape are left unmodeled. It assumes at most 100 GB/s and 50 GFLOP/s per requested CPU thread, capped at 1000 GB/s and 3200 GFLOP/s. A cell more than 10x faster than the resulting lower bound is flagged. These deliberately generous ceilings are a sanity screen, not a performance gate.

No cell exceeded the conservative physical bound by more than 10x.

Threads: 4

Source report: data/results/zen5-cpu/cpu/einsum/20261027_235042/cpu_ops_report.md.

Latest run: ./scripts/run_all.sh 4.

This file is generated from one CPU ops run under data/results/zen5-cpu/cpu/einsum/20261027_235042.

CPU Information

Thread Environment

Tenferro CPU BLAS Backend

Python Backend Providers

CPU Benchmark Items

Small rows use time/memory-bounded batches, normalized per operation. Tenferro eager/trace share a CPU execution scope outside timing. Eager primal rows reuse a borrowed session entered before sampling; eager backward rows without a borrowed-session API are unsupported. Raw JSONL records contain batch durations and operation counts.

Median ± IQR (ms). Missing backends are shown as -.

suite benchmark dtype threads shape tenferro-rs direct API (ms) tenferro-rs eager mode (ms) tenferro-rs trace mode (ms) PyTorch Python (ms) JAX Python (XLA CPU) (ms) Julia (Base/LinearAlgebra) (ms) Julia (Strided.jl) (ms)
batched batched_eigh f64 4 16x16xbatch1024 (native batch layout) - 10.515 ± 0.079 10.464 ± 0.012 10.416 ± 0.027 7.156 ± 0.078 - -
batched batched_eigh f64 4 16x16xbatch16 (native batch layout) - 0.149 ± 0.001 0.152 ± 0.000 0.159 ± 0.000 0.169 ± 0.017 - -
batched batched_eigh f64 4 16x16xbatch256 (native batch layout) - 2.576 ± 0.006 2.588 ± 0.003 2.687 ± 0.004 1.696 ± 0.206 - -
batched batched_eigh f64 4 16x16xbatch64 (native batch layout) - 0.617 ± 0.001 0.619 ± 0.002 0.650 ± 0.002 0.520 ± 0.072 - -
batched batched_eigh f64 4 2x2xbatch1024 (native batch layout) - 0.301 ± 0.000 0.302 ± 0.000 0.197 ± 0.000 0.177 ± 0.012 - -
batched batched_eigh f64 4 2x2xbatch16 (native batch layout) - 0.008 ± 0.000 0.008 ± 0.000 0.006 ± 0.000 0.007 ± 0.000 - -
batched batched_eigh f64 4 2x2xbatch256 (native batch layout) - 0.078 ± 0.000 0.078 ± 0.000 0.052 ± 0.000 0.046 ± 0.002 - -
batched batched_eigh f64 4 2x2xbatch64 (native batch layout) - 0.022 ± 0.000 0.022 ± 0.000 0.015 ± 0.000 0.014 ± 0.001 - -
batched batched_eigh f64 4 4x4xbatch1024 (native batch layout) - 1.160 ± 0.001 1.159 ± 0.003 1.004 ± 0.002 0.789 ± 0.115 - -
batched batched_eigh f64 4 4x4xbatch16 (native batch layout) - 0.021 ± 0.000 0.021 ± 0.000 0.019 ± 0.000 0.020 ± 0.000 - -
batched batched_eigh f64 4 4x4xbatch256 (native batch layout) - 0.292 ± 0.000 0.291 ± 0.000 0.249 ± 0.000 0.270 ± 0.013 - -
batched batched_eigh f64 4 4x4xbatch64 (native batch layout) - 0.075 ± 0.000 0.075 ± 0.000 0.066 ± 0.000 0.071 ± 0.005 - -
batched batched_eigh f64 4 8x8xbatch1024 (native batch layout) - 3.202 ± 0.004 3.214 ± 0.003 3.086 ± 0.007 1.643 ± 0.370 - -
batched batched_eigh f64 4 8x8xbatch16 (native batch layout) - 0.051 ± 0.000 0.051 ± 0.000 0.050 ± 0.000 0.061 ± 0.004 - -
batched batched_eigh f64 4 8x8xbatch256 (native batch layout) - 0.786 ± 0.001 0.785 ± 0.002 0.772 ± 0.001 0.651 ± 0.188 - -
batched batched_eigh f64 4 8x8xbatch64 (native batch layout) - 0.197 ± 0.000 0.197 ± 0.000 0.195 ± 0.000 0.236 ± 0.009 - -
batched batched_matmul_ikb_kjb_ijb f64 4 16x16xbatch1024 (native batch layout) - 0.378 ± 0.002 0.378 ± 0.002 0.382 ± 0.012 1.359 ± 0.072 - -
batched batched_matmul_ikb_kjb_ijb f64 4 16x16xbatch16 (native batch layout) - 0.009 ± 0.000 0.008 ± 0.000 0.012 ± 0.001 0.060 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 4 16x16xbatch256 (native batch layout) - 0.096 ± 0.001 0.094 ± 0.001 0.090 ± 0.001 0.232 ± 0.034 - -
batched batched_matmul_ikb_kjb_ijb f64 4 16x16xbatch64 (native batch layout) - 0.026 ± 0.000 0.026 ± 0.000 0.028 ± 0.004 0.067 ± 0.003 - -
batched batched_matmul_ikb_kjb_ijb f64 4 2x2xbatch1024 (native batch layout) - 0.052 ± 0.000 0.052 ± 0.000 0.017 ± 0.000 0.059 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 4 2x2xbatch16 (native batch layout) - 0.003 ± 0.000 0.003 ± 0.000 0.006 ± 0.000 0.056 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 4 2x2xbatch256 (native batch layout) - 0.014 ± 0.000 0.014 ± 0.000 0.009 ± 0.000 0.059 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 4 2x2xbatch64 (native batch layout) - 0.005 ± 0.000 0.005 ± 0.000 0.006 ± 0.000 0.058 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 4 4x4xbatch1024 (native batch layout) - 0.061 ± 0.000 0.060 ± 0.000 0.045 ± 0.015 0.132 ± 0.015 - -
batched batched_matmul_ikb_kjb_ijb f64 4 4x4xbatch16 (native batch layout) - 0.003 ± 0.000 0.003 ± 0.000 0.007 ± 0.000 0.058 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 4 4x4xbatch256 (native batch layout) - 0.017 ± 0.000 0.017 ± 0.000 0.021 ± 0.000 0.059 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 4 4x4xbatch64 (native batch layout) - 0.006 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 0.057 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 4 8x8xbatch1024 (native batch layout) - 0.105 ± 0.000 0.104 ± 0.001 0.082 ± 0.001 0.265 ± 0.032 - -
batched batched_matmul_ikb_kjb_ijb f64 4 8x8xbatch16 (native batch layout) - 0.004 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.058 ± 0.000 - -
batched batched_matmul_ikb_kjb_ijb f64 4 8x8xbatch256 (native batch layout) - 0.028 ± 0.000 0.028 ± 0.000 0.026 ± 0.000 0.073 ± 0.020 - -
batched batched_matmul_ikb_kjb_ijb f64 4 8x8xbatch64 (native batch layout) - 0.008 ± 0.000 0.009 ± 0.000 0.011 ± 0.001 0.058 ± 0.001 - -
batched batched_qr f64 4 16x16xbatch1024 (native batch layout) - 2.175 ± 0.033 2.135 ± 0.007 2.191 ± 0.052 2.164 ± 0.267 - -
batched batched_qr f64 4 16x16xbatch16 (native batch layout) - 0.036 ± 0.001 0.035 ± 0.000 0.039 ± 0.001 0.057 ± 0.003 - -
batched batched_qr f64 4 16x16xbatch256 (native batch layout) - 0.538 ± 0.006 0.534 ± 0.001 0.575 ± 0.006 0.634 ± 0.043 - -
batched batched_qr f64 4 16x16xbatch64 (native batch layout) - 0.137 ± 0.000 0.135 ± 0.000 0.145 ± 0.001 0.178 ± 0.024 - -
batched batched_qr f64 4 2x2xbatch1024 (native batch layout) - 0.110 ± 0.000 0.109 ± 0.000 0.084 ± 0.001 0.131 ± 0.003 - -
batched batched_qr f64 4 2x2xbatch16 (native batch layout) - 0.005 ± 0.000 0.005 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 - -
batched batched_qr f64 4 2x2xbatch256 (native batch layout) - 0.030 ± 0.000 0.030 ± 0.000 0.023 ± 0.000 0.036 ± 0.001 - -
batched batched_qr f64 4 2x2xbatch64 (native batch layout) - 0.010 ± 0.000 0.010 ± 0.000 0.008 ± 0.000 0.012 ± 0.000 - -
batched batched_qr f64 4 4x4xbatch1024 (native batch layout) - 0.275 ± 0.001 0.274 ± 0.000 0.247 ± 0.001 0.407 ± 0.024 - -
batched batched_qr f64 4 4x4xbatch16 (native batch layout) - 0.007 ± 0.000 0.007 ± 0.000 0.007 ± 0.000 0.010 ± 0.000 - -
batched batched_qr f64 4 4x4xbatch256 (native batch layout) - 0.072 ± 0.000 0.071 ± 0.000 0.063 ± 0.000 0.099 ± 0.005 - -
batched batched_qr f64 4 4x4xbatch64 (native batch layout) - 0.020 ± 0.000 0.020 ± 0.000 0.019 ± 0.000 0.028 ± 0.001 - -
batched batched_qr f64 4 8x8xbatch1024 (native batch layout) - 0.683 ± 0.003 0.680 ± 0.001 0.660 ± 0.013 0.655 ± 0.093 - -
batched batched_qr f64 4 8x8xbatch16 (native batch layout) - 0.014 ± 0.000 0.013 ± 0.000 0.014 ± 0.000 0.022 ± 0.002 - -
batched batched_qr f64 4 8x8xbatch256 (native batch layout) - 0.172 ± 0.001 0.174 ± 0.000 0.170 ± 0.001 0.312 ± 0.016 - -
batched batched_qr f64 4 8x8xbatch64 (native batch layout) - 0.046 ± 0.000 0.045 ± 0.000 0.045 ± 0.000 0.072 ± 0.003 - -
batched batched_solve f64 4 16x16xbatch1024 (native batch layout),rhs=1 - 0.727 ± 0.008 0.674 ± 0.011 0.348 ± 0.006 1.469 ± 0.137 - -
batched batched_solve f64 4 16x16xbatch16 (native batch layout),rhs=1 - 0.014 ± 0.000 0.014 ± 0.000 0.016 ± 0.001 0.027 ± 0.002 - -
batched batched_solve f64 4 16x16xbatch256 (native batch layout),rhs=1 - 0.185 ± 0.001 0.173 ± 0.001 0.120 ± 0.026 0.452 ± 0.108 - -
batched batched_solve f64 4 16x16xbatch64 (native batch layout),rhs=1 - 0.049 ± 0.000 0.046 ± 0.000 0.043 ± 0.007 0.104 ± 0.010 - -
batched batched_solve f64 4 2x2xbatch1024 (native batch layout),rhs=1 - 0.097 ± 0.000 0.075 ± 0.000 0.035 ± 0.001 0.133 ± 0.002 - -
batched batched_solve f64 4 2x2xbatch16 (native batch layout),rhs=1 - 0.005 ± 0.000 0.005 ± 0.000 0.008 ± 0.000 0.006 ± 0.000 - -
batched batched_solve f64 4 2x2xbatch256 (native batch layout),rhs=1 - 0.027 ± 0.000 0.022 ± 0.000 0.015 ± 0.000 0.039 ± 0.002 - -
batched batched_solve f64 4 2x2xbatch64 (native batch layout),rhs=1 - 0.009 ± 0.000 0.008 ± 0.000 0.009 ± 0.000 0.011 ± 0.001 - -
batched batched_solve f64 4 4x4xbatch1024 (native batch layout),rhs=1 - 0.116 ± 0.001 0.095 ± 0.000 0.055 ± 0.004 0.211 ± 0.015 - -
batched batched_solve f64 4 4x4xbatch16 (native batch layout),rhs=1 - 0.005 ± 0.000 0.005 ± 0.000 0.009 ± 0.000 0.009 ± 0.000 - -
batched batched_solve f64 4 4x4xbatch256 (native batch layout),rhs=1 - 0.032 ± 0.000 0.026 ± 0.000 0.019 ± 0.000 0.052 ± 0.002 - -
batched batched_solve f64 4 4x4xbatch64 (native batch layout),rhs=1 - 0.011 ± 0.000 0.010 ± 0.000 0.011 ± 0.000 0.017 ± 0.001 - -
batched batched_solve f64 4 8x8xbatch1024 (native batch layout),rhs=1 - 0.266 ± 0.002 0.239 ± 0.002 0.134 ± 0.001 0.561 ± 0.103 - -
batched batched_solve f64 4 8x8xbatch16 (native batch layout),rhs=1 - 0.008 ± 0.000 0.008 ± 0.000 0.010 ± 0.000 0.011 ± 0.001 - -
batched batched_solve f64 4 8x8xbatch256 (native batch layout),rhs=1 - 0.069 ± 0.000 0.062 ± 0.000 0.052 ± 0.004 0.119 ± 0.013 - -
batched batched_solve f64 4 8x8xbatch64 (native batch layout),rhs=1 - 0.020 ± 0.000 0.018 ± 0.000 0.018 ± 0.001 0.033 ± 0.003 - -
batched batched_svd f64 4 16x16xbatch1024 (native batch layout) - 22.578 ± 0.255 22.488 ± 0.035 23.330 ± 0.420 11.671 ± 4.810 - -
batched batched_svd f64 4 16x16xbatch16 (native batch layout) - 0.330 ± 0.001 0.335 ± 0.000 0.362 ± 0.001 0.254 ± 0.049 - -
batched batched_svd f64 4 16x16xbatch256 (native batch layout) - 5.574 ± 0.014 5.574 ± 0.009 5.915 ± 0.010 2.709 ± 0.270 - -
batched batched_svd f64 4 16x16xbatch64 (native batch layout) - 1.350 ± 0.002 1.350 ± 0.001 1.439 ± 0.010 0.920 ± 0.064 - -
batched batched_svd f64 4 2x2xbatch1024 (native batch layout) - 0.704 ± 0.002 0.708 ± 0.002 0.511 ± 0.001 0.712 ± 0.076 - -
batched batched_svd f64 4 2x2xbatch16 (native batch layout) - 0.014 ± 0.000 0.014 ± 0.000 0.012 ± 0.000 0.015 ± 0.000 - -
batched batched_svd f64 4 2x2xbatch256 (native batch layout) - 0.173 ± 0.001 0.173 ± 0.001 0.129 ± 0.000 0.176 ± 0.016 - -
batched batched_svd f64 4 2x2xbatch64 (native batch layout) - 0.045 ± 0.000 0.046 ± 0.000 0.035 ± 0.000 0.042 ± 0.001 - -
batched batched_svd f64 4 4x4xbatch1024 (native batch layout) - 2.421 ± 0.003 2.425 ± 0.003 2.066 ± 0.004 1.019 ± 0.234 - -
batched batched_svd f64 4 4x4xbatch16 (native batch layout) - 0.040 ± 0.000 0.041 ± 0.000 0.036 ± 0.000 0.036 ± 0.000 - -
batched batched_svd f64 4 4x4xbatch256 (native batch layout) - 0.606 ± 0.001 0.609 ± 0.001 0.520 ± 0.001 0.520 ± 0.015 - -
batched batched_svd f64 4 4x4xbatch64 (native batch layout) - 0.152 ± 0.000 0.154 ± 0.000 0.131 ± 0.000 0.133 ± 0.008 - -
batched batched_svd f64 4 8x8xbatch1024 (native batch layout) - 7.981 ± 0.008 8.011 ± 0.058 7.045 ± 0.006 2.808 ± 0.459 - -
batched batched_svd f64 4 8x8xbatch16 (native batch layout) - 0.122 ± 0.001 0.124 ± 0.000 0.113 ± 0.000 0.105 ± 0.008 - -
batched batched_svd f64 4 8x8xbatch256 (native batch layout) - 1.944 ± 0.002 1.948 ± 0.002 1.787 ± 0.002 0.988 ± 0.113 - -
batched batched_svd f64 4 8x8xbatch64 (native batch layout) - 0.488 ± 0.001 0.488 ± 0.001 0.450 ± 0.001 0.370 ± 0.127 - -
batched grad_sum_batched_matmul_backward f64 4 16x16xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.324 ± 0.004 4.188 ± 0.041 2.370 ± 0.403 - -
batched grad_sum_batched_matmul_backward f64 4 16x16xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.026 ± 0.000 0.102 ± 0.001 0.029 ± 0.002 - -
batched grad_sum_batched_matmul_backward f64 4 16x16xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.331 ± 0.000 1.051 ± 0.010 0.483 ± 0.141 - -
batched grad_sum_batched_matmul_backward f64 4 16x16xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.084 ± 0.000 0.293 ± 0.003 0.102 ± 0.009 - -
batched grad_sum_batched_matmul_backward f64 4 2x2xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.152 ± 0.000 0.075 ± 0.000 0.018 ± 0.003 - -
batched grad_sum_batched_matmul_backward f64 4 2x2xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.009 ± 0.000 0.041 ± 0.000 0.006 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 4 2x2xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.043 ± 0.000 0.049 ± 0.001 0.011 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 4 2x2xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.015 ± 0.000 0.042 ± 0.000 0.008 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 4 4x4xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.188 ± 0.000 0.129 ± 0.008 0.335 ± 0.014 - -
batched grad_sum_batched_matmul_backward f64 4 4x4xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.009 ± 0.000 0.043 ± 0.000 0.009 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 4 4x4xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.052 ± 0.000 0.086 ± 0.000 0.084 ± 0.002 - -
batched grad_sum_batched_matmul_backward f64 4 4x4xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.018 ± 0.000 0.052 ± 0.000 0.026 ± 0.002 - -
batched grad_sum_batched_matmul_backward f64 4 8x8xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.371 ± 0.001 2.796 ± 0.011 0.741 ± 0.088 - -
batched grad_sum_batched_matmul_backward f64 4 8x8xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.012 ± 0.000 0.086 ± 0.000 0.013 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 4 8x8xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.094 ± 0.000 0.729 ± 0.005 0.151 ± 0.011 - -
batched grad_sum_batched_matmul_backward f64 4 8x8xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.028 ± 0.000 0.215 ± 0.001 0.043 ± 0.005 - -
batched grad_sum_batched_solve_backward f64 4 16x16xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.109 ± 0.004 0.758 ± 0.018 2.579 ± 1.038 - -
batched grad_sum_batched_solve_backward f64 4 16x16xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.030 ± 0.000 0.051 ± 0.001 0.043 ± 0.003 - -
batched grad_sum_batched_solve_backward f64 4 16x16xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.289 ± 0.001 0.264 ± 0.038 0.605 ± 0.109 - -
batched grad_sum_batched_solve_backward f64 4 16x16xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.084 ± 0.000 0.113 ± 0.005 0.162 ± 0.013 - -
batched grad_sum_batched_solve_backward f64 4 2x2xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.143 ± 0.000 0.082 ± 0.002 0.304 ± 0.030 - -
batched grad_sum_batched_solve_backward f64 4 2x2xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.015 ± 0.000 0.030 ± 0.000 0.011 ± 0.000 - -
batched grad_sum_batched_solve_backward f64 4 2x2xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.045 ± 0.000 0.043 ± 0.000 0.071 ± 0.002 - -
batched grad_sum_batched_solve_backward f64 4 2x2xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.021 ± 0.000 0.032 ± 0.000 0.024 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 4 4x4xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.183 ± 0.001 0.138 ± 0.001 0.421 ± 0.020 - -
batched grad_sum_batched_solve_backward f64 4 4x4xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.015 ± 0.000 0.031 ± 0.000 0.012 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 4 4x4xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.054 ± 0.000 0.057 ± 0.001 0.104 ± 0.002 - -
batched grad_sum_batched_solve_backward f64 4 4x4xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.023 ± 0.000 0.037 ± 0.000 0.034 ± 0.004 - -
batched grad_sum_batched_solve_backward f64 4 8x8xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.525 ± 0.006 0.352 ± 0.014 0.857 ± 0.091 - -
batched grad_sum_batched_solve_backward f64 4 8x8xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.021 ± 0.000 0.036 ± 0.000 0.019 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 4 8x8xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.142 ± 0.001 0.140 ± 0.002 0.200 ± 0.014 - -
batched grad_sum_batched_solve_backward f64 4 8x8xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.044 ± 0.000 0.058 ± 0.001 0.052 ± 0.002 - -
large eigh f64 4 1024x1024 - 52.239 ± 0.156 72.046 ± 63.409 173.494 ± 25.617 107.516 ± 34.197 - -
large eigh f64 4 128x128 - 1.999 ± 0.008 0.846 ± 0.001 0.647 ± 33.494 1.443 ± 32.027 - -
large eigh f64 4 256x256 - 2.324 ± 0.005 2.315 ± 0.004 1.804 ± 88.930 11.782 ± 4.102 - -
large eigh f64 4 512x512 - 9.133 ± 0.028 9.431 ± 0.032 14.076 ± 0.043 64.720 ± 95.989 - -
large eigh f64 4 64x64 - 0.111 ± 0.000 0.110 ± 0.001 0.121 ± 0.006 0.202 ± 0.004 - -
large grad_sum_eigh_jvp f64 4 1024x1024 - - 65.816 ± 3.257 89.330 ± 1.765 105.188 ± 6.386 - -
large grad_sum_eigh_jvp f64 4 256x256 - - 11.288 ± 0.060 2.371 ± 0.015 4.329 ± 0.250 - -
large grad_sum_eigh_jvp f64 4 512x512 - - 31.235 ± 0.298 14.159 ± 0.046 21.770 ± 2.478 - -
large grad_sum_eigh_vjp f64 4 1024x1024 - - 68.289 ± 0.484 60.836 ± 0.348 107.397 ± 5.921 - -
large grad_sum_eigh_vjp f64 4 256x256 - - 5.192 ± 0.017 2.055 ± 0.012 4.185 ± 0.237 - -
large grad_sum_eigh_vjp f64 4 512x512 - - 11.145 ± 3.104 11.005 ± 0.052 21.794 ± 3.088 - -
large grad_sum_lu_jvp f64 4 1024x1024 - - 49.739 ± 0.263 115.178 ± 0.901 84.976 ± 6.681 - -
large grad_sum_lu_jvp f64 4 256x256 - - 3.988 ± 0.017 2.229 ± 0.032 2.356 ± 0.490 - -
large grad_sum_lu_jvp f64 4 512x512 - - 9.787 ± 0.070 18.516 ± 0.194 14.852 ± 2.703 - -
large grad_sum_lu_vjp f64 4 1024x1024 - - 51.512 ± 0.269 55.290 ± 0.343 80.030 ± 6.903 - -
large grad_sum_lu_vjp f64 4 256x256 - - 2.527 ± 0.015 1.082 ± 0.020 1.845 ± 0.322 - -
large grad_sum_lu_vjp f64 4 512x512 - - 7.225 ± 0.090 8.289 ± 0.085 12.981 ± 2.093 - -
large grad_sum_matmul f64 4 1024x1024 - 18.500 ± 0.448 9.685 ± 0.053 11.934 ± 0.133 9.044 ± 0.230 - -
large grad_sum_matmul f64 4 128x128 - 0.040 ± 0.000 0.027 ± 0.000 0.060 ± 0.012 0.073 ± 0.017 - -
large grad_sum_matmul f64 4 256x256 - 0.632 ± 0.138 0.371 ± 0.001 0.273 ± 0.033 0.368 ± 0.066 - -
large grad_sum_matmul f64 4 512x512 - 2.775 ± 0.482 1.359 ± 0.005 2.687 ± 0.203 1.900 ± 0.312 - -
large grad_sum_matmul f64 4 64x64 - 0.016 ± 0.001 0.009 ± 0.000 0.011 ± 0.002 0.021 ± 0.003 - -
large grad_sum_matmul_backward f64 4 1024x1024 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 28.947 ± 0.197 34.022 ± 0.251 26.247 ± 1.520 - -
large grad_sum_matmul_backward f64 4 128x128 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.090 ± 0.001 0.138 ± 0.009 0.142 ± 0.014 - -
large grad_sum_matmul_backward f64 4 256x256 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.225 ± 0.332 0.697 ± 0.057 0.656 ± 0.057 - -
large grad_sum_matmul_backward f64 4 512x512 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 3.753 ± 0.084 5.702 ± 0.483 4.590 ± 0.794 - -
large grad_sum_matmul_backward f64 4 64x64 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.026 ± 0.000 0.045 ± 0.001 0.040 ± 0.002 - -
large grad_sum_qr_jvp f64 4 1024x1024 - - 70.481 ± 39.705 73.734 ± 0.357 122.938 ± 14.901 - -
large grad_sum_qr_jvp f64 4 256x256 - - 7.221 ± 0.043 1.668 ± 0.008 3.324 ± 0.759 - -
large grad_sum_qr_jvp f64 4 512x512 - - 11.850 ± 0.044 12.310 ± 0.039 18.769 ± 3.611 - -
large grad_sum_qr_vjp f64 4 1024x1024 - - 69.388 ± 1.124 72.653 ± 0.361 112.952 ± 6.229 - -
large grad_sum_qr_vjp f64 4 256x256 - - 8.337 ± 1.216 1.795 ± 0.037 3.417 ± 0.476 - -
large grad_sum_qr_vjp f64 4 512x512 - - 10.644 ± 0.059 13.951 ± 0.067 19.929 ± 4.984 - -
large grad_sum_solve_backward f64 4 1024x1024,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 5.388 ± 0.028 15.820 ± 9.857 10.721 ± 1.247 - -
large grad_sum_solve_backward f64 4 128x128,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.083 ± 0.000 0.109 ± 0.003 0.090 ± 0.003 - -
large grad_sum_solve_backward f64 4 256x256,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.386 ± 0.004 27.962 ± 1.981 2.977 ± 0.035 - -
large grad_sum_solve_backward f64 4 512x512,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 2.097 ± 0.003 29.917 ± 84.974 3.422 ± 133.162 - -
large grad_sum_solve_backward f64 4 64x64,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.029 ± 0.000 0.046 ± 0.000 0.033 ± 0.004 - -
large grad_sum_solve_jvp f64 4 1024x1024,rhs=1 - - 8.963 ± 0.091 5.662 ± 0.070 9.059 ± 0.308 - -
large grad_sum_solve_jvp f64 4 256x256,rhs=1 - - 0.453 ± 0.006 0.295 ± 0.068 0.298 ± 0.010 - -
large grad_sum_solve_jvp f64 4 512x512,rhs=1 - - 0.928 ± 0.004 1.121 ± 2.991 1.635 ± 0.013 - -
large grad_sum_solve_vjp f64 4 1024x1024,rhs=1 - - 9.737 ± 0.186 10.406 ± 0.089 8.167 ± 0.046 - -
large grad_sum_solve_vjp f64 4 256x256,rhs=1 - - 0.447 ± 0.003 0.344 ± 0.009 0.315 ± 0.011 - -
large grad_sum_solve_vjp f64 4 512x512,rhs=1 - - 0.901 ± 0.002 1.677 ± 2.995 1.663 ± 0.009 - -
large grad_sum_svd_s_backward f64 4 1024x1024 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 138.216 ± 0.749 163.152 ± 1.577 216.289 ± 6.338 - -
large grad_sum_svd_s_backward f64 4 128x128 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.637 ± 0.232 1.322 ± 0.059 1.580 ± 0.022 - -
large grad_sum_svd_s_backward f64 4 256x256 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 10.733 ± 0.138 6.443 ± 0.028 7.391 ± 0.170 - -
large grad_sum_svd_s_backward f64 4 512x512 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 26.299 ± 0.598 36.495 ± 0.701 43.972 ± 2.026 - -
large grad_sum_svd_s_backward f64 4 64x64 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.286 ± 0.001 0.331 ± 0.009 0.320 ± 0.263 - -
large grad_sum_svd_s_jvp f64 4 1024x1024 - - 137.813 ± 0.616 191.763 ± 1.988 214.261 ± 5.431 - -
large grad_sum_svd_s_jvp f64 4 256x256 - - 5.343 ± 0.010 6.379 ± 0.020 7.250 ± 0.131 - -
large grad_sum_svd_s_jvp f64 4 512x512 - - 26.240 ± 0.117 34.944 ± 0.152 43.837 ± 2.596 - -
large grad_sum_svd_s_vjp f64 4 1024x1024 - - 138.654 ± 0.909 151.604 ± 1.104 215.124 ± 12.100 - -
large grad_sum_svd_s_vjp f64 4 256x256 - - 6.016 ± 0.236 5.880 ± 0.013 7.402 ± 0.099 - -
large grad_sum_svd_s_vjp f64 4 512x512 - - 26.587 ± 0.321 31.007 ± 0.125 43.314 ± 1.597 - -
large matmul f64 4 1024x1024 - 9.160 ± 0.059 9.164 ± 0.024 10.184 ± 0.112 8.511 ± 0.216 - -
large matmul f64 4 128x128 - 0.026 ± 0.000 0.023 ± 0.000 0.069 ± 0.010 0.069 ± 0.009 - -
large matmul f64 4 256x256 - 0.147 ± 0.000 0.140 ± 0.001 0.327 ± 0.043 0.343 ± 0.076 - -
large matmul f64 4 512x512 - 1.138 ± 0.003 1.209 ± 0.004 2.162 ± 0.162 1.779 ± 0.237 - -
large matmul_rect f64 4 1024x256 * 256x1024 - 2.321 ± 0.027 2.304 ± 0.033 3.297 ± 0.262 2.794 ± 0.235 - -
large matmul_rect f64 4 256x1024 * 1024x256 - 0.542 ± 0.005 0.543 ± 0.004 1.423 ± 0.401 1.275 ± 0.318 - -
large qr f64 4 1024x1024 - 23.604 ± 0.166 23.240 ± 0.252 26.087 ± 0.237 35.896 ± 0.969 - -
large qr f64 4 128x128 - 0.341 ± 0.000 0.647 ± 0.001 0.207 ± 0.010 0.334 ± 0.003 - -
large qr f64 4 256x256 - 1.219 ± 0.532 1.221 ± 0.002 0.935 ± 0.018 1.320 ± 0.013 - -
large qr f64 4 512x512 - 4.998 ± 0.021 4.703 ± 0.319 5.649 ± 0.104 7.407 ± 0.263 - -
large qr f64 4 64x64 - 0.065 ± 0.000 0.053 ± 0.000 0.060 ± 0.001 0.052 ± 0.004 - -
large solve f64 4 1024x1024,rhs=1 - 4.041 ± 0.083 8.149 ± 2.944 11.897 ± 0.880 21.754 ± 136.856 - -
large solve f64 4 1024x1024,rhs=16 - 4.718 ± 0.040 4.901 ± 0.048 19.635 ± 1.810 11.466 ± 122.622 - -
large solve f64 4 1024x1024,rhs=64 - 5.184 ± 0.066 5.418 ± 0.031 13.588 ± 22.935 12.290 ± 114.356 - -
large solve f64 4 128x128,rhs=1 - 0.061 ± 0.000 0.496 ± 0.001 0.070 ± 0.001 0.071 ± 0.002 - -
large solve f64 4 128x128,rhs=16 - 0.097 ± 0.000 0.508 ± 0.002 9.691 ± 6.996 12.517 ± 1.999 - -
large solve f64 4 128x128,rhs=64 - 0.127 ± 0.001 0.526 ± 0.003 11.945 ± 2.785 1.765 ± 2.053 - -
large solve f64 4 256x256,rhs=1 - 0.131 ± 0.001 0.567 ± 0.001 21.984 ± 1.007 2.183 ± 32.431 - -
large solve f64 4 256x256,rhs=16 - 0.161 ± 0.003 0.595 ± 0.004 32.507 ± 2.987 3.299 ± 11.951 - -
large solve f64 4 256x256,rhs=64 - 0.207 ± 0.001 0.863 ± 0.007 32.015 ± 1.999 1.988 ± 1.228 - -
large solve f64 4 512x512,rhs=1 - 0.637 ± 0.015 1.091 ± 0.013 108.948 ± 16.968 2.472 ± 108.453 - -
large solve f64 4 512x512,rhs=16 - 0.757 ± 0.021 1.228 ± 0.025 0.985 ± 0.026 19.890 ± 125.291 - -
large solve f64 4 512x512,rhs=64 - 0.897 ± 0.014 1.803 ± 0.020 2.779 ± 111.031 18.973 ± 115.392 - -
large solve f64 4 64x64,rhs=1 - 0.017 ± 0.000 0.018 ± 0.000 0.021 ± 0.000 0.024 ± 0.002 - -
large solve f64 4 64x64,rhs=16 - 0.021 ± 0.000 0.022 ± 0.000 0.025 ± 0.001 0.041 ± 0.002 - -
large solve f64 4 64x64,rhs=64 - 0.027 ± 0.000 0.028 ± 0.000 0.035 ± 0.000 0.055 ± 0.001 - -
large svd f64 4 1024x1024 - 120.947 ± 1.855 120.536 ± 1.864 137.008 ± 1.394 169.836 ± 2.275 - -
large svd f64 4 128x128 - 1.242 ± 0.005 1.441 ± 0.005 1.143 ± 0.022 1.288 ± 0.005 - -
large svd f64 4 256x256 - 8.010 ± 0.056 5.262 ± 0.057 5.761 ± 0.021 6.031 ± 0.138 - -
large svd f64 4 512x512 - 23.680 ± 0.198 23.883 ± 0.207 25.482 ± 0.269 36.666 ± 0.208 - -
large svd f64 4 64x64 - 0.265 ± 0.001 0.264 ± 0.003 0.284 ± 0.002 0.306 ± 0.401 - -
small eigh f64 4 16x16 - 0.013 ± 0.000 0.012 ± 0.000 0.013 ± 0.000 0.017 ± 0.000 - -
small eigh f64 4 2x2 - 0.003 ± 0.000 0.003 ± 0.000 0.003 ± 0.000 0.005 ± 0.000 - -
small eigh f64 4 32x32 - 0.042 ± 0.000 0.041 ± 0.000 0.045 ± 0.000 0.054 ± 0.003 - -
small eigh f64 4 4x4 - 0.004 ± 0.000 0.004 ± 0.000 0.004 ± 0.000 0.005 ± 0.000 - -
small eigh f64 4 8x8 - 0.006 ± 0.000 0.005 ± 0.000 0.006 ± 0.000 0.008 ± 0.000 - -
small einsum_ij_jk_ik f64 4 16x16 - 0.003 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 0.057 ± 0.001 - -
small einsum_ij_jk_ik f64 4 2x2 - 0.003 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 0.055 ± 0.001 - -
small einsum_ij_jk_ik f64 4 32x32 - 0.005 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 0.058 ± 0.001 - -
small einsum_ij_jk_ik f64 4 4x4 - 0.003 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 0.055 ± 0.000 - -
small einsum_ij_jk_ik f64 4 8x8 - 0.002 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 0.056 ± 0.001 - -
small grad_sum_eigh_jvp f64 4 16x16 - - 0.021 ± 0.000 0.061 ± 0.001 0.017 ± 0.000 - -
small grad_sum_eigh_jvp f64 4 2x2 - - 0.012 ± 0.000 0.049 ± 0.001 0.005 ± 0.000 - -
small grad_sum_eigh_jvp f64 4 32x32 - - 0.054 ± 0.000 0.098 ± 0.001 0.052 ± 0.005 - -
small grad_sum_eigh_jvp f64 4 4x4 - - 0.012 ± 0.000 0.049 ± 0.001 0.006 ± 0.000 - -
small grad_sum_eigh_jvp f64 4 8x8 - - 0.014 ± 0.000 0.052 ± 0.001 0.006 ± 0.000 - -
small grad_sum_eigh_vjp f64 4 16x16 - - 0.021 ± 0.000 0.052 ± 0.000 0.017 ± 0.000 - -
small grad_sum_eigh_vjp f64 4 2x2 - - 0.011 ± 0.000 0.041 ± 0.000 0.005 ± 0.000 - -
small grad_sum_eigh_vjp f64 4 32x32 - - 0.054 ± 0.000 0.086 ± 0.000 0.051 ± 0.000 - -
small grad_sum_eigh_vjp f64 4 4x4 - - 0.012 ± 0.000 0.042 ± 0.000 0.006 ± 0.000 - -
small grad_sum_eigh_vjp f64 4 8x8 - - 0.014 ± 0.000 0.045 ± 0.000 0.007 ± 0.000 - -
small grad_sum_lu_jvp f64 4 16x16 - - 0.017 ± 0.000 0.087 ± 0.001 0.008 ± 0.000 - -
small grad_sum_lu_jvp f64 4 2x2 - - 0.014 ± 0.000 0.082 ± 0.001 0.005 ± 0.000 - -
small grad_sum_lu_jvp f64 4 32x32 - - 0.030 ± 0.000 0.108 ± 0.001 0.021 ± 0.018 - -
small grad_sum_lu_jvp f64 4 4x4 - - 0.014 ± 0.000 0.081 ± 0.001 0.006 ± 0.000 - -
small grad_sum_lu_jvp f64 4 8x8 - - 0.015 ± 0.000 0.083 ± 0.001 0.009 ± 0.000 - -
small grad_sum_lu_vjp f64 4 16x16 - - 0.016 ± 0.000 0.069 ± 0.001 0.008 ± 0.000 - -
small grad_sum_lu_vjp f64 4 2x2 - - 0.013 ± 0.000 0.065 ± 0.001 0.005 ± 0.000 - -
small grad_sum_lu_vjp f64 4 32x32 - - 0.037 ± 0.000 0.083 ± 0.001 0.025 ± 0.015 - -
small grad_sum_lu_vjp f64 4 4x4 - - 0.013 ± 0.000 0.065 ± 0.001 0.006 ± 0.000 - -
small grad_sum_lu_vjp f64 4 8x8 - - 0.014 ± 0.000 0.066 ± 0.000 0.008 ± 0.000 - -
small grad_sum_matmul_backward f64 4 16x16 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.007 ± 0.000 0.018 ± 0.000 0.009 ± 0.000 - -
small grad_sum_matmul_backward f64 4 2x2 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.006 ± 0.000 0.016 ± 0.000 0.006 ± 0.000 - -
small grad_sum_matmul_backward f64 4 32x32 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.013 ± 0.000 0.025 ± 0.001 0.011 ± 0.001 - -
small grad_sum_matmul_backward f64 4 4x4 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.006 ± 0.000 0.017 ± 0.000 0.006 ± 0.000 - -
small grad_sum_matmul_backward f64 4 8x8 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.006 ± 0.000 0.017 ± 0.000 0.007 ± 0.000 - -
small grad_sum_qr_jvp f64 4 16x16 - - 0.024 ± 0.000 0.064 ± 0.001 0.008 ± 0.000 - -
small grad_sum_qr_jvp f64 4 2x2 - - 0.021 ± 0.000 0.058 ± 0.001 0.005 ± 0.000 - -
small grad_sum_qr_jvp f64 4 32x32 - - 0.040 ± 0.000 0.078 ± 0.001 0.046 ± 0.125 - -
small grad_sum_qr_jvp f64 4 4x4 - - 0.021 ± 0.000 0.056 ± 0.001 0.006 ± 0.000 - -
small grad_sum_qr_jvp f64 4 8x8 - - 0.021 ± 0.000 0.059 ± 0.001 0.008 ± 0.000 - -
small grad_sum_qr_vjp f64 4 16x16 - - 0.024 ± 0.000 0.067 ± 0.002 0.007 ± 0.000 - -
small grad_sum_qr_vjp f64 4 2x2 - - 0.020 ± 0.000 0.059 ± 0.000 0.005 ± 0.000 - -
small grad_sum_qr_vjp f64 4 32x32 - - 0.039 ± 0.000 0.080 ± 0.001 0.024 ± 0.006 - -
small grad_sum_qr_vjp f64 4 4x4 - - 0.020 ± 0.000 0.059 ± 0.001 0.006 ± 0.000 - -
small grad_sum_qr_vjp f64 4 8x8 - - 0.021 ± 0.000 0.061 ± 0.000 0.007 ± 0.000 - -
small grad_sum_solve_backward f64 4 16x16,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.013 ± 0.000 0.028 ± 0.000 0.009 ± 0.000 - -
small grad_sum_solve_backward f64 4 2x2,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.012 ± 0.000 0.026 ± 0.000 0.006 ± 0.000 - -
small grad_sum_solve_backward f64 4 32x32,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.017 ± 0.000 0.032 ± 0.000 0.012 ± 0.001 - -
small grad_sum_solve_backward f64 4 4x4,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.012 ± 0.000 0.026 ± 0.000 0.008 ± 0.000 - -
small grad_sum_solve_backward f64 4 8x8,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.012 ± 0.000 0.027 ± 0.000 0.008 ± 0.001 - -
small grad_sum_solve_jvp f64 4 16x16,rhs=1 - - 0.010 ± 0.000 0.130 ± 0.002 0.007 ± 0.000 - -
small grad_sum_solve_jvp f64 4 2x2,rhs=1 - - 0.009 ± 0.000 0.129 ± 0.001 0.005 ± 0.000 - -
small grad_sum_solve_jvp f64 4 32x32,rhs=1 - - 0.014 ± 0.000 0.136 ± 0.001 0.007 ± 0.000 - -
small grad_sum_solve_jvp f64 4 4x4,rhs=1 - - 0.009 ± 0.000 0.128 ± 0.001 0.005 ± 0.000 - -
small grad_sum_solve_jvp f64 4 8x8,rhs=1 - - 0.009 ± 0.000 0.130 ± 0.001 0.006 ± 0.000 - -
small grad_sum_solve_vjp f64 4 16x16,rhs=1 - - 0.010 ± 0.000 0.057 ± 0.000 0.008 ± 0.000 - -
small grad_sum_solve_vjp f64 4 2x2,rhs=1 - - 0.009 ± 0.000 0.056 ± 0.001 0.006 ± 0.000 - -
small grad_sum_solve_vjp f64 4 32x32,rhs=1 - - 0.014 ± 0.000 0.064 ± 0.000 0.008 ± 0.000 - -
small grad_sum_solve_vjp f64 4 4x4,rhs=1 - - 0.009 ± 0.000 0.055 ± 0.000 0.006 ± 0.000 - -
small grad_sum_solve_vjp f64 4 8x8,rhs=1 - - 0.009 ± 0.000 0.057 ± 0.001 0.006 ± 0.000 - -
small grad_sum_svd_s_backward f64 4 16x16 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.028 ± 0.000 0.042 ± 0.000 0.029 ± 0.001 - -
small grad_sum_svd_s_backward f64 4 2x2 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.007 ± 0.000 0.019 ± 0.000 0.005 ± 0.000 - -
small grad_sum_svd_s_backward f64 4 32x32 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.084 ± 0.000 0.106 ± 0.001 0.083 ± 0.005 - -
small grad_sum_svd_s_backward f64 4 4x4 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.009 ± 0.000 0.021 ± 0.000 0.007 ± 0.000 - -
small grad_sum_svd_s_backward f64 4 8x8 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.014 ± 0.000 0.026 ± 0.000 0.011 ± 0.001 - -
small grad_sum_svd_s_jvp f64 4 16x16 - - 0.029 ± 0.000 0.101 ± 0.001 0.026 ± 0.000 - -
small grad_sum_svd_s_jvp f64 4 2x2 - - 0.008 ± 0.000 0.075 ± 0.001 0.005 ± 0.000 - -
small grad_sum_svd_s_jvp f64 4 32x32 - - 0.085 ± 0.000 0.172 ± 0.002 0.077 ± 0.000 - -
small grad_sum_svd_s_jvp f64 4 4x4 - - 0.010 ± 0.000 0.074 ± 0.001 0.007 ± 0.000 - -
small grad_sum_svd_s_jvp f64 4 8x8 - - 0.015 ± 0.000 0.079 ± 0.009 0.009 ± 0.001 - -
small grad_sum_svd_s_vjp f64 4 16x16 - - 0.028 ± 0.000 0.070 ± 0.001 0.026 ± 0.000 - -
small grad_sum_svd_s_vjp f64 4 2x2 - - 0.008 ± 0.000 0.046 ± 0.000 0.005 ± 0.000 - -
small grad_sum_svd_s_vjp f64 4 32x32 - - 0.084 ± 0.000 0.133 ± 0.001 0.077 ± 0.000 - -
small grad_sum_svd_s_vjp f64 4 4x4 - - 0.009 ± 0.000 0.047 ± 0.000 0.007 ± 0.000 - -
small grad_sum_svd_s_vjp f64 4 8x8 - - 0.014 ± 0.000 0.054 ± 0.001 0.009 ± 0.001 - -
small matmul f64 4 16x16 - 0.003 ± 0.000 0.003 ± 0.000 0.002 ± 0.000 0.005 ± 0.000 - -
small matmul f64 4 2x2 - 0.002 ± 0.000 0.002 ± 0.000 0.001 ± 0.000 0.005 ± 0.000 - -
small matmul f64 4 32x32 - 0.004 ± 0.000 0.004 ± 0.000 0.005 ± 0.001 0.006 ± 0.000 - -
small matmul f64 4 4x4 - 0.002 ± 0.000 0.002 ± 0.000 0.001 ± 0.000 0.005 ± 0.000 - -
small matmul f64 4 64x64 - 0.044 ± 0.000 0.008 ± 0.018 0.016 ± 0.003 0.020 ± 0.002 - -
small matmul f64 4 8x8 - 0.002 ± 0.000 0.002 ± 0.000 0.001 ± 0.000 0.005 ± 0.000 - -
small qr f64 4 16x16 - 0.005 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 - -
small qr f64 4 2x2 - 0.003 ± 0.000 0.003 ± 0.000 0.003 ± 0.000 0.005 ± 0.000 - -
small qr f64 4 32x32 - 0.011 ± 0.000 0.010 ± 0.000 0.013 ± 0.000 0.017 ± 0.001 - -
small qr f64 4 4x4 - 0.003 ± 0.000 0.003 ± 0.000 0.003 ± 0.000 0.005 ± 0.000 - -
small qr f64 4 8x8 - 0.004 ± 0.000 0.003 ± 0.000 0.003 ± 0.000 0.006 ± 0.000 - -
small solve f64 4 16x16,rhs=1 - 0.004 ± 0.000 0.004 ± 0.000 0.008 ± 0.000 0.006 ± 0.000 - -
small solve f64 4 16x16,rhs=4 - 0.004 ± 0.000 0.005 ± 0.000 0.008 ± 0.000 0.005 ± 0.000 - -
small solve f64 4 2x2,rhs=1 - 0.003 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 4 2x2,rhs=4 - 0.003 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 4 32x32,rhs=1 - 0.007 ± 0.000 0.008 ± 0.000 0.011 ± 0.000 0.008 ± 0.002 - -
small solve f64 4 32x32,rhs=4 - 0.009 ± 0.000 0.010 ± 0.000 0.013 ± 0.000 0.013 ± 0.001 - -
small solve f64 4 4x4,rhs=1 - 0.003 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.006 ± 0.000 - -
small solve f64 4 4x4,rhs=4 - 0.003 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 4 8x8,rhs=1 - 0.003 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small solve f64 4 8x8,rhs=4 - 0.003 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 0.005 ± 0.000 - -
small svd f64 4 16x16 - 0.024 ± 0.000 0.023 ± 0.000 0.025 ± 0.000 0.028 ± 0.000 - -
small svd f64 4 2x2 - 0.004 ± 0.000 0.004 ± 0.000 0.004 ± 0.000 0.006 ± 0.000 - -
small svd f64 4 32x32 - 0.078 ± 0.000 0.076 ± 0.000 0.087 ± 0.001 0.084 ± 0.009 - -
small svd f64 4 4x4 - 0.006 ± 0.000 0.005 ± 0.000 0.006 ± 0.000 0.007 ± 0.000 - -
small svd f64 4 8x8 - 0.010 ± 0.000 0.010 ± 0.000 0.010 ± 0.000 0.011 ± 0.000 - -

Cross-Backend Spread Audit

Rows with a successful cell more than 10x faster than the slowest successful cell are flagged for operation-specific review. This cross-backend spread check is a warning, not a correctness verdict.

Physical Bound Audit

This independent check derives minimum logical bytes from dtype and shape for materializing public API operations, plus conservative operation FLOPs for reductions, Frobenius norms, matrix products, triangular solves, and recognized dense linalg families. Decorated shapes (->, rhs=, and +) are parsed explicitly. Operations whose touched region cannot be inferred conservatively from the reported shape are left unmodeled. It assumes at most 100 GB/s and 50 GFLOP/s per requested CPU thread, capped at 1000 GB/s and 3200 GFLOP/s. A cell more than 10x faster than the resulting lower bound is flagged. These deliberately generous ceilings are a sanity screen, not a performance gate.

No cell exceeded the conservative physical bound by more than 10x.

Threads: 8

Source report: data/results/zen5-cpu/cpu/einsum/20261028_001612/cpu_ops_report.md.

Latest run: ./scripts/run_all.sh 8.

This file is generated from one CPU ops run under data/results/zen5-cpu/cpu/einsum/20261028_001612.

CPU Information

Thread Environment

Tenferro CPU BLAS Backend

Python Backend Providers

CPU Benchmark Items

Small rows use time/memory-bounded batches, normalized per operation. Tenferro eager/trace share a CPU execution scope outside timing. Eager primal rows reuse a borrowed session entered before sampling; eager backward rows without a borrowed-session API are unsupported. Raw JSONL records contain batch durations and operation counts.

Median ± IQR (ms). Missing backends are shown as -.

suite benchmark dtype threads shape tenferro-rs direct API (ms) tenferro-rs eager mode (ms) tenferro-rs trace mode (ms) PyTorch Python (ms) JAX Python (XLA CPU) (ms) Julia (Base/LinearAlgebra) (ms) Julia (Strided.jl) (ms)
batched batched_eigh f64 8 16x16xbatch1024 (native batch layout) - 15.622 ± 0.024 15.631 ± 0.015 16.334 ± 0.020 6.655 ± 1.787 - -
batched batched_eigh f64 8 16x16xbatch16 (native batch layout) - 0.237 ± 0.001 0.237 ± 0.000 0.245 ± 0.001 0.247 ± 0.008 - -
batched batched_eigh f64 8 16x16xbatch256 (native batch layout) - 3.907 ± 0.006 3.892 ± 0.004 4.096 ± 0.009 1.620 ± 0.058 - -
batched batched_eigh f64 8 16x16xbatch64 (native batch layout) - 0.956 ± 0.001 0.961 ± 0.003 1.007 ± 0.003 0.388 ± 0.024 - -
batched batched_eigh f64 8 2x2xbatch1024 (native batch layout) - 0.464 ± 0.001 0.466 ± 0.001 0.305 ± 0.001 0.269 ± 0.006 - -
batched batched_eigh f64 8 2x2xbatch16 (native batch layout) - 0.012 ± 0.000 0.012 ± 0.000 0.010 ± 0.000 0.011 ± 0.000 - -
batched batched_eigh f64 8 2x2xbatch256 (native batch layout) - 0.121 ± 0.000 0.120 ± 0.000 0.080 ± 0.001 0.070 ± 0.002 - -
batched batched_eigh f64 8 2x2xbatch64 (native batch layout) - 0.034 ± 0.000 0.033 ± 0.000 0.024 ± 0.000 0.021 ± 0.000 - -
batched batched_eigh f64 8 4x4xbatch1024 (native batch layout) - 1.784 ± 0.005 1.794 ± 0.003 1.558 ± 0.003 1.150 ± 0.041 - -
batched batched_eigh f64 8 4x4xbatch16 (native batch layout) - 0.033 ± 0.000 0.032 ± 0.000 0.029 ± 0.000 0.032 ± 0.000 - -
batched batched_eigh f64 8 4x4xbatch256 (native batch layout) - 0.452 ± 0.000 0.451 ± 0.001 0.393 ± 0.001 0.424 ± 0.005 - -
batched batched_eigh f64 8 4x4xbatch64 (native batch layout) - 0.116 ± 0.000 0.116 ± 0.000 0.102 ± 0.001 0.110 ± 0.004 - -
batched batched_eigh f64 8 8x8xbatch1024 (native batch layout) - 4.865 ± 0.018 4.847 ± 0.004 4.737 ± 0.010 2.275 ± 0.065 - -
batched batched_eigh f64 8 8x8xbatch16 (native batch layout) - 0.080 ± 0.000 0.079 ± 0.000 0.078 ± 0.000 0.095 ± 0.005 - -
batched batched_eigh f64 8 8x8xbatch256 (native batch layout) - 1.217 ± 0.001 1.223 ± 0.001 1.186 ± 0.002 0.677 ± 0.063 - -
batched batched_eigh f64 8 8x8xbatch64 (native batch layout) - 0.307 ± 0.001 0.307 ± 0.001 0.300 ± 0.001 0.362 ± 0.018 - -
batched batched_matmul_ikb_kjb_ijb f64 8 16x16xbatch1024 (native batch layout) - 0.589 ± 0.002 0.607 ± 0.003 0.236 ± 0.009 1.382 ± 0.267 - -
batched batched_matmul_ikb_kjb_ijb f64 8 16x16xbatch16 (native batch layout) - 0.016 ± 0.001 0.013 ± 0.000 0.015 ± 0.000 0.095 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 16x16xbatch256 (native batch layout) - 0.170 ± 0.001 0.149 ± 0.001 0.074 ± 0.003 0.282 ± 0.021 - -
batched batched_matmul_ikb_kjb_ijb f64 8 16x16xbatch64 (native batch layout) - 0.047 ± 0.002 0.040 ± 0.000 0.029 ± 0.001 0.105 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 2x2xbatch1024 (native batch layout) - 0.076 ± 0.000 0.077 ± 0.000 0.027 ± 0.001 0.095 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 2x2xbatch16 (native batch layout) - 0.005 ± 0.000 0.005 ± 0.000 0.009 ± 0.000 0.089 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 2x2xbatch256 (native batch layout) - 0.022 ± 0.000 0.022 ± 0.000 0.014 ± 0.000 0.092 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 2x2xbatch64 (native batch layout) - 0.008 ± 0.000 0.008 ± 0.000 0.010 ± 0.000 0.091 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 4x4xbatch1024 (native batch layout) - 0.093 ± 0.001 0.092 ± 0.000 0.055 ± 0.004 0.183 ± 0.008 - -
batched batched_matmul_ikb_kjb_ijb f64 8 4x4xbatch16 (native batch layout) - 0.005 ± 0.000 0.005 ± 0.000 0.010 ± 0.000 0.091 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 4x4xbatch256 (native batch layout) - 0.026 ± 0.000 0.026 ± 0.000 0.033 ± 0.001 0.095 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 4x4xbatch64 (native batch layout) - 0.009 ± 0.000 0.009 ± 0.000 0.015 ± 0.000 0.092 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 8x8xbatch1024 (native batch layout) - 0.161 ± 0.001 0.160 ± 0.000 0.071 ± 0.003 0.364 ± 0.028 - -
batched batched_matmul_ikb_kjb_ijb f64 8 8x8xbatch16 (native batch layout) - 0.006 ± 0.000 0.006 ± 0.000 0.012 ± 0.000 0.092 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 8x8xbatch256 (native batch layout) - 0.044 ± 0.001 0.043 ± 0.000 0.027 ± 0.001 0.106 ± 0.001 - -
batched batched_matmul_ikb_kjb_ijb f64 8 8x8xbatch64 (native batch layout) - 0.014 ± 0.000 0.013 ± 0.000 0.015 ± 0.000 0.095 ± 0.002 - -
batched batched_qr f64 8 16x16xbatch1024 (native batch layout) - 3.235 ± 0.007 3.237 ± 0.008 3.419 ± 0.015 1.762 ± 0.056 - -
batched batched_qr f64 8 16x16xbatch16 (native batch layout) - 0.059 ± 0.000 0.056 ± 0.000 0.062 ± 0.001 0.088 ± 0.004 - -
batched batched_qr f64 8 16x16xbatch256 (native batch layout) - 0.825 ± 0.007 0.819 ± 0.002 0.880 ± 0.005 0.480 ± 0.039 - -
batched batched_qr f64 8 16x16xbatch64 (native batch layout) - 0.216 ± 0.000 0.213 ± 0.002 0.230 ± 0.001 0.248 ± 0.004 - -
batched batched_qr f64 8 2x2xbatch1024 (native batch layout) - 0.165 ± 0.000 0.169 ± 0.001 0.125 ± 0.000 0.211 ± 0.007 - -
batched batched_qr f64 8 2x2xbatch16 (native batch layout) - 0.008 ± 0.000 0.007 ± 0.000 0.007 ± 0.000 0.010 ± 0.000 - -
batched batched_qr f64 8 2x2xbatch256 (native batch layout) - 0.045 ± 0.000 0.046 ± 0.000 0.036 ± 0.000 0.055 ± 0.002 - -
batched batched_qr f64 8 2x2xbatch64 (native batch layout) - 0.016 ± 0.000 0.015 ± 0.000 0.012 ± 0.000 0.020 ± 0.000 - -
batched batched_qr f64 8 4x4xbatch1024 (native batch layout) - 0.423 ± 0.001 0.422 ± 0.001 0.378 ± 0.003 0.609 ± 0.004 - -
batched batched_qr f64 8 4x4xbatch16 (native batch layout) - 0.012 ± 0.000 0.011 ± 0.000 0.011 ± 0.000 0.017 ± 0.000 - -
batched batched_qr f64 8 4x4xbatch256 (native batch layout) - 0.111 ± 0.000 0.108 ± 0.000 0.098 ± 0.001 0.162 ± 0.005 - -
batched batched_qr f64 8 4x4xbatch64 (native batch layout) - 0.031 ± 0.000 0.031 ± 0.000 0.029 ± 0.000 0.043 ± 0.002 - -
batched batched_qr f64 8 8x8xbatch1024 (native batch layout) - 1.036 ± 0.002 1.034 ± 0.002 0.993 ± 0.005 0.780 ± 0.103 - -
batched batched_qr f64 8 8x8xbatch16 (native batch layout) - 0.021 ± 0.000 0.020 ± 0.000 0.021 ± 0.000 0.032 ± 0.001 - -
batched batched_qr f64 8 8x8xbatch256 (native batch layout) - 0.264 ± 0.001 0.263 ± 0.001 0.258 ± 0.001 0.438 ± 0.013 - -
batched batched_qr f64 8 8x8xbatch64 (native batch layout) - 0.071 ± 0.000 0.069 ± 0.000 0.069 ± 0.000 0.113 ± 0.003 - -
batched batched_solve f64 8 16x16xbatch1024 (native batch layout),rhs=1 - 1.093 ± 0.003 1.009 ± 0.005 0.495 ± 0.019 1.662 ± 0.108 - -
batched batched_solve f64 8 16x16xbatch16 (native batch layout),rhs=1 - 0.023 ± 0.000 0.022 ± 0.000 0.023 ± 0.000 0.040 ± 0.002 - -
batched batched_solve f64 8 16x16xbatch256 (native batch layout),rhs=1 - 0.280 ± 0.001 0.260 ± 0.001 0.142 ± 0.007 0.450 ± 0.068 - -
batched batched_solve f64 8 16x16xbatch64 (native batch layout),rhs=1 - 0.077 ± 0.000 0.072 ± 0.000 0.052 ± 0.003 0.143 ± 0.010 - -
batched batched_solve f64 8 2x2xbatch1024 (native batch layout),rhs=1 - 0.147 ± 0.000 0.129 ± 0.000 0.051 ± 0.000 0.230 ± 0.004 - -
batched batched_solve f64 8 2x2xbatch16 (native batch layout),rhs=1 - 0.008 ± 0.000 0.008 ± 0.000 0.012 ± 0.000 0.011 ± 0.000 - -
batched batched_solve f64 8 2x2xbatch256 (native batch layout),rhs=1 - 0.041 ± 0.000 0.037 ± 0.000 0.023 ± 0.000 0.061 ± 0.002 - -
batched batched_solve f64 8 2x2xbatch64 (native batch layout),rhs=1 - 0.015 ± 0.000 0.014 ± 0.000 0.015 ± 0.000 0.020 ± 0.001 - -
batched batched_solve f64 8 4x4xbatch1024 (native batch layout),rhs=1 - 0.181 ± 0.001 0.154 ± 0.000 0.076 ± 0.001 0.330 ± 0.009 - -
batched batched_solve f64 8 4x4xbatch16 (native batch layout),rhs=1 - 0.009 ± 0.000 0.009 ± 0.000 0.013 ± 0.000 0.013 ± 0.000 - -
batched batched_solve f64 8 4x4xbatch256 (native batch layout),rhs=1 - 0.050 ± 0.000 0.042 ± 0.000 0.029 ± 0.000 0.088 ± 0.005 - -
batched batched_solve f64 8 4x4xbatch64 (native batch layout),rhs=1 - 0.017 ± 0.000 0.015 ± 0.000 0.017 ± 0.000 0.027 ± 0.001 - -
batched batched_solve f64 8 8x8xbatch1024 (native batch layout),rhs=1 - 0.403 ± 0.000 0.358 ± 0.017 0.196 ± 0.002 0.752 ± 0.067 - -
batched batched_solve f64 8 8x8xbatch16 (native batch layout),rhs=1 - 0.013 ± 0.000 0.012 ± 0.000 0.017 ± 0.000 0.015 ± 0.000 - -
batched batched_solve f64 8 8x8xbatch256 (native batch layout),rhs=1 - 0.107 ± 0.000 0.096 ± 0.000 0.067 ± 0.002 0.178 ± 0.008 - -
batched batched_solve f64 8 8x8xbatch64 (native batch layout),rhs=1 - 0.029 ± 0.001 0.028 ± 0.000 0.027 ± 0.001 0.049 ± 0.002 - -
batched batched_svd f64 8 16x16xbatch1024 (native batch layout) - 33.647 ± 0.040 33.577 ± 0.047 36.181 ± 0.067 9.483 ± 0.065 - -
batched batched_svd f64 8 16x16xbatch16 (native batch layout) - 0.520 ± 0.001 0.521 ± 0.002 0.553 ± 0.002 0.252 ± 0.021 - -
batched batched_svd f64 8 16x16xbatch256 (native batch layout) - 8.401 ± 0.033 8.393 ± 0.005 9.028 ± 0.018 2.397 ± 0.215 - -
batched batched_svd f64 8 16x16xbatch64 (native batch layout) - 2.095 ± 0.008 2.100 ± 0.003 2.249 ± 0.003 0.697 ± 0.046 - -
batched batched_svd f64 8 2x2xbatch1024 (native batch layout) - 1.050 ± 0.002 1.048 ± 0.002 0.794 ± 0.002 0.999 ± 0.050 - -
batched batched_svd f64 8 2x2xbatch16 (native batch layout) - 0.022 ± 0.000 0.021 ± 0.000 0.018 ± 0.000 0.023 ± 0.000 - -
batched batched_svd f64 8 2x2xbatch256 (native batch layout) - 0.267 ± 0.001 0.266 ± 0.001 0.203 ± 0.000 0.253 ± 0.003 - -
batched batched_svd f64 8 2x2xbatch64 (native batch layout) - 0.071 ± 0.000 0.070 ± 0.000 0.055 ± 0.000 0.067 ± 0.001 - -
batched batched_svd f64 8 4x4xbatch1024 (native batch layout) - 3.736 ± 0.004 3.740 ± 0.006 3.187 ± 0.003 1.279 ± 0.270 - -
batched batched_svd f64 8 4x4xbatch16 (native batch layout) - 0.064 ± 0.000 0.063 ± 0.000 0.055 ± 0.000 0.056 ± 0.000 - -
batched batched_svd f64 8 4x4xbatch256 (native batch layout) - 0.934 ± 0.002 0.936 ± 0.002 0.802 ± 0.001 0.824 ± 0.023 - -
batched batched_svd f64 8 4x4xbatch64 (native batch layout) - 0.237 ± 0.001 0.237 ± 0.001 0.204 ± 0.001 0.208 ± 0.005 - -
batched batched_svd f64 8 8x8xbatch1024 (native batch layout) - 12.011 ± 0.010 11.994 ± 0.016 10.981 ± 0.020 2.270 ± 0.471 - -
batched batched_svd f64 8 8x8xbatch16 (native batch layout) - 0.192 ± 0.001 0.191 ± 0.001 0.175 ± 0.000 0.174 ± 0.001 - -
batched batched_svd f64 8 8x8xbatch256 (native batch layout) - 3.002 ± 0.004 3.006 ± 0.005 2.755 ± 0.003 0.641 ± 0.069 - -
batched batched_svd f64 8 8x8xbatch64 (native batch layout) - 0.754 ± 0.002 0.753 ± 0.002 0.691 ± 0.001 0.491 ± 0.035 - -
batched grad_sum_batched_matmul_backward f64 8 16x16xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 2.146 ± 0.013 6.033 ± 0.042 2.968 ± 0.186 - -
batched grad_sum_batched_matmul_backward f64 8 16x16xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.043 ± 0.000 0.159 ± 0.001 0.039 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 8 16x16xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.526 ± 0.008 1.605 ± 0.014 0.723 ± 0.092 - -
batched grad_sum_batched_matmul_backward f64 8 16x16xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.139 ± 0.001 0.438 ± 0.004 0.147 ± 0.008 - -
batched grad_sum_batched_matmul_backward f64 8 2x2xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.232 ± 0.000 0.119 ± 0.001 0.022 ± 0.002 - -
batched grad_sum_batched_matmul_backward f64 8 2x2xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.013 ± 0.000 0.063 ± 0.000 0.010 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 8 2x2xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.065 ± 0.000 0.076 ± 0.001 0.016 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 8 2x2xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.024 ± 0.000 0.066 ± 0.000 0.011 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 8 4x4xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.288 ± 0.001 0.181 ± 0.004 0.520 ± 0.009 - -
batched grad_sum_batched_matmul_backward f64 8 4x4xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.014 ± 0.000 0.066 ± 0.000 0.013 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 8 4x4xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.079 ± 0.000 0.135 ± 0.002 0.133 ± 0.003 - -
batched grad_sum_batched_matmul_backward f64 8 4x4xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.028 ± 0.000 0.080 ± 0.000 0.037 ± 0.001 - -
batched grad_sum_batched_matmul_backward f64 8 8x8xbatch1024 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.560 ± 0.001 4.265 ± 0.026 1.069 ± 0.066 - -
batched grad_sum_batched_matmul_backward f64 8 8x8xbatch16 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.019 ± 0.000 0.131 ± 0.000 0.019 ± 0.000 - -
batched grad_sum_batched_matmul_backward f64 8 8x8xbatch256 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.144 ± 0.000 1.109 ± 0.004 0.214 ± 0.008 - -
batched grad_sum_batched_matmul_backward f64 8 8x8xbatch64 (native batch layout) - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.044 ± 0.000 0.328 ± 0.003 0.057 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 8 16x16xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.678 ± 0.006 1.149 ± 0.047 3.253 ± 0.325 - -
batched grad_sum_batched_solve_backward f64 8 16x16xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.047 ± 0.000 0.078 ± 0.001 0.064 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 8 16x16xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.443 ± 0.014 0.358 ± 0.007 0.803 ± 0.081 - -
batched grad_sum_batched_solve_backward f64 8 16x16xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.130 ± 0.001 0.165 ± 0.004 0.239 ± 0.010 - -
batched grad_sum_batched_solve_backward f64 8 2x2xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.233 ± 0.001 0.128 ± 0.002 0.452 ± 0.012 - -
batched grad_sum_batched_solve_backward f64 8 2x2xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.023 ± 0.000 0.047 ± 0.000 0.019 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 8 2x2xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.073 ± 0.000 0.067 ± 0.001 0.120 ± 0.004 - -
batched grad_sum_batched_solve_backward f64 8 2x2xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.033 ± 0.000 0.051 ± 0.000 0.036 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 8 4x4xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.287 ± 0.001 0.209 ± 0.003 0.670 ± 0.040 - -
batched grad_sum_batched_solve_backward f64 8 4x4xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.024 ± 0.000 0.048 ± 0.000 0.017 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 8 4x4xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.085 ± 0.000 0.088 ± 0.002 0.172 ± 0.005 - -
batched grad_sum_batched_solve_backward f64 8 4x4xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.036 ± 0.000 0.057 ± 0.000 0.050 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 8 8x8xbatch1024 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.801 ± 0.005 0.532 ± 0.007 1.370 ± 0.112 - -
batched grad_sum_batched_solve_backward f64 8 8x8xbatch16 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.032 ± 0.000 0.057 ± 0.001 0.028 ± 0.001 - -
batched grad_sum_batched_solve_backward f64 8 8x8xbatch256 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.223 ± 0.001 0.212 ± 0.002 0.319 ± 0.015 - -
batched grad_sum_batched_solve_backward f64 8 8x8xbatch64 (native batch layout),rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.069 ± 0.000 0.089 ± 0.001 0.086 ± 0.004 - -
large eigh f64 8 1024x1024 - 128.201 ± 3.816 55.041 ± 0.156 176.905 ± 18.255 214.049 ± 78.815 - -
large eigh f64 8 128x128 - 0.958 ± 0.003 0.959 ± 0.002 2.066 ± 65.982 37.887 ± 0.754 - -
large eigh f64 8 256x256 - 18.800 ± 0.056 11.581 ± 0.132 76.439 ± 8.497 9.824 ± 142.022 - -
large eigh f64 8 512x512 - 33.323 ± 0.300 33.022 ± 0.032 152.904 ± 120.860 151.430 ± 17.376 - -
large eigh f64 8 64x64 - 0.167 ± 0.001 0.166 ± 0.000 0.177 ± 0.003 0.292 ± 0.007 - -
large grad_sum_eigh_jvp f64 8 1024x1024 - - 145.846 ± 71.297 88.704 ± 0.388 131.017 ± 14.524 - -
large grad_sum_eigh_jvp f64 8 256x256 - - 23.445 ± 0.233 2.969 ± 0.032 7.389 ± 0.450 - -
large grad_sum_eigh_jvp f64 8 512x512 - - 39.714 ± 16.619 13.546 ± 0.278 33.056 ± 3.104 - -
large grad_sum_eigh_vjp f64 8 1024x1024 - - 70.888 ± 62.232 61.875 ± 0.340 127.451 ± 7.475 - -
large grad_sum_eigh_vjp f64 8 256x256 - - 23.683 ± 0.036 2.624 ± 0.024 7.439 ± 0.551 - -
large grad_sum_eigh_vjp f64 8 512x512 - - 56.452 ± 0.163 10.593 ± 0.061 30.960 ± 2.552 - -
large grad_sum_lu_jvp f64 8 1024x1024 - - 72.732 ± 7.440 105.859 ± 1.208 78.793 ± 23.053 - -
large grad_sum_lu_jvp f64 8 256x256 - - 3.673 ± 0.256 2.608 ± 0.035 3.972 ± 0.802 - -
large grad_sum_lu_jvp f64 8 512x512 - - 13.972 ± 0.074 17.580 ± 0.324 20.051 ± 7.398 - -
large grad_sum_lu_vjp f64 8 1024x1024 - - 80.207 ± 2.773 52.381 ± 0.437 87.642 ± 10.241 - -
large grad_sum_lu_vjp f64 8 256x256 - - 5.358 ± 0.448 1.352 ± 0.030 3.727 ± 0.760 - -
large grad_sum_lu_vjp f64 8 512x512 - - 13.830 ± 0.152 8.620 ± 0.095 16.255 ± 4.643 - -
large grad_sum_matmul f64 8 1024x1024 - 15.598 ± 0.128 8.951 ± 0.071 10.513 ± 0.100 7.422 ± 0.911 - -
large grad_sum_matmul f64 8 128x128 - 0.049 ± 0.001 0.026 ± 0.000 0.050 ± 0.005 0.083 ± 0.005 - -
large grad_sum_matmul f64 8 256x256 - 0.890 ± 0.043 0.806 ± 0.001 0.219 ± 0.023 0.308 ± 0.028 - -
large grad_sum_matmul f64 8 512x512 - 2.765 ± 0.117 1.684 ± 0.013 1.909 ± 0.215 1.705 ± 0.171 - -
large grad_sum_matmul f64 8 64x64 - 0.022 ± 0.000 0.066 ± 0.000 0.017 ± 0.002 0.029 ± 0.002 - -
large grad_sum_matmul_backward f64 8 1024x1024 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 26.860 ± 0.126 30.794 ± 0.231 21.980 ± 0.690 - -
large grad_sum_matmul_backward f64 8 128x128 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.090 ± 0.000 0.133 ± 0.007 0.157 ± 0.005 - -
large grad_sum_matmul_backward f64 8 256x256 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 1.126 ± 0.002 0.559 ± 0.020 0.605 ± 0.037 - -
large grad_sum_matmul_backward f64 8 512x512 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 4.139 ± 0.014 4.741 ± 0.154 3.780 ± 0.223 - -
large grad_sum_matmul_backward f64 8 64x64 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.197 ± 0.157 0.057 ± 0.001 0.056 ± 0.002 - -
large grad_sum_qr_jvp f64 8 1024x1024 - - 72.724 ± 0.951 75.625 ± 0.350 130.987 ± 18.173 - -
large grad_sum_qr_jvp f64 8 256x256 - - 11.764 ± 0.257 2.129 ± 0.033 6.683 ± 1.141 - -
large grad_sum_qr_jvp f64 8 512x512 - - 26.142 ± 0.685 11.916 ± 0.041 27.349 ± 5.019 - -
large grad_sum_qr_vjp f64 8 1024x1024 - - 162.127 ± 60.281 72.048 ± 0.613 126.977 ± 16.489 - -
large grad_sum_qr_vjp f64 8 256x256 - - 12.632 ± 0.378 2.294 ± 0.018 6.924 ± 1.097 - -
large grad_sum_qr_vjp f64 8 512x512 - - 21.594 ± 0.283 13.993 ± 0.229 28.212 ± 4.203 - -
large grad_sum_solve_backward f64 8 1024x1024,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 20.034 ± 44.942 99.863 ± 109.464 135.058 ± 32.207 - -
large grad_sum_solve_backward f64 8 128x128,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.128 ± 0.000 0.170 ± 0.003 0.156 ± 0.005 - -
large grad_sum_solve_backward f64 8 256x256,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 2.337 ± 0.003 27.940 ± 2.983 1.140 ± 0.341 - -
large grad_sum_solve_backward f64 8 512x512,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 3.071 ± 0.009 32.841 ± 11.578 2.601 ± 131.678 - -
large grad_sum_solve_backward f64 8 64x64,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.045 ± 0.000 0.072 ± 0.001 0.047 ± 0.002 - -
large grad_sum_solve_jvp f64 8 1024x1024,rhs=1 - - 32.936 ± 33.342 6.222 ± 0.079 9.895 ± 0.620 - -
large grad_sum_solve_jvp f64 8 256x256,rhs=1 - - 1.771 ± 0.004 0.921 ± 1.365 0.348 ± 0.003 - -
large grad_sum_solve_jvp f64 8 512x512,rhs=1 - - 2.128 ± 0.027 1.411 ± 0.056 2.285 ± 0.871 - -
large grad_sum_solve_vjp f64 8 1024x1024,rhs=1 - - 15.299 ± 26.607 10.180 ± 0.209 8.984 ± 0.301 - -
large grad_sum_solve_vjp f64 8 256x256,rhs=1 - - 1.767 ± 0.004 0.553 ± 0.024 0.354 ± 0.011 - -
large grad_sum_solve_vjp f64 8 512x512,rhs=1 - - 2.643 ± 0.009 1.984 ± 0.012 2.241 ± 0.063 - -
large grad_sum_svd_s_backward f64 8 1024x1024 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 155.048 ± 1.790 185.431 ± 1.680 285.891 ± 8.772 - -
large grad_sum_svd_s_backward f64 8 128x128 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 2.603 ± 0.011 1.858 ± 0.015 2.509 ± 0.077 - -
large grad_sum_svd_s_backward f64 8 256x256 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 8.659 ± 0.068 8.693 ± 0.040 11.951 ± 0.991 - -
large grad_sum_svd_s_backward f64 8 512x512 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 33.624 ± 0.490 41.858 ± 0.380 65.127 ± 7.355 - -
large grad_sum_svd_s_backward f64 8 64x64 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.433 ± 0.001 0.482 ± 0.002 0.483 ± 0.004 - -
large grad_sum_svd_s_jvp f64 8 1024x1024 - - 153.806 ± 1.073 212.593 ± 3.732 286.415 ± 13.652 - -
large grad_sum_svd_s_jvp f64 8 256x256 - - 14.975 ± 0.191 9.340 ± 0.056 12.494 ± 0.835 - -
large grad_sum_svd_s_jvp f64 8 512x512 - - 61.152 ± 20.178 42.266 ± 0.200 64.028 ± 7.731 - -
large grad_sum_svd_s_vjp f64 8 1024x1024 - - 154.665 ± 1.333 176.369 ± 4.091 293.920 ± 13.207 - -
large grad_sum_svd_s_vjp f64 8 256x256 - - 15.362 ± 0.549 8.582 ± 0.029 11.971 ± 0.956 - -
large grad_sum_svd_s_vjp f64 8 512x512 - - 61.142 ± 0.590 40.990 ± 1.113 67.046 ± 3.091 - -
large matmul f64 8 1024x1024 - 8.196 ± 0.062 8.053 ± 0.070 9.191 ± 0.129 7.646 ± 0.863 - -
large matmul f64 8 128x128 - 0.031 ± 0.000 0.022 ± 0.000 0.057 ± 0.005 0.063 ± 0.004 - -
large matmul f64 8 256x256 - 0.140 ± 0.004 0.112 ± 0.001 0.246 ± 0.016 0.291 ± 0.025 - -
large matmul f64 8 512x512 - 0.957 ± 0.009 0.957 ± 0.007 1.650 ± 0.177 1.508 ± 0.141 - -
large matmul_rect f64 8 1024x256 * 256x1024 - 2.176 ± 0.020 2.208 ± 0.072 2.603 ± 0.124 2.433 ± 0.247 - -
large matmul_rect f64 8 256x1024 * 1024x256 - 0.427 ± 0.003 0.433 ± 0.002 0.872 ± 0.101 1.021 ± 0.079 - -
large qr f64 8 1024x1024 - 42.365 ± 1.530 27.179 ± 0.089 30.690 ± 3.664 45.476 ± 1.384 - -
large qr f64 8 128x128 - 0.587 ± 0.001 0.573 ± 0.002 0.280 ± 0.003 0.531 ± 0.010 - -
large qr f64 8 256x256 - 1.860 ± 0.110 2.473 ± 0.021 1.183 ± 0.009 2.058 ± 0.040 - -
large qr f64 8 512x512 - 8.951 ± 0.179 8.447 ± 3.232 5.967 ± 0.229 10.365 ± 0.083 - -
large qr f64 8 64x64 - 0.108 ± 0.000 0.108 ± 0.000 0.102 ± 0.002 0.080 ± 0.003 - -
large solve f64 8 1024x1024,rhs=1 - 3.809 ± 0.074 3.927 ± 0.050 77.950 ± 104.084 134.573 ± 32.610 - -
large solve f64 8 1024x1024,rhs=16 - 4.211 ± 0.040 32.299 ± 26.746 116.570 ± 68.032 149.175 ± 30.835 - -
large solve f64 8 1024x1024,rhs=64 - 6.718 ± 0.040 12.696 ± 11.560 98.047 ± 51.445 136.933 ± 16.986 - -
large solve f64 8 128x128,rhs=1 - 0.098 ± 0.001 0.098 ± 0.000 0.110 ± 0.001 0.124 ± 0.009 - -
large solve f64 8 128x128,rhs=16 - 0.112 ± 0.002 0.384 ± 0.002 8.314 ± 0.012 14.987 ± 2.999 - -
large solve f64 8 128x128,rhs=64 - 0.127 ± 0.002 0.397 ± 0.002 7.109 ± 0.018 4.009 ± 0.070 - -
large solve f64 8 256x256,rhs=1 - 0.341 ± 0.003 1.024 ± 0.003 21.977 ± 3.009 1.145 ± 1.273 - -
large solve f64 8 256x256,rhs=16 - 0.416 ± 0.005 1.145 ± 0.050 33.196 ± 3.000 6.649 ± 65.899 - -
large solve f64 8 256x256,rhs=64 - 0.495 ± 0.007 1.223 ± 0.003 31.792 ± 1.003 12.270 ± 105.436 - -
large solve f64 8 512x512,rhs=1 - 0.927 ± 0.024 1.634 ± 0.032 86.898 ± 57.993 131.230 ± 139.617 - -
large solve f64 8 512x512,rhs=16 - 0.871 ± 0.023 1.851 ± 0.026 46.236 ± 47.981 126.248 ± 143.138 - -
large solve f64 8 512x512,rhs=64 - 1.159 ± 0.045 3.039 ± 0.061 36.520 ± 24.935 11.964 ± 122.992 - -
large solve f64 8 64x64,rhs=1 - 0.028 ± 0.000 0.027 ± 0.000 0.033 ± 0.001 0.036 ± 0.002 - -
large solve f64 8 64x64,rhs=16 - 0.033 ± 0.000 0.035 ± 0.000 0.039 ± 0.001 0.059 ± 0.007 - -
large solve f64 8 64x64,rhs=64 - 0.038 ± 0.001 0.041 ± 0.001 0.047 ± 0.001 0.077 ± 0.002 - -
large svd f64 8 1024x1024 - 139.595 ± 38.645 146.365 ± 29.766 168.432 ± 3.890 235.705 ± 2.948 - -
large svd f64 8 128x128 - 1.855 ± 0.012 1.854 ± 0.008 1.707 ± 0.005 2.011 ± 0.007 - -
large svd f64 8 256x256 - 7.709 ± 0.093 11.293 ± 0.033 8.140 ± 0.023 9.419 ± 0.066 - -
large svd f64 8 512x512 - 74.729 ± 18.092 75.925 ± 2.843 33.397 ± 0.134 53.530 ± 0.451 - -
large svd f64 8 64x64 - 0.405 ± 0.001 0.405 ± 0.002 0.426 ± 0.003 0.451 ± 0.003 - -
small eigh f64 8 16x16 - 0.020 ± 0.000 0.019 ± 0.000 0.020 ± 0.000 0.027 ± 0.000 - -
small eigh f64 8 2x2 - 0.005 ± 0.000 0.005 ± 0.000 0.005 ± 0.000 0.007 ± 0.000 - -
small eigh f64 8 32x32 - 0.066 ± 0.001 0.065 ± 0.000 0.068 ± 0.000 0.083 ± 0.004 - -
small eigh f64 8 4x4 - 0.006 ± 0.000 0.006 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 - -
small eigh f64 8 8x8 - 0.010 ± 0.000 0.009 ± 0.000 0.009 ± 0.000 0.012 ± 0.000 - -
small einsum_ij_jk_ik f64 8 16x16 - 0.005 ± 0.000 0.007 ± 0.000 0.010 ± 0.000 0.090 ± 0.001 - -
small einsum_ij_jk_ik f64 8 2x2 - 0.004 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 0.087 ± 0.001 - -
small einsum_ij_jk_ik f64 8 32x32 - 0.008 ± 0.000 0.009 ± 0.000 0.013 ± 0.000 0.091 ± 0.001 - -
small einsum_ij_jk_ik f64 8 4x4 - 0.004 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 0.088 ± 0.001 - -
small einsum_ij_jk_ik f64 8 8x8 - 0.004 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 0.090 ± 0.001 - -
small grad_sum_eigh_jvp f64 8 16x16 - - 0.034 ± 0.000 0.095 ± 0.001 0.026 ± 0.000 - -
small grad_sum_eigh_jvp f64 8 2x2 - - 0.018 ± 0.000 0.075 ± 0.001 0.007 ± 0.000 - -
small grad_sum_eigh_jvp f64 8 32x32 - - 0.085 ± 0.000 0.155 ± 0.003 0.084 ± 0.007 - -
small grad_sum_eigh_jvp f64 8 4x4 - - 0.020 ± 0.000 0.076 ± 0.001 0.009 ± 0.000 - -
small grad_sum_eigh_jvp f64 8 8x8 - - 0.023 ± 0.000 0.080 ± 0.002 0.010 ± 0.000 - -
small grad_sum_eigh_vjp f64 8 16x16 - - 0.034 ± 0.000 0.081 ± 0.001 0.026 ± 0.000 - -
small grad_sum_eigh_vjp f64 8 2x2 - - 0.018 ± 0.000 0.063 ± 0.001 0.008 ± 0.000 - -
small grad_sum_eigh_vjp f64 8 32x32 - - 0.085 ± 0.000 0.135 ± 0.002 0.080 ± 0.000 - -
small grad_sum_eigh_vjp f64 8 4x4 - - 0.019 ± 0.000 0.064 ± 0.000 0.009 ± 0.000 - -
small grad_sum_eigh_vjp f64 8 8x8 - - 0.022 ± 0.000 0.067 ± 0.001 0.010 ± 0.000 - -
small grad_sum_lu_jvp f64 8 16x16 - - 0.027 ± 0.000 0.138 ± 0.002 0.013 ± 0.000 - -
small grad_sum_lu_jvp f64 8 2x2 - - 0.022 ± 0.000 0.127 ± 0.002 0.009 ± 0.000 - -
small grad_sum_lu_jvp f64 8 32x32 - - 0.051 ± 0.000 0.209 ± 0.003 0.061 ± 0.000 - -
small grad_sum_lu_jvp f64 8 4x4 - - 0.023 ± 0.000 0.125 ± 0.002 0.009 ± 0.000 - -
small grad_sum_lu_jvp f64 8 8x8 - - 0.023 ± 0.000 0.127 ± 0.001 0.014 ± 0.000 - -
small grad_sum_lu_vjp f64 8 16x16 - - 0.026 ± 0.000 0.108 ± 0.001 0.012 ± 0.000 - -
small grad_sum_lu_vjp f64 8 2x2 - - 0.021 ± 0.000 0.099 ± 0.001 0.008 ± 0.000 - -
small grad_sum_lu_vjp f64 8 32x32 - - 0.061 ± 0.000 0.135 ± 0.002 0.034 ± 0.126 - -
small grad_sum_lu_vjp f64 8 4x4 - - 0.021 ± 0.000 0.099 ± 0.001 0.009 ± 0.000 - -
small grad_sum_lu_vjp f64 8 8x8 - - 0.022 ± 0.000 0.101 ± 0.001 0.013 ± 0.000 - -
small grad_sum_matmul_backward f64 8 16x16 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.012 ± 0.000 0.028 ± 0.000 0.012 ± 0.000 - -
small grad_sum_matmul_backward f64 8 2x2 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.009 ± 0.000 0.025 ± 0.000 0.010 ± 0.001 - -
small grad_sum_matmul_backward f64 8 32x32 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.020 ± 0.000 0.039 ± 0.000 0.015 ± 0.001 - -
small grad_sum_matmul_backward f64 8 4x4 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.009 ± 0.000 0.026 ± 0.000 0.011 ± 0.001 - -
small grad_sum_matmul_backward f64 8 8x8 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.010 ± 0.000 0.026 ± 0.000 0.011 ± 0.001 - -
small grad_sum_qr_jvp f64 8 16x16 - - 0.038 ± 0.000 0.099 ± 0.002 0.012 ± 0.000 - -
small grad_sum_qr_jvp f64 8 2x2 - - 0.032 ± 0.000 0.088 ± 0.001 0.008 ± 0.000 - -
small grad_sum_qr_jvp f64 8 32x32 - - 0.062 ± 0.000 0.130 ± 0.001 0.249 ± 0.000 - -
small grad_sum_qr_jvp f64 8 4x4 - - 0.032 ± 0.000 0.087 ± 0.001 0.009 ± 0.000 - -
small grad_sum_qr_jvp f64 8 8x8 - - 0.034 ± 0.000 0.090 ± 0.001 0.013 ± 0.000 - -
small grad_sum_qr_vjp f64 8 16x16 - - 0.038 ± 0.000 0.102 ± 0.001 0.011 ± 0.000 - -
small grad_sum_qr_vjp f64 8 2x2 - - 0.031 ± 0.000 0.090 ± 0.001 0.008 ± 0.000 - -
small grad_sum_qr_vjp f64 8 32x32 - - 0.061 ± 0.000 0.142 ± 0.001 0.046 ± 0.066 - -
small grad_sum_qr_vjp f64 8 4x4 - - 0.032 ± 0.000 0.090 ± 0.000 0.009 ± 0.000 - -
small grad_sum_qr_vjp f64 8 8x8 - - 0.033 ± 0.000 0.093 ± 0.001 0.011 ± 0.000 - -
small grad_sum_solve_backward f64 8 16x16,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.021 ± 0.000 0.042 ± 0.000 0.016 ± 0.001 - -
small grad_sum_solve_backward f64 8 2x2,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.018 ± 0.000 0.039 ± 0.000 0.011 ± 0.001 - -
small grad_sum_solve_backward f64 8 32x32,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.027 ± 0.000 0.049 ± 0.000 0.017 ± 0.001 - -
small grad_sum_solve_backward f64 8 4x4,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.018 ± 0.000 0.040 ± 0.000 0.012 ± 0.001 - -
small grad_sum_solve_backward f64 8 8x8,rhs=1 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.019 ± 0.000 0.041 ± 0.000 0.013 ± 0.001 - -
small grad_sum_solve_jvp f64 8 16x16,rhs=1 - - 0.016 ± 0.000 0.206 ± 0.002 0.011 ± 0.000 - -
small grad_sum_solve_jvp f64 8 2x2,rhs=1 - - 0.014 ± 0.000 0.200 ± 0.002 0.008 ± 0.000 - -
small grad_sum_solve_jvp f64 8 32x32,rhs=1 - - 0.022 ± 0.000 0.215 ± 0.002 0.011 ± 0.000 - -
small grad_sum_solve_jvp f64 8 4x4,rhs=1 - - 0.015 ± 0.000 0.200 ± 0.001 0.008 ± 0.000 - -
small grad_sum_solve_jvp f64 8 8x8,rhs=1 - - 0.015 ± 0.000 0.202 ± 0.001 0.009 ± 0.000 - -
small grad_sum_solve_vjp f64 8 16x16,rhs=1 - - 0.016 ± 0.000 0.089 ± 0.001 0.012 ± 0.000 - -
small grad_sum_solve_vjp f64 8 2x2,rhs=1 - - 0.014 ± 0.000 0.084 ± 0.001 0.009 ± 0.000 - -
small grad_sum_solve_vjp f64 8 32x32,rhs=1 - - 0.022 ± 0.000 0.102 ± 0.001 0.013 ± 0.001 - -
small grad_sum_solve_vjp f64 8 4x4,rhs=1 - - 0.014 ± 0.000 0.084 ± 0.001 0.009 ± 0.000 - -
small grad_sum_solve_vjp f64 8 8x8,rhs=1 - - 0.015 ± 0.000 0.086 ± 0.000 0.010 ± 0.000 - -
small grad_sum_svd_s_backward f64 8 16x16 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.045 ± 0.000 0.065 ± 0.000 0.046 ± 0.002 - -
small grad_sum_svd_s_backward f64 8 2x2 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.012 ± 0.000 0.029 ± 0.000 0.009 ± 0.000 - -
small grad_sum_svd_s_backward f64 8 32x32 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.133 ± 0.000 0.162 ± 0.001 0.130 ± 0.004 - -
small grad_sum_svd_s_backward f64 8 4x4 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.014 ± 0.000 0.032 ± 0.000 0.011 ± 0.000 - -
small grad_sum_svd_s_backward f64 8 8x8 - unsupported: eager backward has no borrowed-session API; setup-inclusive timings disabled 0.023 ± 0.000 0.041 ± 0.000 0.015 ± 0.000 - -
small grad_sum_svd_s_jvp f64 8 16x16 - - 0.045 ± 0.000 0.159 ± 0.005 0.041 ± 0.000 - -
small grad_sum_svd_s_jvp f64 8 2x2 - - 0.013 ± 0.000 0.113 ± 0.001 0.008 ± 0.000 - -
small grad_sum_svd_s_jvp f64 8 32x32 - - 0.134 ± 0.000 0.271 ± 0.004 0.123 ± 0.001 - -
small grad_sum_svd_s_jvp f64 8 4x4 - - 0.015 ± 0.000 0.115 ± 0.003 0.011 ± 0.000 - -
small grad_sum_svd_s_jvp f64 8 8x8 - - 0.024 ± 0.000 0.127 ± 0.001 0.014 ± 0.001 - -
small grad_sum_svd_s_vjp f64 8 16x16 - - 0.045 ± 0.000 0.108 ± 0.001 0.042 ± 0.000 - -
small grad_sum_svd_s_vjp f64 8 2x2 - - 0.012 ± 0.000 0.069 ± 0.001 0.009 ± 0.000 - -
small grad_sum_svd_s_vjp f64 8 32x32 - - 0.133 ± 0.000 0.208 ± 0.003 0.122 ± 0.000 - -
small grad_sum_svd_s_vjp f64 8 4x4 - - 0.014 ± 0.000 0.071 ± 0.001 0.011 ± 0.000 - -
small grad_sum_svd_s_vjp f64 8 8x8 - - 0.023 ± 0.000 0.081 ± 0.001 0.014 ± 0.000 - -
small matmul f64 8 16x16 - 0.005 ± 0.000 0.004 ± 0.000 0.003 ± 0.000 0.008 ± 0.000 - -
small matmul f64 8 2x2 - 0.003 ± 0.000 0.003 ± 0.000 0.002 ± 0.000 0.006 ± 0.000 - -
small matmul f64 8 32x32 - 0.007 ± 0.000 0.007 ± 0.000 0.006 ± 0.000 0.009 ± 0.000 - -
small matmul f64 8 4x4 - 0.003 ± 0.000 0.003 ± 0.000 0.002 ± 0.000 0.007 ± 0.000 - -
small matmul f64 8 64x64 - 0.066 ± 0.318 0.042 ± 0.023 0.018 ± 0.001 0.028 ± 0.004 - -
small matmul f64 8 8x8 - 0.004 ± 0.000 0.004 ± 0.000 0.002 ± 0.000 0.007 ± 0.000 - -
small qr f64 8 16x16 - 0.009 ± 0.000 0.007 ± 0.000 0.009 ± 0.000 0.013 ± 0.000 - -
small qr f64 8 2x2 - 0.005 ± 0.000 0.004 ± 0.000 0.004 ± 0.000 0.007 ± 0.000 - -
small qr f64 8 32x32 - 0.018 ± 0.000 0.016 ± 0.000 0.022 ± 0.000 0.025 ± 0.001 - -
small qr f64 8 4x4 - 0.005 ± 0.000 0.004 ± 0.000 0.005 ± 0.000 0.008 ± 0.000 - -
small qr f64 8 8x8 - 0.006 ± 0.000 0.005 ± 0.000 0.006 ± 0.000 0.010 ± 0.000 - -
small solve f64 8 16x16,rhs=1 - 0.006 ± 0.000 0.007 ± 0.000 0.011 ± 0.000 0.009 ± 0.000 - -
small solve f64 8 16x16,rhs=4 - 0.006 ± 0.000 0.007 ± 0.000 0.012 ± 0.000 0.010 ± 0.000 - -
small solve f64 8 2x2,rhs=1 - 0.005 ± 0.000 0.006 ± 0.000 0.010 ± 0.000 0.008 ± 0.000 - -
small solve f64 8 2x2,rhs=4 - 0.005 ± 0.000 0.006 ± 0.000 0.010 ± 0.000 0.008 ± 0.000 - -
small solve f64 8 32x32,rhs=1 - 0.012 ± 0.000 0.013 ± 0.000 0.017 ± 0.000 0.011 ± 0.001 - -
small solve f64 8 32x32,rhs=4 - 0.014 ± 0.000 0.015 ± 0.000 0.019 ± 0.000 0.014 ± 0.002 - -
small solve f64 8 4x4,rhs=1 - 0.005 ± 0.000 0.006 ± 0.000 0.010 ± 0.000 0.008 ± 0.000 - -
small solve f64 8 4x4,rhs=4 - 0.005 ± 0.000 0.006 ± 0.000 0.010 ± 0.000 0.008 ± 0.000 - -
small solve f64 8 8x8,rhs=1 - 0.005 ± 0.000 0.006 ± 0.000 0.010 ± 0.000 0.009 ± 0.000 - -
small solve f64 8 8x8,rhs=4 - 0.005 ± 0.000 0.007 ± 0.000 0.011 ± 0.000 0.010 ± 0.000 - -
small svd f64 8 16x16 - 0.037 ± 0.000 0.036 ± 0.000 0.039 ± 0.000 0.044 ± 0.000 - -
small svd f64 8 2x2 - 0.006 ± 0.000 0.006 ± 0.000 0.006 ± 0.000 0.011 ± 0.000 - -
small svd f64 8 32x32 - 0.123 ± 0.001 0.122 ± 0.000 0.133 ± 0.001 0.128 ± 0.004 - -
small svd f64 8 4x4 - 0.009 ± 0.000 0.008 ± 0.000 0.009 ± 0.000 0.012 ± 0.000 - -
small svd f64 8 8x8 - 0.016 ± 0.000 0.015 ± 0.000 0.015 ± 0.000 0.018 ± 0.000 - -

Cross-Backend Spread Audit

Rows with a successful cell more than 10x faster than the slowest successful cell are flagged for operation-specific review. This cross-backend spread check is a warning, not a correctness verdict.

Physical Bound Audit

This independent check derives minimum logical bytes from dtype and shape for materializing public API operations, plus conservative operation FLOPs for reductions, Frobenius norms, matrix products, triangular solves, and recognized dense linalg families. Decorated shapes (->, rhs=, and +) are parsed explicitly. Operations whose touched region cannot be inferred conservatively from the reported shape are left unmodeled. It assumes at most 100 GB/s and 50 GFLOP/s per requested CPU thread, capped at 1000 GB/s and 3200 GFLOP/s. A cell more than 10x faster than the resulting lower bound is flagged. These deliberately generous ceilings are a sanity screen, not a performance gate.

No cell exceeded the conservative physical bound by more than 10x.