答案是肯定的,但要注意:
core::arch
module上可用,重新出口为std::arch
.core::arch
获得,在这种情况下,内联汇编是必要的,这也需要一个夜间编译器.std::arch
模块只提供作为内部函数的CPU指令,并且需要在包含这些指令的函数上使用unsafe
个块以及特定feature
来正确对齐参数.std::arch
的文档是CPU特性的编译时和运行时检测的良好起点.
正如文件中所指出的,在future 的某个时候,std::simd
(可能还有core::simd
)下可能会提供更高级别的API;预告片有the stdsimd
crate个版本:
人体工程学
重要的是要注意,使用
arch
模块并不是世界上最简单的事情,所以如果你想try 一下,你可能需要准备一些冗长的内容!本模块的主要目的是在 crate 上启用稳定的 crate .io建立了更多的人体工程学抽象概念,最终在引擎盖下使用SIMD.随着时间的推移,这些抽象可能也会转移到标准库本身中,但目前这个模块的任务是提供在稳定的数据库上使用供应商内部函数所需的最低限度.
Note: you may also possibly use the FFI to link in a library that does so for you; for example 100 uses such a strategy to access cpu features at runtime.