Avatar for the OpenMathLib user
OpenMathLib
OpenBLAS
BlogDocsChangelog

Performance History

Latest Results

arm64: NEON BFDOT sbgemm kernel for VORTEX (Apple M1-M3) sbgemm on the Apple targets so far ran the generic C fallback; with FEAT_BF16 (present at least since M2, probed at run time so older cores keep the fallback) the new kernel accumulates C in sixteen quad registers of eight columns by two row groups. One BFDOT does a two-wide dot per lane, so rows l and l+1 of the packed panels are zipped into the lane layout (i, k & 1); the B pair of a column is duplicated across the lanes and the A pairs cover four rows each. An odd k is a zero vector, blocks narrower than eight run in scalar code. With SBGEMM_UNROLL_M = SBGEMM_UNROLL_N the driver routes the A side through the O copies as well, so both panels come in the power-of-two grouping of #6142's copies, which this renames to role-based names (oncopy/otcopy for both sides, ncopy/tcopy kept for the M-side-only use of the M4 SME2 target). On an M3 Pro: 39116-case randomized sbgemm sweep against a double-precision reference passes unchanged, and against the generic fallback of develop the packed path is 34x at 1024^3 (57 vs 1.7 GFLOPS) and 63x at 2048x2048x1024 (114 vs 1.8 GFLOPS), about a quarter of the fp32 NEON sgemm of the same build.
0tomhoyt:sbgemm-bfdot
6 hours ago
fix type typo
martin-frbg:lapack1361
8 hours ago

Latest Branches

CodSpeed Performance Gauge
0%
arm64: NEON BFDOT sbgemm kernel for VORTEX (Apple M1-M3)#6145
10 hours ago
fe87291
0tomhoyt:sbgemm-bfdot
CodSpeed Performance Gauge
0%
CodSpeed Performance Gauge
0%
© 2026 CodSpeed Technology
Home Terms Privacy Docs