49 个版本 (稳定)
11.1.0 | 2024 年 7 月 16 日 |
---|---|
11.0.1 | 2023 年 5 月 3 日 |
10.7.0 | 2023 年 2 月 27 日 |
10.6.0 | 2022 年 9 月 12 日 |
0.0.2 | 2015 年 3 月 24 日 |
#4 在 硬件支持
2,163,781 每月下载量
用于 1,145 个 Crates (58 直接)
510KB
9K SLoC
cpuid
一个用于解析 x86 CPUID 指令的库,用 Rust 编写,无外部依赖。该实现与英特尔 CPUID 手册描述非常相似。库在 no_std
环境中运行。一些附加的 cargo 功能需要 std
(例如,美化打印,序列化)。
- 对于英特尔平台:代码应与英特尔架构 SDM 的 2018 年 3 月修订版同步。
- 对于 AMD 平台,它应与 AMD64 系统手册 No. 24594 的修订版 3.32 (2021 年 3 月) 保持一致。
库使用
use raw_cpuid::CpuId;
let cpuid = CpuId::new();
if let Some(vf) = cpuid.get_vendor_info() {
assert!(vf.as_str() == "GenuineIntel" || vf.as_str() == "AuthenticAMD");
}
let has_sse = cpuid.get_feature_info().map_or(false, |finfo| finfo.has_sse());
if has_sse {
println!("CPU supports SSE!");
}
if let Some(cparams) = cpuid.get_cache_parameters() {
for cache in cparams {
let size = cache.associativity() * cache.physical_line_partitions() * cache.coherency_line_size() * cache.sets();
println!("L{}-Cache size is {}", cache.level(), size);
}
} else {
println!("No cache parameter information available")
}
cpuid
二进制文件
raw-cpuid
随附一个 cpuid
二进制文件,可以安装到宿主系统以检查 CPUID 指令的输出。
要安装,请使用
cargo install raw-cpuid --features cli
由于 cargo 限制,当前需要 cli
功能来构建二进制版本。
文档
依赖关系
~0–12MB
~69K SLoC