Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Schedule on Android: verify CoroutineSchedule on ART and measure scheduled SDPA on device

未关闭
#1,277 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
android, kotlin

调研方向

Read the Schedule getting started documentation, the Android DirectCpuExecutionContext() actual, and the related issues #1196, #1259, #1262, and #1266. First establish which default schedule Android resolves to, then run the requested [20, 1500, 64] SDPA comparison on a physical arm64 device and add an androidTest in skainet-backend-jni-cpu or skainet-backend-cpu. Done means the docs report measured numbers and the tests demonstrate bit-identity, with no deadlock or oversubscription.

由索引模型根据 Issue 内容生成。

描述

compute-backend runtime skill:android

Context

0.54.0 introduced Schedule (SKEEP-005): scaledDotProductAttention runs its (batch, head) units on the context's schedule, and the JVM default is CoroutineSchedule.hardware(). The changelog describes the JVM behaviour and the CI deadlock fix (#1262, #1266); nothing states what the Android compilation resolves to.

An encoder-style workload (Whisper: 20 heads × 1500 frames, prefill-shaped, not decode-shaped) is exactly where head-level parallelism pays, and Android big.LITTLE cores make the pool sizing non-obvious (#1196 documented that sleeping pools lose to one pegged big core for sub-millisecond bursts).

Scope

  • State and test what DirectCpuExecutionContext() uses as its default Schedule on Android (androidMain actual, or the JVM one via the shared source set?).
  • Run the SDPA schedule on a physical arm64 device with prefill shapes ([20, 1500, 64]) and record speedup vs Schedule.Sequential, on big cores only vs all cores.
  • Decide whether the JNI row-threading pool (skainet_row_threads, spin-then-park) and CoroutineSchedule should coexist per op or whether one should own the cores on Android; document the choice.
  • TraceEvent.ScheduleDowngraded visible on Android when a requested schedule is not honoured.
  • An androidTest in skainet-backend-jni-cpu (or skainet-backend-cpu) that exercises a scheduled SDPA on device and asserts bit-identity with sequential.

Acceptance

  • The docs' "Schedule getting started" page has an Android paragraph with measured numbers.
  • No deadlock or oversubscription when a scheduled op runs inside a JNI-threaded matmul region and vice versa.

Related

  • #1259, #1262, #1266 — Schedule introduction and the CI deadlock
  • #1196 — threaded packed matmuls and the pool design notes
主要语言
Kotlin
星标
52
派生
15
平均合并
1 天 8 小时
30 天内合并 PR
37

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

SKaiNET-developers/SKaiNET 的其他 Issue

查看 SKaiNET-developers/SKaiNET 的全部 Issue

相似的 Issue

更多 Kotlin Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。