#gpu #hip #api-bindings #rocm #radeon #rsmi

rocm_smi_lib

用于从 Rust 使用 rocm-smi 的简单易用的 crate

4 个版本

0.2.3 2024 年 8 月 24 日
0.2.2 2024 年 4 月 13 日
0.2.0 2024 年 3 月 9 日
0.1.15 2023 年 12 月 31 日
0.1.14 2023 年 10 月 8 日

#312 in 硬件支持

Download history 4/week @ 2024-05-04 4/week @ 2024-05-11 14/week @ 2024-05-18 39/week @ 2024-05-25 7/week @ 2024-06-01 7/week @ 2024-07-06

每月 1,174 次下载

MIT/Apache

46KB
1K SLoC

rocm_smi_lib_rs

将 rocm-smi 库从 C 提供支持的 crate

兼容性

crate 版本 Rocm 版本
<2.0 <6.0
2.1 - 2.2 已验证损坏
2.3 6.0-6.2

安装

cargo add rocm_smi_lib

您可以通过使用 vendored 功能来省略安装 rocm-smi。

要使用此 crate,您必须安装 rocm-smi 库

Manjaro

sudo pacman -S rocm-smi-lib rocm-smi

Fedora / RHEL

创建名为 /etc/yum.repos.d/rocm.repo 的文件,并使用以下内容写入

[ROCm-6.0.2]
name=ROCm6.0.2
baseurl=https://repo.radeon.com/rocm/rhel9/6.0.2/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key

对于 suse,将文件路径更改为 /etc/zypp/repos.d/rocm.repo baseurl 更改为 https://repo.radeon.com/rocm/zyp/6.0.2/main

然后在 Fedora 上运行

sudo dnf install rocm-smi rocm-smi-devel rocm-smi-lib

在 RHEL 上

sudo yum install --nogpgcheck rocm-smi-lib

在 Suse 上

sudo zypper install rocm-smi-lib

Ubuntu

运行命令

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.0.2 focal main" \
    | sudo tee --append /etc/apt/sources.list.d/rocm.list

echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
    | sudo tee /etc/apt/preferences.d/rocm-pin-600

sudo apt update

sudo apt install rocm-dkms rocm-dev rocm-smi-lib

其他

有关其他信息,请参阅 如何安装 ROCM

使用/示例

打印您的 GPU 名称的示例

fn print_gpu_name() -> Result<(), RocmErr> {
    let rocm = RocmSmi::init()?;
    let name = rocm.get_device_identifiers(0)?.name;
    println!("{}", name);
    Ok(())
}    

与上面相同,但创建了设备对象

fn print_gpu_name() -> Result<(), RocmErr> {
    let rocm = RocmSmi::init()?.into_first_device()?; // into first devic requires enabling `device` feature
    let name = rocm.get_identifiers()?.name;
    println!("{}", name);
    Ok(())
}    

RC 版本

请考虑测试 RC 版本并在其中报告错误,API 很大,单独在许多 GPU 上测试一切需要花费很多时间。

待办事项

  • 修复 get_full_metrics()
  • 设置器(直到我有测试团队和/或找出跨不同 GPU 的自动测试方法,否则不会完成)

依赖关系

~0.2–5MB