Fearless SIMD v1.0
Fearless SIMD v1.0 устраняет необходимость в unsafe коде при работе с SIMD-операциями в Rust, предоставляя безопасный и производительный доступ к векторным инструкциям. Библиотека достигает этого благодаря макросу kernel!, который использует целевые признаки компилятора (target feature v1.1) для вызова intrinsics без unsafe, а также модулю безопасного трансмутирования, вдохновлённому bytemuck и zerocopy, который заменяет небезопасные загрузки и хранения через сырые указатели на безопасные абстракции. Это позволяет избежать тысяч unsafe блоков, типичных для других SIMD-абстракций, при сохранении полного контроля над производительностью.
Библиотека предлагает два варианта операций с платформозависимым поведением: точный (переносимый) и быстрый (платформозависимый), позволяя разработчикам выбирать между корректностью и скоростью в зависимости от ожидаемых данных. Она поддерживает как фиксированные, так и аппаратно-зависимые векторные размеры, обеспечивая полное использование аппаратных возможностей на любой платформе. При необходимости можно безопасно спускаться до платформенно-специфичных intrinsics без накладных расходов, сохраняя при этом переносимость остального кода. Fearless SIMD уже используется напрямую в 30 crate и косвенно — более чем в тысяче, что подтверждает её роль в экосистеме Rust. Несмотря на надежды на стабилизацию std::simd, библиотека останется актуальной благодаря своим уникальным возможностям: мультиверсионированию, поддержке аппаратной ширины векторов и планам по интеграции с будущими расширениями вроде SVE и RISC-V V без разрыва API. Обещаны три года обновлений безопасности для v1.0 и последующих версий.