Skip to content

v0.6.0: Native Mac pseudobulk and bounded Metal buffers

Latest

Choose a tag to compare

@heise3 heise3 released this 07 Oct 02:46

ExtremaRank v0.6 adds exact integer pseudobulk optimization in the native R package. The default CPU kernel scans borrowed dense/CSC/CSR/triplet count views once, and stable integer tuple grouping reduces metadata allocation. Mac users can explicitly select backend="metal" with bounded shared input staging and two-limb integer carry/overflow checks. No Python bridge is used.

On an Apple M4 Max, complete pseudobulk calls were 3.03× / 7.10× faster than released v0.5 for fixed 100k / 250k-cell sparse inputs, with 22.1% / 24.5% lower process peak RSS. Existing Kang real counts were 9.74× faster with 32.9% lower peak RSS. All timed outputs matched an independent Matrix reference hash. These figures apply to the stated task and machine, not arbitrary GPU models or the exact ranking search.

Bounded Metal buffers fell by 75.4% / 88.4% versus whole-input staging in the synthetic cases, and 74.5% on Kang. Requested buffer bytes are distinct from total process memory; Apple Silicon unified memory is shared. Metal did not consistently outperform the new CPU pipeline, so auto selects native CPU. System GPU utilization was not measured.

Local validation: R CMD check reports OK with no errors/warnings/notes; 13,568 aggregate count values were compared across native and actually executed Metal results, representing 91,760 input positions in repeated matrix cases. Separate carry, 53/64-bit overflow and HDF5 block tests also passed. The CI-built Mac arm64 binary was unpacked and actually executed Metal on the local Mac. Existing native proof/refit regression tests also passed. Native certificates and observed model refits retain their existing scopes.

Windows and Linux continue to use native CPU. A Windows comparison runner is included for the user's later hardware validation. CUDA execution and NVIDIA GPU performance are not implemented or validated in this release.

The installer verifies SHA-256 and chooses the matching R 4.6 Windows/macOS binary, otherwise the small C++17 source package. GitHub’s tagged Source code zip/tar downloads include the complete code, public benchmark data, data attribution and evidence. RELEASE_MANIFEST.json lists per-file hashes. See SHA256SUMS for the native R packages and wheel.

Final commit: bcdbe94dbde34d748f4834cc85962dadc1bf78a4. Native R / Windows / both Mac architectures / Linux / R version / Bioconductor checks and independent exactness checks passed on this commit.