NVIDIA / NVIDIA/nvidia-container-toolkit

Detect minimum required GLIBC version for injected drivers

Open
#543 1 comment 0 reactions 1 assignee View on GitHub

@elezar is already working on this.

Since Jun 14, 2024.

feature lifecycle/frozen
Dominant language
Go
Stars
4.6k
Forks
592
Avg merge
1d 33m
Merged PRs (30d)
61

Description

For newer Tegra-based systems certain driver files have specific GLIBC requirements. For example:

root@11320b0ce1f0:/# LD_PRELOAD=/usr/lib/aarch64-linux-gnu/tegra/libnvidia-ml.so.1 nvidia-smi
nvidia-smi: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so)
nvidia-smi: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/aarch64-linux-gnu/tegra/libnvrm_surface.so)
nvidia-smi: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/aarch64-linux-gnu/tegra/libnvrm_sync.so)
nvidia-smi: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/aarch64-linux-gnu/tegra/libnvos.so)
nvidia-smi: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/aarch64-linux-gnu/tegra/libnvos.so)
nvidia-smi: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/aarch64-linux-gnu/tegra/libnvsciipc.so)
nvidia-smi: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/aarch64-linux-gnu/tegra/libnvsciipc.so)

This means that certain container images are not compatible with this driver.

This information is not directly available to the user and would manifest in the forms of errors such as:

cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL

We could improve the user experience around this by:

  • Implementing a hook that checks for a minimum glibc version in a container. We could extract the required version when generating CDI specifications.
  • Implementing a CLI to check whether a container is compatible with a particular driver.

See also:

  • Bug 4701340

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.