В Go 1.27 добавили экспериментальный пакет `simd` для написания кода, использующего SIMD, без привязки к архитектуре. Он поддерживает AVX, NEON и wasm, а на платформах без SIMD включает эмуляцию. Разработчики Go постарались скрыть различия в размерах векторов и маскировании между AVX, NEON и SVE.
go.dev · #infra #go #performance #simd
Версия 0.2 использует батчинг, сливание операторов и SIMD. На бенчмарке Clickbench Clickhouse Postgres в pgrust в 300 раз быстрее обычного Postgres и даже обгоняет Clickhouse. На OLTP-тестах прирост 30%. Простая сумма 500 млн чисел — 20 секунд у Postgres против 358 мс у Rust.
malisper.me · #infra #database #postgres #simd
Статья Shnatsel про то, как сделать SIMD в Rust безопасным не только снаружи, но и внутри библиотечного кода. Если кратко, это про аккуратную работу с векторными инструкциями без обычного «ну тут unsafe, вы держитесь» в каждом втором месте.
shnatsel.medium.com · #tool #rust #safety #simd