{
  "records": [
    {
      "experiment": "cardinal KAN matrix evaluation and Badoual inner-product calculus",
      "seed": 20260911,
      "backend": "numpy-2.4.6-cpu",
      "evaluation": [
        {
          "batch": 256,
          "edges": 32,
          "knots": 16,
          "outputs": 8192,
          "cox_de_boor_seconds": 0.0014259589370340109,
          "cardinal_local_matrix_seconds": 0.00028725003357976675,
          "speedup": 4.96417326488505,
          "relative_error": 1.5744661166409643e-16,
          "cox_temporary_basis_mib": 1.1875,
          "cardinal_local_payload_mib": 0.25
        },
        {
          "batch": 512,
          "edges": 64,
          "knots": 32,
          "outputs": 32768,
          "cox_de_boor_seconds": 0.008603333961218596,
          "cardinal_local_matrix_seconds": 0.0012702499516308308,
          "speedup": 6.772945710545446,
          "relative_error": 1.539297763127242e-16,
          "cox_temporary_basis_mib": 8.75,
          "cardinal_local_payload_mib": 1.0
        },
        {
          "batch": 512,
          "edges": 64,
          "knots": 64,
          "outputs": 32768,
          "cox_de_boor_seconds": 0.015143124968744814,
          "cardinal_local_matrix_seconds": 0.0012402080465108156,
          "speedup": 12.210148943435962,
          "relative_error": 1.5384068753367894e-16,
          "cox_temporary_basis_mib": 16.75,
          "cardinal_local_payload_mib": 1.0
        }
      ],
      "inner_product_calculus": [
        {
          "batch": 32,
          "knots": 64,
          "compact_gram_seconds": 3.199989441782236e-05,
          "fft_gram_seconds": 1.5749945305287838e-05,
          "compact_over_fft_speed_ratio": 2.0317463837210163,
          "compact_fft_relative_error": 3.52725190675287e-16,
          "continuous_quadrature_relative_error": 2.6637142588980132e-08,
          "fft_ridge_solve_seconds": 1.2708944268524647e-05,
          "fft_ridge_solve_relative_residual": 6.92058289390491e-16,
          "dense_gram_mib": 0.03125,
          "circulant_kernel_spectrum_mib": 0.0009918212890625
        },
        {
          "batch": 32,
          "knots": 256,
          "compact_gram_seconds": 5.6124990805983543e-05,
          "fft_gram_seconds": 2.9249931685626507e-05,
          "compact_over_fft_speed_ratio": 1.9188075859186882,
          "compact_fft_relative_error": 5.099636864246055e-16,
          "continuous_quadrature_relative_error": 2.2891375303240088e-08,
          "fft_ridge_solve_seconds": 2.9125018045306206e-05,
          "fft_ridge_solve_relative_residual": 8.518278959936658e-16,
          "dense_gram_mib": 0.5,
          "circulant_kernel_spectrum_mib": 0.0039215087890625
        },
        {
          "batch": 32,
          "knots": 1024,
          "compact_gram_seconds": 0.00013225001748651266,
          "fft_gram_seconds": 0.00011204101610928774,
          "compact_over_fft_speed_ratio": 1.1803714575161701,
          "compact_fft_relative_error": 8.616480161582965e-16,
          "continuous_quadrature_relative_error": 2.3950432576791153e-08,
          "fft_ridge_solve_seconds": 0.00011958298273384571,
          "fft_ridge_solve_relative_residual": 9.758025693074972e-16,
          "dense_gram_mib": 8.0,
          "circulant_kernel_spectrum_mib": 0.0156402587890625
        },
        {
          "batch": 32,
          "knots": 4096,
          "compact_gram_seconds": 0.0004000000189989805,
          "fft_gram_seconds": 0.0005010419990867376,
          "compact_over_fft_speed_ratio": 0.7983363065932019,
          "compact_fft_relative_error": 1.0877884661678537e-15,
          "continuous_quadrature_relative_error": 1.4700281447979987e-08,
          "fft_ridge_solve_seconds": 0.0005442920373752713,
          "fft_ridge_solve_relative_residual": 1.0276987464937475e-15,
          "dense_gram_mib": 128.0,
          "circulant_kernel_spectrum_mib": 0.0625152587890625
        }
      ],
      "torch_framework": [
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 16,
          "device": "cpu",
          "relative_error": 5.525454866983637e-07,
          "streamed_relative_error": 5.535990226235299e-07,
          "dense_forward_seconds": 0.0005287920357659459,
          "local_forward_seconds": 0.0025261250557377934,
          "dense_over_local_forward_speed_ratio": 0.20932931826350304,
          "dense_forward_backward_seconds": 0.0006675840122625232,
          "local_forward_backward_seconds": 0.005652374937199056,
          "dense_over_local_forward_backward_speed_ratio": 0.11810681698927314,
          "streamed_forward_seconds": 0.003931750077754259,
          "dense_over_streamed_forward_speed_ratio": 0.13449278954881635,
          "streamed_forward_backward_seconds": 0.010112040909007192,
          "dense_over_streamed_forward_backward_speed_ratio": 0.06601872146975592,
          "dense_basis_workspace_mib": 2.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 32,
          "device": "cpu",
          "relative_error": 1.0594444574962836e-06,
          "streamed_relative_error": 1.0600804216664983e-06,
          "dense_forward_seconds": 0.0010734579991549253,
          "local_forward_seconds": 0.002796791959553957,
          "dense_over_local_forward_speed_ratio": 0.3838176077015483,
          "dense_forward_backward_seconds": 0.001350583042949438,
          "local_forward_backward_seconds": 0.006309207994490862,
          "dense_over_local_forward_backward_speed_ratio": 0.21406538572333547,
          "streamed_forward_seconds": 0.00454170792363584,
          "dense_over_streamed_forward_speed_ratio": 0.2363555775060881,
          "streamed_forward_backward_seconds": 0.012132916017435491,
          "dense_over_streamed_forward_backward_speed_ratio": 0.11131561786207006,
          "dense_basis_workspace_mib": 4.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 64,
          "device": "cpu",
          "relative_error": 2.3058667011355283e-06,
          "streamed_relative_error": 2.307032673343201e-06,
          "dense_forward_seconds": 0.0016437920276075602,
          "local_forward_seconds": 0.0030812090262770653,
          "dense_over_local_forward_speed_ratio": 0.5334892938418092,
          "dense_forward_backward_seconds": 0.0022485839435830712,
          "local_forward_backward_seconds": 0.006290625082328916,
          "dense_over_local_forward_backward_speed_ratio": 0.35745000125656834,
          "streamed_forward_seconds": 0.004915791912935674,
          "dense_over_streamed_forward_speed_ratio": 0.33439007523528386,
          "streamed_forward_backward_seconds": 0.012479707947932184,
          "dense_over_streamed_forward_backward_speed_ratio": 0.1801792119627005,
          "dense_basis_workspace_mib": 8.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 128,
          "device": "cpu",
          "relative_error": 3.069451850024052e-06,
          "streamed_relative_error": 3.0696435260324506e-06,
          "dense_forward_seconds": 0.0036191249964758754,
          "local_forward_seconds": 0.0031322500435635448,
          "dense_over_local_forward_speed_ratio": 1.155439363441884,
          "dense_forward_backward_seconds": 0.004289375036023557,
          "local_forward_backward_seconds": 0.006392915965989232,
          "dense_over_local_forward_backward_speed_ratio": 0.6709575190481679,
          "streamed_forward_seconds": 0.004786374978721142,
          "dense_over_streamed_forward_speed_ratio": 0.7561306860756779,
          "streamed_forward_backward_seconds": 0.01232624996919185,
          "dense_over_streamed_forward_backward_speed_ratio": 0.3479870233643155,
          "dense_basis_workspace_mib": 16.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 256,
          "device": "cpu",
          "relative_error": 9.728163604449946e-06,
          "streamed_relative_error": 9.728665645525325e-06,
          "dense_forward_seconds": 0.007346083060838282,
          "local_forward_seconds": 0.0037487499648705125,
          "dense_over_local_forward_speed_ratio": 1.959608704148938,
          "dense_forward_backward_seconds": 0.008334708982147276,
          "local_forward_backward_seconds": 0.006718875025399029,
          "dense_over_local_forward_backward_speed_ratio": 1.2404917416442471,
          "streamed_forward_seconds": 0.004924959037452936,
          "dense_over_streamed_forward_speed_ratio": 1.491602875267261,
          "streamed_forward_backward_seconds": 0.012118375045247376,
          "dense_over_streamed_forward_backward_speed_ratio": 0.6877744706717928,
          "dense_basis_workspace_mib": 32.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 512,
          "device": "cpu",
          "relative_error": 1.254704147868324e-05,
          "streamed_relative_error": 1.2546760444820393e-05,
          "dense_forward_seconds": 0.013301042024977505,
          "local_forward_seconds": 0.0034734170185402036,
          "dense_over_local_forward_speed_ratio": 3.8293824075773153,
          "dense_forward_backward_seconds": 0.015415917034260929,
          "local_forward_backward_seconds": 0.006696083000861108,
          "dense_over_local_forward_backward_speed_ratio": 2.3022290841195456,
          "streamed_forward_seconds": 0.0048143339809030294,
          "dense_over_streamed_forward_speed_ratio": 2.7628000212986086,
          "streamed_forward_backward_seconds": 0.012197708012536168,
          "dense_over_streamed_forward_backward_speed_ratio": 1.2638371912507869,
          "dense_basis_workspace_mib": 64.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        }
      ],
      "conclusions": {
        "evaluation_identity_pass": true,
        "inner_product_identity_pass": true,
        "continuous_identity_pass": true,
        "minimum_cox_speedup": 4.96417326488505,
        "maximum_cox_speedup": 12.210148943435962,
        "materialized_local_wins_all_shapes": false,
        "streamed_forward_crossover_knots": 256,
        "streamed_forward_backward_crossover_knots": 512,
        "note": "For compact cubic Gram application the seven-tap O(M) stencil can beat FFT; FFT is the decisive path for inverse/solve operations and noncompact or composite circulant operators."
      }
    },
    {
      "experiment": "cardinal KAN matrix evaluation and Badoual inner-product calculus",
      "seed": 20260911,
      "backend": "numpy-2.4.6-cpu",
      "evaluation": [
        {
          "batch": 256,
          "edges": 32,
          "knots": 16,
          "outputs": 8192,
          "cox_de_boor_seconds": 0.001399290980771184,
          "cardinal_local_matrix_seconds": 0.00029095797799527645,
          "speedup": 4.809254554256975,
          "relative_error": 1.5744661166409643e-16,
          "cox_temporary_basis_mib": 1.1875,
          "cardinal_local_payload_mib": 0.25
        },
        {
          "batch": 512,
          "edges": 64,
          "knots": 32,
          "outputs": 32768,
          "cox_de_boor_seconds": 0.009043750003911555,
          "cardinal_local_matrix_seconds": 0.0012757920194417238,
          "speedup": 7.088733795238056,
          "relative_error": 1.539297763127242e-16,
          "cox_temporary_basis_mib": 8.75,
          "cardinal_local_payload_mib": 1.0
        },
        {
          "batch": 512,
          "edges": 64,
          "knots": 64,
          "outputs": 32768,
          "cox_de_boor_seconds": 0.015264334040693939,
          "cardinal_local_matrix_seconds": 0.0012526250211521983,
          "speedup": 12.185876685309537,
          "relative_error": 1.5384068753367894e-16,
          "cox_temporary_basis_mib": 16.75,
          "cardinal_local_payload_mib": 1.0
        }
      ],
      "inner_product_calculus": [
        {
          "batch": 32,
          "knots": 64,
          "compact_gram_seconds": 3.270898014307022e-05,
          "fft_gram_seconds": 1.6166013665497303e-05,
          "compact_over_fft_speed_ratio": 2.0233176106290283,
          "compact_fft_relative_error": 3.52725190675287e-16,
          "continuous_quadrature_relative_error": 2.6637142588980132e-08,
          "fft_ridge_solve_seconds": 1.2332922779023647e-05,
          "fft_ridge_solve_relative_residual": 6.92058289390491e-16,
          "dense_gram_mib": 0.03125,
          "circulant_kernel_spectrum_mib": 0.0009918212890625
        },
        {
          "batch": 32,
          "knots": 256,
          "compact_gram_seconds": 5.570799112319946e-05,
          "fft_gram_seconds": 2.983398735523224e-05,
          "compact_over_fft_speed_ratio": 1.8672660298432915,
          "compact_fft_relative_error": 5.099636864246055e-16,
          "continuous_quadrature_relative_error": 2.2891375303240088e-08,
          "fft_ridge_solve_seconds": 2.9667047783732414e-05,
          "fft_ridge_solve_relative_residual": 8.518278959936658e-16,
          "dense_gram_mib": 0.5,
          "circulant_kernel_spectrum_mib": 0.0039215087890625
        },
        {
          "batch": 32,
          "knots": 1024,
          "compact_gram_seconds": 0.0001437499886378646,
          "fft_gram_seconds": 0.00012191699352115393,
          "compact_over_fft_speed_ratio": 1.1790808195489368,
          "compact_fft_relative_error": 8.616480161582965e-16,
          "continuous_quadrature_relative_error": 2.3950432576791153e-08,
          "fft_ridge_solve_seconds": 0.0001193339703604579,
          "fft_ridge_solve_relative_residual": 9.758025693074972e-16,
          "dense_gram_mib": 8.0,
          "circulant_kernel_spectrum_mib": 0.0156402587890625
        },
        {
          "batch": 32,
          "knots": 4096,
          "compact_gram_seconds": 0.00042587495408952236,
          "fft_gram_seconds": 0.000504208030179143,
          "compact_over_fft_speed_ratio": 0.8446413555496346,
          "compact_fft_relative_error": 1.0877884661678537e-15,
          "continuous_quadrature_relative_error": 1.4700281447979987e-08,
          "fft_ridge_solve_seconds": 0.0005366660188883543,
          "fft_ridge_solve_relative_residual": 1.0276987464937475e-15,
          "dense_gram_mib": 128.0,
          "circulant_kernel_spectrum_mib": 0.0625152587890625
        }
      ],
      "torch_framework": [
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 16,
          "device": "mps",
          "relative_error": 4.948684590999619e-07,
          "streamed_relative_error": 4.921362801724172e-07,
          "dense_forward_seconds": 0.0008954999502748251,
          "local_forward_seconds": 0.0013873330317437649,
          "dense_over_local_forward_speed_ratio": 0.6454830453717767,
          "dense_forward_backward_seconds": 0.00046137499157339334,
          "local_forward_backward_seconds": 0.002385042025707662,
          "dense_over_local_forward_backward_speed_ratio": 0.1934452251156872,
          "streamed_forward_seconds": 0.0012452909722924232,
          "dense_over_streamed_forward_speed_ratio": 0.7191090035980289,
          "streamed_forward_backward_seconds": 0.0017900409875437617,
          "dense_over_streamed_forward_backward_speed_ratio": 0.25774549006639097,
          "dense_basis_workspace_mib": 2.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 32,
          "device": "mps",
          "relative_error": 8.860932325660542e-07,
          "streamed_relative_error": 8.838982239467441e-07,
          "dense_forward_seconds": 0.0005922500276938081,
          "local_forward_seconds": 0.0013818329898640513,
          "dense_over_local_forward_speed_ratio": 0.42859740072646213,
          "dense_forward_backward_seconds": 0.000579165993258357,
          "local_forward_backward_seconds": 0.002377375029027462,
          "dense_over_local_forward_backward_speed_ratio": 0.2436157468581146,
          "streamed_forward_seconds": 0.0012344589922577143,
          "dense_over_streamed_forward_speed_ratio": 0.47976484549773185,
          "streamed_forward_backward_seconds": 0.0018304170807823539,
          "dense_over_streamed_forward_backward_speed_ratio": 0.31641203490671693,
          "dense_basis_workspace_mib": 4.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 64,
          "device": "mps",
          "relative_error": 1.7732552350935293e-06,
          "streamed_relative_error": 1.773104713720386e-06,
          "dense_forward_seconds": 0.0009405839955434203,
          "local_forward_seconds": 0.001364958006888628,
          "dense_over_local_forward_speed_ratio": 0.6890937236138475,
          "dense_forward_backward_seconds": 0.0008811668958514929,
          "local_forward_backward_seconds": 0.0024569579400122166,
          "dense_over_local_forward_backward_speed_ratio": 0.3586414246257352,
          "streamed_forward_seconds": 0.001245124964043498,
          "dense_over_streamed_forward_speed_ratio": 0.7554133301519456,
          "streamed_forward_backward_seconds": 0.0018345830030739307,
          "dense_over_streamed_forward_backward_speed_ratio": 0.480309091698253,
          "dense_basis_workspace_mib": 8.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 128,
          "device": "mps",
          "relative_error": 3.6215171803632984e-06,
          "streamed_relative_error": 3.6211872611602303e-06,
          "dense_forward_seconds": 0.0015197920147329569,
          "local_forward_seconds": 0.001401458983309567,
          "dense_over_local_forward_speed_ratio": 1.0844356009220795,
          "dense_forward_backward_seconds": 0.0015742499381303787,
          "local_forward_backward_seconds": 0.0023757920134812593,
          "dense_over_local_forward_backward_speed_ratio": 0.6626211087491716,
          "streamed_forward_seconds": 0.0012287079589441419,
          "dense_over_streamed_forward_speed_ratio": 1.2369025557862834,
          "streamed_forward_backward_seconds": 0.0017997919348999858,
          "dense_over_streamed_forward_backward_speed_ratio": 0.8746844052381308,
          "dense_basis_workspace_mib": 16.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 256,
          "device": "mps",
          "relative_error": 7.219691269710893e-06,
          "streamed_relative_error": 7.218744030978996e-06,
          "dense_forward_seconds": 0.002746624988503754,
          "local_forward_seconds": 0.0013704580487683415,
          "dense_over_local_forward_speed_ratio": 2.0041656809358024,
          "dense_forward_backward_seconds": 0.0029506670543923974,
          "local_forward_backward_seconds": 0.002384499995969236,
          "dense_over_local_forward_backward_speed_ratio": 1.2374363847264465,
          "streamed_forward_seconds": 0.0013215000508353114,
          "dense_over_streamed_forward_speed_ratio": 2.0784145916359447,
          "streamed_forward_backward_seconds": 0.001889707986265421,
          "dense_over_streamed_forward_backward_speed_ratio": 1.5614407494904656,
          "dense_basis_workspace_mib": 32.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        },
        {
          "batch": 1024,
          "inputs": 32,
          "outputs": 64,
          "knots": 512,
          "device": "mps",
          "relative_error": 1.438194522052072e-05,
          "streamed_relative_error": 1.4381641449290328e-05,
          "dense_forward_seconds": 0.00543525000102818,
          "local_forward_seconds": 0.001356957945972681,
          "dense_over_local_forward_speed_ratio": 4.005466799586142,
          "dense_forward_backward_seconds": 0.005712500074878335,
          "local_forward_backward_seconds": 0.002408500062301755,
          "dense_over_local_forward_backward_speed_ratio": 2.371808149101318,
          "streamed_forward_seconds": 0.001285957987420261,
          "dense_over_streamed_forward_speed_ratio": 4.226615530365612,
          "streamed_forward_backward_seconds": 0.0019373750546947122,
          "dense_over_streamed_forward_backward_speed_ratio": 2.948577282976579,
          "dense_basis_workspace_mib": 64.0,
          "materialized_local_workspace_mib": 32.0,
          "streamed_local_workspace_mib": 8.0
        }
      ],
      "conclusions": {
        "evaluation_identity_pass": true,
        "inner_product_identity_pass": true,
        "continuous_identity_pass": true,
        "minimum_cox_speedup": 4.809254554256975,
        "maximum_cox_speedup": 12.185876685309537,
        "materialized_local_wins_all_shapes": false,
        "streamed_forward_crossover_knots": 128,
        "streamed_forward_backward_crossover_knots": 256,
        "note": "For compact cubic Gram application the seven-tap O(M) stencil can beat FFT; FFT is the decisive path for inverse/solve operations and noncompact or composite circulant operators."
      }
    }
  ],
  "sources": {
    "cardinal_kan_matrix_calculus_outputs/metrics.json": "0037b656fd8a7608d966be2e4232a7948682187fbd903a4e8fba51cc28e42d27",
    "cardinal_kan_matrix_calculus_mps_outputs/metrics.json": "a4002638a1d312356ef65ace0654021708f698be464ae4e0602cecdee592e63c"
  },
  "new_training": false,
  "checks": {
    "four_point_cell_gram_relative_error": 2.860404076008828e-16,
    "knots": 32,
    "pairs": 3,
    "seed": 41802
  }
}
