P9 (WIP): compiled kernels (rust/simurg-core, PyO3) with bit-identical pure-Python fallback

Rust ports of the hot paths found by profiling: fused per-locus GenCall calling
and scoring, BAF/LRR, libm maps with CPython math semantics, both nearest-neighbour
searches of the normalization fit, and the BPM LocusEntry parser. Address
coverage is memoised per IDAT layout. SIMURG_PURE_PYTHON=1 forces the pure paths.
On the Pi: genotype_sample 3.4 s -> 1.1 s, 36-sample GSA run 131 s -> 46 s, BPM
read 4x faster; 36 GSA + 6 Omni2.5 GTCs and QC tables byte-identical to the pure
path; tests/unit/test_core_kernels.py checks every kernel on edge cases.
bench/profile_genotype.py, bench/scaling.py, cloud task p9 (thread scaling).
This commit is contained in:
kemal committed 2026-09-28 21:28:55 +01:00
1 parent f11b39b5a3
commit 6524a6d1b0
19 files changed
+1755 -6

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
[package]
name = "simurg-core"
version = "1.0.0"
edition = "2021"
license = "MIT"
description = "Compiled kernels for SimurgArray (plan §18 P9)"
publish = false
[lib]
name = "simurg_core"
crate-type = ["cdylib"]
[dependencies]
numpy = "0.29.0"
pyo3 = { version = "0.29", features = ["extension-module", "abi3-py312"] }
[profile.release]
opt-level = 3
lto = true
codegen-units = 1