Rust и musl поймали один и тот же баг в FMA 🧩
Разработчик Shnatsel писал свою математику для операции a*b+c с одним округлением и заметил: на субнормальных числах результат уходит на 1 младший бит. Потом проверил Rust `f32::mul_add`, `std::simd` и `fmaf()` в musl — везде та же история.
Проблема всплывает там, где FMA эмулируется софтом: старые Intel без AVX2, Hygon, 32-битный ARM. Для обычных задач разница крошечная, но для детерминированных симуляций это уже боль — там важно получать одинаковые биты на разных машинах. Челябинским разработчикам, кто пишет численные расчёты и кросс-платформенный софт, стоит взять на заметку.
IT Челябинск — t.me/it_chelyabinsk
IT Челябинск
@it_chelyabinsk
Rust и musl поймали один и тот же баг в FMA 🧩
Источники:
Этот пост опубликован в Telegram-канале IT Челябинск. Подписаться можно по ссылке: @it_chelyabinsk.