talos-extensions/nvidia-gpu/nvidia-container-toolkit
Andrey Smirnov e5544b5363
feat: update dependencies
```
| Package | Type | Update | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|---|---|
| cgr.dev/chainguard/wolfi-base |  | digest | `8dd9cea` -> `3b271f8` |  |  |  |  |
| [containerd/stargz-snapshotter](https://redirect.github.com/containerd/stargz-snapshotter) |  | patch | `v0.16.2` -> `v0.16.3` | [![age](https://developer.mend.io/api/mc/badges/age/github-releases/containerd%2fstargz-snapshotter/v0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-releases/containerd%2fstargz-snapshotter/v0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-releases/containerd%2fstargz-snapshotter/v0.16.2/v0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/containerd%2fstargz-snapshotter/v0.16.2/v0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [containers/crun](https://redirect.github.com/containers/crun) |  | minor | `1.18.2` -> `1.19.1` | [![age](https://developer.mend.io/api/mc/badges/age/github-releases/containers%2fcrun/1.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-releases/containers%2fcrun/1.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-releases/containers%2fcrun/1.18.2/1.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/containers%2fcrun/1.18.2/1.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| git://git.kernel.org/pub/scm/libs/libcap/libcap.git |  | minor | `2.72` -> `2.73` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/git:%2f%2fgit.kernel.org%2fpub%2fscm%2flibs%2flibcap%2flibcap.git/2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/git:%2f%2fgit.kernel.org%2fpub%2fscm%2flibs%2flibcap%2flibcap.git/2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/git:%2f%2fgit.kernel.org%2fpub%2fscm%2flibs%2flibcap%2flibcap.git/2.72/2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/git:%2f%2fgit.kernel.org%2fpub%2fscm%2flibs%2flibcap%2flibcap.git/2.72/2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| golang.org/x/sys | require | minor | `v0.27.0` -> `v0.28.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsys/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsys/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsys/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsys/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [https://github.com/containerd/runwasi.git](https://redirect.github.com/containerd/runwasi) |  | minor | `v0.4.0` -> `v0.5.0` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fcontainerd%2frunwasi.git/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fcontainerd%2frunwasi.git/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fcontainerd%2frunwasi.git/v0.4.0/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fcontainerd%2frunwasi.git/v0.4.0/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [https://github.com/qemu/qemu.git](https://redirect.github.com/qemu/qemu) |  | minor | `9.1.2` -> `9.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fqemu%2fqemu.git/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fqemu%2fqemu.git/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fqemu%2fqemu.git/9.1.2/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fqemu%2fqemu.git/9.1.2/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [https://gitlab.gnome.org/GNOME/glib.git](https://gitlab.gnome.org/GNOME/glib) |  | minor | `2.82.0` -> `2.83.2` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgitlab.gnome.org%2fGNOME%2fglib.git/2.83.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgitlab.gnome.org%2fGNOME%2fglib.git/2.83.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgitlab.gnome.org%2fGNOME%2fglib.git/2.82.0/2.83.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgitlab.gnome.org%2fGNOME%2fglib.git/2.82.0/2.83.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [kubernetes/cloud-provider-aws](https://redirect.github.com/kubernetes/cloud-provider-aws) |  | patch | `v1.31.1` -> `v1.31.4` | [![age](https://developer.mend.io/api/mc/badges/age/github-releases/kubernetes%2fcloud-provider-aws/v1.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-releases/kubernetes%2fcloud-provider-aws/v1.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-releases/kubernetes%2fcloud-provider-aws/v1.31.1/v1.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/kubernetes%2fcloud-provider-aws/v1.31.1/v1.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [open-iscsi/open-isns](https://redirect.github.com/open-iscsi/open-isns) |  | minor | `0.102` -> `0.103` | [![age](https://developer.mend.io/api/mc/badges/age/github-tags/open-iscsi%2fopen-isns/0.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/open-iscsi%2fopen-isns/0.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/open-iscsi%2fopen-isns/0.102/0.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/open-iscsi%2fopen-isns/0.102/0.103?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [siderolabs/talos-metal-agent](https://redirect.github.com/siderolabs/talos-metal-agent) |  | patch | `v0.1.0-beta.0` -> `v0.1.0-beta.1` | [![age](https://developer.mend.io/api/mc/badges/age/github-releases/siderolabs%2ftalos-metal-agent/v0.1.0-beta.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-releases/siderolabs%2ftalos-metal-agent/v0.1.0-beta.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-releases/siderolabs%2ftalos-metal-agent/v0.1.0-beta.0/v0.1.0-beta.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/siderolabs%2ftalos-metal-agent/v0.1.0-beta.0/v0.1.0-beta.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [tailscale/tailscale](https://redirect.github.com/tailscale/tailscale) |  | minor | `1.76.6` -> `1.78.1` | [![age](https://developer.mend.io/api/mc/badges/age/github-releases/tailscale%2ftailscale/1.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-releases/tailscale%2ftailscale/1.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-releases/tailscale%2ftailscale/1.76.6/1.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/tailscale%2ftailscale/1.76.6/1.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-26 16:20:59 +04:00
..
lts fix: image reproducibility with finalize 2024-09-16 21:03:24 +04:00
nvidia-container-cli feat: update dependencies 2024-12-26 16:20:59 +04:00
nvidia-container-runtime chore: bump nvidia toolkit 2024-11-28 23:57:40 +05:30
nvidia-container-runtime-wrapper feat: update dependencies 2024-12-26 16:20:59 +04:00
nvidia-persistenced-wrapper feat: update dependencies 2024-12-26 16:20:59 +04:00
nvidia-pkgs feat: update Linux to 6.12 2024-11-27 15:51:23 +04:00
production fix: image reproducibility with finalize 2024-09-16 21:03:24 +04:00
DEVELOPMENT.md feat: use wolfi as base for nvidia 2023-08-02 21:36:00 +05:30
README.md docs: update documentation on installing extensions 2023-09-29 22:49:23 +04:00

NVIDIA Container toolkit extension

Installation

See Installing Extensions.

Usage

The following NVIDIA modules needs to be loaded, so add this to the talos config:

machine:
  kernel:
    modules:
      - name: nvidia
      - name: nvidia_uvm
      - name: nvidia_drm
      - name: nvidia_modeset

nvidia-container-cli loads BPF programs and requires relaxed KSPP setting for bpf_jit_harden, so Talos default setting should be overridden:

machine:
  sysctls:
    net.core.bpf_jit_harden: 1

Warning! This disables KSPP best practices setting.

Testing

Apply the following manifest to create a runtime class that uses the extension:

---
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: nvidia
handler: nvidia

Install the NVIDIA device plugin:

helm repo add nvdp https://nvidia.github.io/k8s-device-plugin
helm repo update
helm install nvidia-device-plugin nvdp/nvidia-device-plugin --version=0.14.1 --set=runtimeClassName=nvidia

Apply the following manifest to run CUDA pod via nvidia runtime:

---
apiVersion: v1
kind: Pod
metadata:
  name: gpu-operator-test
spec:
  restartPolicy: OnFailure
  runtimeClassName: nvidia
  containers:
  - name: cuda-vector-add
    image: "nvidia/samples:vectoradd-cuda11.6.0"
    resources:
      limits:
         nvidia.com/gpu: 1

The status can be viewed by running:

 kubectl get pods
NAME                READY   STATUS      RESTARTS   AGE
gpu-operator-test   0/1     Completed   0          13s
 kubectl logs gpu-operator-test
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done