{
  "model": "spatial-computer pitch128 / instruction-set v4",
  "model_spec_commit": "01a0bd5e0d2564825b0f53dd766f763c82dbc7c0",
  "model_url": "https://github.com/cybertronai/simplified-dally-model/blob/01a0bd5e0d2564825b0f53dd766f763c82dbc7c0/models/spatial-computer/README.md",
  "score_kind": "exact static counts of a globally serialized legal schedule",
  "numeric_execution_checked_by_scorer": false,
  "program_sha256": "73a5e72abd5f387d255c7db1f7fa7ef74d535fc65ff4df743843e97e72bd8a6b",
  "configuration": {
    "config": {
      "K": 4,
      "L1": 2,
      "L2": 2,
      "N": 60,
      "Q": 8,
      "block": 4,
      "blocks": 9,
      "components": 2,
      "em_steps": 8,
      "empty_cluster_rule": "retain previous centroid unless assigned count > 1",
      "exp_saturation_delta": 128,
      "exp_squarings": 10,
      "features": 72,
      "filter_rounds": 3,
      "first_bank_patches": 2160,
      "kernel": 3,
      "kmeans_steps": 8,
      "mixture_seed_by_class": [
        900,
        901,
        902,
        903,
        904,
        905,
        906,
        907,
        908,
        909
      ],
      "pca_rounds": 3,
      "responsibility_epsilon": 1e-09,
      "second_bank_patches": 4320,
      "side": 6,
      "sqrt_steps": 20,
      "stride": 1
    },
    "differences_from_A100": [
      "Ordered FP32 covariance/reductions instead of FP64 filter covariance and CUDA reductions.",
      "Orthonormal subspace iteration instead of library eigendecomposition.",
      "Gauss-Jordan inverses and primitive log/exp/sqrt approximations replace library operations.",
      "No A100 accuracy claim transfers to this grid program."
    ],
    "dropped_unused_front_regions": [
      "FtF",
      "FtY",
      "W",
      "Y",
      "ap",
      "gb",
      "labels",
      "out",
      "p",
      "rr",
      "sc",
      "zz"
    ],
    "output": "one uint32 predicted class per query; no query-label input",
    "prequalification_corrections": [
      "Per-class randperm seeds 900+c and empty-cluster retention now match the submitted algorithm.",
      "Component responsibility epsilon corrected to 1e-9.",
      "Removed the historical bag wrapper score standardization for the single mixture member.",
      "Primitive exp saturates at an underflowing argument and uses ten squarings to avoid overflow.",
      "Corrections selected from source comparison and primitive validation before reading any full-run test accuracy."
    ],
    "seed_implementation": "First k CPU randperm entries reproduced by exact-FP32 binary remainder and a sparse Fisher-Yates swap map; masked class-relative row selection.",
    "status": "experimental; numeric qualification required",
    "tape_order": "train images FP32 /255, test images FP32 /255, train labels uint32"
  },
  "energy_fj": 5419841814,
  "energy_mj": 0.005419841814,
  "word_node_hops": 5419841814,
  "cycles": 41255203,
  "time_ms": 41.255203,
  "time_ns": 41255203,
  "components": {
    "reads": {
      "scratch_accesses": 23171544,
      "energy_fj": 3787250190,
      "cycles": 28730720
    },
    "writes": {
      "scratch_accesses": 10986515,
      "energy_fj": 1591229386,
      "cycles": 12198859
    },
    "input_destinations": {
      "scratch_accesses": 2508,
      "energy_fj": 378030,
      "cycles": 2628
    },
    "output_sources": {
      "scratch_accesses": 8,
      "energy_fj": 3472,
      "cycles": 24
    },
    "input_stage_and_tape": {
      "stage_scratch_accesses": 2508,
      "tape_instructions": 2508,
      "energy_fj": 40730368,
      "cycles": 321968
    },
    "output_stage_and_tape": {
      "stage_scratch_accesses": 8,
      "tape_instructions": 8,
      "energy_fj": 250368,
      "cycles": 1004
    }
  },
  "logical_instructions": {
    "set": 251719,
    "recv": 2508,
    "copy": 140472,
    "add": 2923130,
    "mul": 3374980,
    "sub": 1265478,
    "div": 214800,
    "cmp": 973512,
    "select": 1842424,
    "send": 8
  },
  "executed_instructions": {
    "set": 251719,
    "recv": 2508,
    "copy": 142988,
    "add": 2923130,
    "mul": 3374980,
    "sub": 1265478,
    "div": 214800,
    "cmp": 973512,
    "select": 1842424,
    "send": 8
  },
  "total_executed_instructions": 10991547,
  "input_tape_words": 2508,
  "output_tape_words": 8,
  "per_port_words": {
    "input": [
      11,
      11,
      11,
      11,
      11,
      11,
      11,
      11,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10,
      10
    ],
    "output": [
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      1,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      0
    ]
  },
  "program_scratch_words": 22244,
  "stage_scratch_words": 250,
  "peak_allocated_scratch_words": 22494,
  "peak_allocated_scratch_bytes": 89976,
  "peak_initialized_program_words": 22244,
  "memory_tiles": 250,
  "max_tile_scratch_words": 12288,
  "compute_processor": [
    125,
    0
  ],
  "instruction_issuing_processors": 250,
  "max_simultaneous_outstanding_accesses": 1,
  "max_simultaneous_instructions": 1,
  "stage_local_coordinate": [
    64,
    31
  ],
  "placement_sha256": "a6de091daded3701b206856bf24d6d30d799980578dbed31795270d1d2525c6a",
  "histograms_computed": 2619,
  "initialization_proof_visits": 22938,
  "schedule": "Expand original affine loops in lexicographic iteration order. Complete every access before starting the next. Each normal instruction runs on P(125,0), reading listed sources then writing destination. Lower kth recv to P(k mod250,0):recv stage; P(125,0):copy original_dst,stage. Lower qth send to P(125,0):copy stage,original_src; P(q mod250,0):send stage. Route remote requests horizontally then vertically; responses retrace. Global serialization defines access/transfer cycle starts by prefix sums of blocking latencies; no contention or waiting queues occur.",
  "time_to_score_seconds": 0.04342619696399197,
  "time_to_score_scope": "Program/schema/address/initialization validation, physical placement, affine access histograms, exact integer costs, port counts and program/placement hashing; excludes program generation, JSON/file I/O and numerical accuracy execution",
  "optimized_scorer_matches_original": true,
  "program_metadata": {
    "config": {
      "K": 4,
      "L1": 2,
      "L2": 2,
      "N": 60,
      "Q": 8,
      "block": 4,
      "blocks": 9,
      "components": 2,
      "em_steps": 8,
      "empty_cluster_rule": "retain previous centroid unless assigned count > 1",
      "exp_saturation_delta": 128,
      "exp_squarings": 10,
      "features": 72,
      "filter_rounds": 3,
      "first_bank_patches": 2160,
      "kernel": 3,
      "kmeans_steps": 8,
      "mixture_seed_by_class": [
        900,
        901,
        902,
        903,
        904,
        905,
        906,
        907,
        908,
        909
      ],
      "pca_rounds": 3,
      "responsibility_epsilon": 1e-09,
      "second_bank_patches": 4320,
      "side": 6,
      "sqrt_steps": 20,
      "stride": 1
    },
    "differences_from_A100": [
      "Ordered FP32 covariance/reductions instead of FP64 filter covariance and CUDA reductions.",
      "Orthonormal subspace iteration instead of library eigendecomposition.",
      "Gauss-Jordan inverses and primitive log/exp/sqrt approximations replace library operations.",
      "No A100 accuracy claim transfers to this grid program."
    ],
    "dropped_unused_front_regions": [
      "FtF",
      "FtY",
      "W",
      "Y",
      "ap",
      "gb",
      "labels",
      "out",
      "p",
      "rr",
      "sc",
      "zz"
    ],
    "output": "one uint32 predicted class per query; no query-label input",
    "prequalification_corrections": [
      "Per-class randperm seeds 900+c and empty-cluster retention now match the submitted algorithm.",
      "Component responsibility epsilon corrected to 1e-9.",
      "Removed the historical bag wrapper score standardization for the single mixture member.",
      "Primitive exp saturates at an underflowing argument and uses ten squarings to avoid overflow.",
      "Corrections selected from source comparison and primitive validation before reading any full-run test accuracy."
    ],
    "seed_implementation": "First k CPU randperm entries reproduced by exact-FP32 binary remainder and a sparse Fisher-Yates swap map; masked class-relative row selection.",
    "status": "experimental; numeric qualification required",
    "tape_order": "train images FP32 /255, test images FP32 /255, train labels uint32"
  },
  "scorer_optimizations": [
    "Vectorized proof of contiguous source-free initialization.",
    "Uncached affine histograms to bound host memory.",
    "Chunked integer dot products with checked int64 overflow bounds."
  ],
  "source_sha256": {
    "score_candidate.py": "2fefa0fdb12d74b9a48391832c0225afe6ce6654eb5d690346981e1f1a65f8bd",
    "shared/score.py": "41b47384ec525718a4546f98f5ad25a4d82dd8bdfb97a762e451476cae29eaf8",
    "shared/affine.py": "8ac38bf9fccbef87ba05c4dd6a4e5d9901dceae4e71baad0ddd5794c22298d45",
    "build_candidate.py": "4fe1270c3a28afaa560b37f7b3e905f099d42b427981bd751b08dc23e7ee64e4"
  }
}
