Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Validate kllama Apple native-kernel fix (PR #315) on real iOS/macOS hardware

Aperta
#316 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
kotlin

Direzione di ricerca

The remaining work is a before/after packed-quant matmul throughput comparison on real Apple hardware; the issue does not name a benchmark file or command. First read PR #315 and the engine’s #958/#959 performance results, then locate the benchmark entry point. Record comparable results for the old stub and the fix on an Apple Silicon device; simulator or compile results alone do not meet the stated goal.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

help wanted

Context

PR #315 fixed llm-runtime/kllama's PlatformNativeKernels.ios.kt/.macos.kt,
which were stale no-op stubs — both cited SKaiNET#959 as "not shipped yet" when
it had in fact shipped, meaning kllama's registerPlatformBackends() facade
was silently leaving packed-quant matmul on the scalar floor on iOS and macOS,
despite the engine's native-cinterop NEON/Accelerate kernels being built and
available.

The fix itself (calling installNativeKernels(), mirroring linuxMain's
actual) was written and reviewed, but could not be compiled or run in the
session that produced it — that environment was Linux only, and Kotlin/Native
requires a macOS host to compile Apple targets at all. Verification there was
limited to code review and cross-target compilation (jvm/linuxX64/android/js).

What needs a Mac

  • ./gradlew :llm-runtime:kllama:compileKotlinIosArm64 :llm-runtime:kllama:compileKotlinIosSimulatorArm64 :llm-runtime:kllama:compileKotlinMacosArm64 — confirm the fix actually compiles (the installNativeKernels() import/call was written against the API but never type-checked on an Apple target). Update: it did not compile as originally written — implementation(libs.skainet.backend.nativeCpu) was still scoped to linuxMain only, not nativeMain, so macosMain/iosMain never got the dependency. Fixed in PR #315 commit 9bb3707; all three Apple targets now compile.
  • At runtime, confirm KernelRegistry.bestAvailable()?.name (or equivalent) reports native-cinterop on iOS/macOS after registerPlatformBackends() runs, not scalar. Confirmed via KernelRegistry.availableNames() on both macosArm64Test and iosSimulatorArm64Test: reports [native-cinterop].
  • A real before/after comparison: packed-quant matmul throughput with the old no-op stub vs. the fix, on an actual Apple Silicon device/simulator — the engine's own NEON/cinterop work (#958/#959) reported real numbers on Android-equivalent hardware; this fix has none yet for Apple.
  • Run kllama's existing test suite on iosSimulatorArm64Test/macosArm64Test (both currently skip on CI/Linux — kotlin.native.ignoreDisabledTargets). Both green, including the cross-target SmolLm2InferenceSpike (commonTest).

Related

  • Fixed by #315
  • Exercised end-to-end by SKaiNET-examples' KernelRace sample — see SKaiNET-examples#33, which needs this issue resolved before its iOS build shows real NEON acceleration instead of scalar.

Good fit for whoever on the team has a Mac + Xcode handy — no deep kernel-SPI knowledge needed, mostly "build it, run it, check the numbers." Remaining: real-device throughput numbers (needs physical hardware time, not just simulator/compile verification).

Lingua principale
Kotlin
Stelle
8
Fork
3
Merge medio
19h 45m
PR unite (30g)
38

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di SKaiNET-developers/SKaiNET-transformers

Tutte le issue di SKaiNET-developers/SKaiNET-transformers

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.