Go 1.27 SIMD matches NumPy on large data but lags when dataset fits in cache
Go 1.27 introduced an experimental SIMD package in its standard library, prompting a performance comparison against NumPy on a speaker-search index task involving 346,000 vectors and 66 million multiplications per query. On a 253 MB dataset that exceeded cache capacity, Go SIMD and NumPy posted nearly identical median times of 9.54 ms and 9.76 ms respectively, a gap within measurement noise. However, on a 31 MB dataset that fit in L3 cache, NumPy's OpenBLAS backend was 2.4 times faster, reflecting years of hand-tuned, architecture-specific optimisation. Parallelisation across eight cores yielded only about 3x speedup in both languages, suggesting memory bandwidth rather than compute was the true bottleneck at larger sizes. The findings indicate that cache residency, not language choice, is the dominant factor in this class of workload.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in