Skip to content

[S1.7a] P3: KernelKey + rank normalization + reference matmul via defaulted KernelProvider.kernelFor(key); #993/#991 through the registry; kernel sample #1027

Closed

Description

@michalharakal

Sub-issue of #1002 · Phase P3 · Milestone M1 · PRD: M1-F5, M1-A4 · Proposal: §5.1, §5.2, §10 decision #5
Branch: feature/1027-kernel-key-reference-matmul

Design docs: docs/design/memory/memory-architecture-proposal.md (proposal rev. 2, §-numbers below refer to it) and docs/design/memory/memory-architecture-milestones-prd.md (PRD, requirement IDs Mx-Fy/Mx-Ay) — both land with the SKEEP-003 docs PR; until merged they are attached to #932.

Task

Acceptance

M1-A4 green; registry lookup microbenchmark negligible; apiCheck clean (backend-api, backend-cpu).

Depends on

#1022 (S1.3), #1021 (S1.2).

Keeps develop green by

Registry path not yet wired into DefaultCpuOps.matmul (that is #1028 (S1.7b)); additive SPI method with default.

Working rules (every slice)

  • One slice = one branch feature/1027-<slug> from develop = one PR (Closes #1027), merged independently.
  • develop stays usable after merge: additive API or behind façade / opt-in; no default behaviour switch without golden-parity + benchmark evidence in the PR; deprecate with ReplaceWith, never delete before a major (zero-consumer dead code may be removed with evidence in the PR). No new abstract members on TensorData/KernelProvider (defaults only); no data-class primary-constructor changes (secondary ctors only); BCV: apiDump both api/jvm and api/android, apiCheck clean.
  • Test gate before the PR (JDK 25, scripts/pr-gate.sh once it exists): ./gradlew jvmTest linuxX64Test assemble, ./gradlew verifyNpmPins jsTest wasmJsTest wasmWasiTest, ./gradlew apiCheck, ./gradlew :skainet-test:skainet-test-java:test; storage/backend slices add :skainet-lang:skainet-lang-core:jvmBenchmark and :skainet-backends:benchmarks:jvm-cpu-jmh:jmh before/after when a hot path changes.
  • Commits: conventional commit subject, Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> trailer. Do not edit CHANGELOG.md in slice PRs (parallel branches conflict on it; release notes are written at release time from the merged PRs).

Metadata

Metadata

Assignees

No one assigned

    Labels

    codingImplementation task (DARC: C)compute-backendCompute backends and graphsquantizationsub-issueSub-issue of a tracking issue

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions