# nvidia-checker-rs
The crate `nvidia-checker` is a checker CLI tool for nvidia software environment.
It can be used when developers want to use the same environment of nvidia software.
- Supported feature
- [x] Used as library
- [x] Check with specified version
- [ ] Check with specified version in range
- Document
- [crates.io](https://crates.io/crates/nvidia-checker)
- [docs.rs](https://docs.rs/nvidia-checker)
## Use as library
```
nvidia-checker = "0.1.2"
```
## Get started for CLI
### install
- Install `cargo`
- Please see [document](https://doc.rust-lang.org/cargo/getting-started/installation.html)
- Install `nvidia-checker`
```
cargo install nvidia-checker
```
### Print environment
```sh
nvidia-checker
```
### Check with desirable environment
- See [example config](./config/test.toml)
```sh
nvidia-checker --diff ./config/test.toml
```
- Output example
```
17:00:39 [INFO] ===== Start nvidia-checker =====
17:00:39 [INFO] command: uname -r
5.15.0-58-generic
17:00:39 [INFO] command: cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
17:00:39 [INFO] command: cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 545.23.08 Mon Nov 6 23:49:37 UTC 2023
GCC version: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
17:00:39 [INFO] command: nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Wed_Nov_22_10:17:15_PST_2023
Cuda compilation tools, release 12.3, V12.3.107
Build cuda_12.3.r12.3/compiler.33567101_0
hi libcudnn8 8.9.5.29-1+cuda12.2 amd64 cuDNN runtime libraries
hi libcudnn8-dev 8.9.5.29-1+cuda12.2 amd64 cuDNN development libraries and headers
ii ros-humble-cudnn-cmake-module 0.0.1-3jammy.20230112.141335 amd64 Exports a CMake module to find cuDNN.
ii libnvinfer-bin 8.6.1.6-1+cuda12.0 amd64 TensorRT binaries
hi libnvinfer-dev 8.6.1.6-1+cuda12.0 amd64 TensorRT development libraries
ii libnvinfer-dispatch8 8.6.1.6-1+cuda12.0 amd64 TensorRT dispatch runtime library
ii libnvinfer-headers-dev 8.6.1.6-1+cuda12.0 amd64 TensorRT development headers
ii libnvinfer-headers-plugin-dev 8.6.1.6-1+cuda12.0 amd64 TensorRT plugin headers
ii libnvinfer-lean8 8.6.1.6-1+cuda12.0 amd64 TensorRT lean runtime library
hi libnvinfer-plugin-dev 8.6.1.6-1+cuda12.0 amd64 TensorRT plugin libraries
hi libnvinfer-plugin8 8.6.1.6-1+cuda12.0 amd64 TensorRT plugin libraries
ii libnvinfer-vc-plugin8 8.6.1.6-1+cuda12.0 amd64 TensorRT vc-plugin library
hi libnvinfer8 8.6.1.6-1+cuda12.0 amd64 TensorRT runtime libraries
hi libnvonnxparsers-dev 8.6.1.6-1+cuda12.0 amd64 TensorRT ONNX libraries
hi libnvonnxparsers8 8.6.1.6-1+cuda12.0 amd64 TensorRT ONNX libraries
hi libnvparsers-dev 8.6.1.6-1+cuda12.0 amd64 TensorRT parsers libraries
hi libnvparsers8 8.6.1.6-1+cuda12.0 amd64 TensorRT parsers libraries
ii ros-humble-tensorrt-cmake-module 0.0.3-1jammy.20230112.141218 amd64 Exports a CMake module to find TensorRT.
17:00:39 [INFO] ===== Your environment =====
Environment {
checked_time: "2024.01.27 02:00:39",
os: "Ubuntu 22.04.1 LTS",
kernel: "5.15.0-58-generic",
nvidia_driver: "545.23.08",
cuda: "cuda_12.3.r12.3",
cudnn: "8.9.5.29-1+cuda12.2",
tensorrt: "8.6.1.6-1+cuda12.0",
}
17:00:39 [INFO] ===== Check environment =====
17:00:39 [INFO] os: OK
17:00:39 [INFO] kernel: OK
17:00:39 [INFO] nvidia driver: OK
17:00:39 [INFO] cuda: OK
17:00:39 [INFO] cudnn: OK
17:00:39 [INFO] tensorrt: OK
```
### Check with the change from latest check
- If you want to check with the change for NVIDIA software environment as automatic `apt update`, you can use `nvidia-checker` as below.
- The environment file at the last `nvidia-checker` running is at `$HOME/.local/nvidia-checker/latest.toml`.
```sh
nvidia-checker --latest
```
## Run from source files
- Clone repository
```sh
git clone https://github.com/scepter914/nvidia-checker-rs.git
```
- Run
```sh
cargo run --release --bin nvidia-checker -- --diff ./config/test.toml
```
## History
- Next release
- Update README
- v0.1.3
- Fix bug
- v0.1.2
- Update cargo.toml
- v0.1.1
- Arrange crate for library use
- Update README
- v0.1.0
- Published `nvidia-checker` crate