Mat*_* M. 10
答案是肯定的,并提出警告:
core::arch模块在x86和x86_64上稳定可用,重新导出为std::arch.core::arch,在这种情况下需要内联汇编,这也需要夜间编译器.该std::arch模块仅提供CPU指令作为内在函数,并且需要使用unsafe块以及特定feature于包含这些指令的函数来正确对齐参数.该文档std::arch是CPU功能的编译时和运行时检测的良好起点.
如文档中所述,未来某些时候可能会提供更高级别的API std::simd(可能core::simd); 在试映中是可用的stdsimd箱子:
人体工程学
重要的是要注意使用该
arch模块并不是世界上最简单的事情,所以如果你好奇地尝试它,你可能想要为自己的一些冗长做准备!该模块的主要目的是在crates.io上启用稳定的板条箱,以构建更符合人体工程学的抽象,最终在引擎盖下使用SIMD.随着时间的推移,这些抽象也可能会进入标准库本身,但是现在这个模块的任务是提供在稳定的Rust上使用供应商内在函数所需的最低限度.
注意:您也可以使用FFI链接到为您执行此操作的库中; 例如,Shepmaster的丘比特箱使用这样的策略在运行时访问cpu功能.