{
  "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": "53398a35ecc0c049965414a2fd5ec2e222f0ea8f13153c4a0da92c2c8d7bd045",
  "configuration": {
    "algorithm": "ordered-FP32 quadratic discriminant analysis (per-class Gaussian, full covariance, no shrinkage, class-frequency prior, log-determinant)",
    "classes": 10,
    "features": 9,
    "train_examples": 1000,
    "test_examples": 1000,
    "training": "one masked pass in supplied order: counts, sums, packed second moments via cmp(eq)/select; mean = sum/count; S = M/count - mu mu^T; Gauss-Jordan inverse without pivoting; kappa = log(count/N) - 0.5*sum log(pivots)",
    "log": "40 halving and 40 doubling compare/select steps into [0.75, 1.5], then k*ln2 + 2*atanh((x-1)/(x+1)) with the series to z^15",
    "prediction": "per query and class: d = q - mu; s = sum_i d_i * sum_{j>=i} P'_ij d_j with P' the packed upper triangle (off-diagonals doubled); score = kappa - 0.5*s; first strict maximum wins",
    "tape": "train pixels FP32 bits, train labels uint32, test pixels FP32 bits (one query streamed at a time)",
    "normalization": "x*float32(4)-float32(0.5)",
    "initialization": "all scratch explicitly zeroed (charged); no learned or random initial state",
    "reference": "reference.py in this directory (label-equal under the executor in spatial_program.py on all 11 official draws)",
    "variant": {
      "stage_x": true,
      "stage_label": false,
      "poly": true,
      "normalize": false,
      "region_order": [
        "s",
        "k",
        "xs",
        "q",
        "qq",
        "prod",
        "sc",
        "cnt",
        "sum",
        "mom",
        "pk",
        "kap",
        "pb",
        "Pw",
        "S",
        "mu",
        "labels",
        "x",
        "d"
      ],
      "skip_init": [
        "k",
        "xs",
        "prod",
        "labels",
        "x"
      ]
    }
  },
  "energy_fj": 889633966,
  "energy_mj": 0.000889633966,
  "word_node_hops": 889633966,
  "cycles": 10316314,
  "time_ms": 10.316314,
  "time_ns": 10316314,
  "components": {
    "reads": {
      "scratch_accesses": 5380610,
      "energy_fj": 393466680,
      "cycles": 5380610
    },
    "writes": {
      "scratch_accesses": 2417208,
      "energy_fj": 170092254,
      "cycles": 2417208
    },
    "input_destinations": {
      "scratch_accesses": 19000,
      "energy_fj": 2169032,
      "cycles": 19000
    },
    "output_sources": {
      "scratch_accesses": 1000,
      "energy_fj": 66000,
      "cycles": 1000
    },
    "input_stage_and_tape": {
      "stage_scratch_accesses": 19000,
      "tape_instructions": 19000,
      "energy_fj": 307648000,
      "cycles": 2432000
    },
    "output_stage_and_tape": {
      "stage_scratch_accesses": 1000,
      "tape_instructions": 1000,
      "energy_fj": 16192000,
      "cycles": 66496
    }
  },
  "logical_instructions": {
    "set": 2578,
    "recv": 19000,
    "copy": 32650,
    "mul": 653780,
    "cmp": 27000,
    "select": 584000,
    "add": 1096250,
    "div": 2970,
    "sub": 17980,
    "send": 1000
  },
  "executed_instructions": {
    "set": 2578,
    "recv": 19000,
    "copy": 52650,
    "mul": 653780,
    "cmp": 27000,
    "select": 584000,
    "add": 1096250,
    "div": 2970,
    "sub": 17980,
    "send": 1000
  },
  "total_executed_instructions": 2457208,
  "input_tape_words": 19000,
  "output_tape_words": 1000,
  "per_port_words": {
    "input": [
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76,
      76
    ],
    "output": [
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4,
      4
    ]
  },
  "program_scratch_words": 11522,
  "stage_scratch_words": 250,
  "peak_allocated_scratch_words": 11772,
  "peak_allocated_scratch_bytes": 47088,
  "peak_initialized_program_words": 11522,
  "memory_tiles": 250,
  "max_tile_scratch_words": 11523,
  "compute_processor": [
    125,
    0
  ],
  "instruction_issuing_processors": 250,
  "max_simultaneous_outstanding_accesses": 1,
  "max_simultaneous_instructions": 1,
  "stage_local_coordinate": [
    64,
    31
  ],
  "placement_sha256": "e95031b61ca0ae09e5a7204bbca70d0e23b87c07ad6d5217c9f3888327ff1d32",
  "histograms_computed": 1578,
  "initialization_proof_visits": 11549,
  "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.09482990700053051,
  "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",
  "software": {
    "python": "3.11.15 (main, Aug  7 2026, 02:25:55) [Clang 22.1.3 ]",
    "numpy": "2.4.6",
    "platform": "Linux-6.8.0-139-generic-x86_64-with-glibc2.39"
  },
  "source_sha256": {
    "affine.py": "8ac38bf9fccbef87ba05c4dd6a4e5d9901dceae4e71baad0ddd5794c22298d45",
    "score.py": "41b47384ec525718a4546f98f5ad25a4d82dd8bdfb97a762e451476cae29eaf8",
    "spatial_program.py": "c1c7e0a73d6b912aa38bcaf282d4c79fb56490072befe414ad4f753a99b39b3a"
  },
  "program_file_sha256": "1105907d1c4e7447663994da76178c607ded04985e952687093edcc9b8e78bb7"
}
