#intrinsics #simd #compile-time

no-std safe_arch

通过 core::arch#[cfg()] 中安全暴露的 Crate

16 个版本

0.7.2 2024年6月17日
0.7.1 2023年7月17日
0.7.0 2023年5月8日
0.6.0 2021年6月23日
0.5.0 2020年6月28日

#52硬件支持

Download history 120359/week @ 2024-04-30 127285/week @ 2024-05-07 131995/week @ 2024-05-14 128458/week @ 2024-05-21 138963/week @ 2024-05-28 136406/week @ 2024-06-04 133230/week @ 2024-06-11 138476/week @ 2024-06-18 137293/week @ 2024-06-25 128911/week @ 2024-07-02 137663/week @ 2024-07-09 148303/week @ 2024-07-16 164096/week @ 2024-07-23 161529/week @ 2024-07-30 168573/week @ 2024-08-06 188264/week @ 2024-08-13

708,914 每月下载量
用于 329 个 Crates (2 直接)

Zlib OR Apache-2.0 OR MIT

490KB
7K SLoC

Docs.rs

safe_arch

将架构特定的内联函数暴露为安全函数。

  • SIMD 类型被封装为新类型(带有一个 pub 字段)并提供了适当的 trait 实现,例如 FromIntoDefault 等。
  • 每个内联函数都对应一个函数或宏,以便您尽可能直接地安全使用它。
    • 当所有参数都是运行时参数时使用函数。
    • 当其中一个参数必须是编译时常量时使用宏,因为 Rust 不允许“传递”编译时常量。
  • 由于有数百个内联函数,因此函数和宏的名称往往非常长且特定,因为通常有几种几乎相同的方法来做几乎相同的事情。
    • 这个 Crate 并非真正面向“普通用户”。它旨在成为一个“无偏见”的中层 Crate,只为提供安全性。更高层次的抽象应该主要来自其他一些封装此 Crate 的 Crate。

所有函数和宏的可用性都是通过在各个模块上的 #[cfg()] 属性在编译时完成的。如果构建时未启用 CPU 功能,则这些函数或宏将不可用。如果您想确定运行时哪些 CPU 功能可用,然后相应地调用不同的代码,则此 Crate 不适合您。

有关更多详细信息,请参阅 crate 文档

其他资源

依赖关系