Skip to content

Commit 0bedf07

Browse files
author
Evan Lezar
committed
Merge branch 'backport-install-nvidia-ctk' into 'release-1.12'
Backport changes for 1.12.1 release See merge request nvidia/container-toolkit/container-toolkit!332
2 parents 57a4072 + 5c86ca1 commit 0bedf07

File tree

4 files changed

+28
-3
lines changed

4 files changed

+28
-3
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
* Discover all `gsb*.bin` GSP firmware files when generating CDI specification.
1010
* Remove `fedora35` packaging targets
1111
* [libnvidia-container] Include all `gsp*.bin` firmware files if present
12+
* [toolkit-container] Install `nvidia-ctk` from toolkit container
13+
* [toolkit-container] Use installed `nvidia-ctk` path in NVIDIA Container Toolkit config
14+
* [toolkit-container] Bump CUDA base images to 12.1.0
1215

1316
## v1.12.0
1417

test/container/toolkit_test.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ testing::toolkit::install() {
6161
grep -q -E "^\s*ldconfig = \"@${nvidia_run_dir}/driver/sbin/ldconfig(.real)?\"" "${shared_dir}/usr/local/nvidia/toolkit/.config/nvidia-container-runtime/config.toml"
6262
grep -q -E "^\s*root = \"${nvidia_run_dir}/driver\"" "${shared_dir}/usr/local/nvidia/toolkit/.config/nvidia-container-runtime/config.toml"
6363
grep -q -E "^\s*path = \"/usr/local/nvidia/toolkit/nvidia-container-cli\"" "${shared_dir}/usr/local/nvidia/toolkit/.config/nvidia-container-runtime/config.toml"
64+
grep -q -E "^\s*path = \"/usr/local/nvidia/toolkit/nvidia-ctk\"" "${shared_dir}/usr/local/nvidia/toolkit/.config/nvidia-container-runtime/config.toml"
6465
}
6566

6667
testing::toolkit::delete() {

tools/container/toolkit/toolkit.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,12 @@ func Install(cli *cli.Context, opts *options) error {
204204
return fmt.Errorf("error installing NVIDIA container runtime hook: %v", err)
205205
}
206206

207-
err = installToolkitConfig(toolkitConfigPath, nvidiaContainerCliExecutable, opts)
207+
nvidiaCTKPath, err := installContainerToolkitCLI(opts.toolkitRoot)
208+
if err != nil {
209+
return fmt.Errorf("error installing NVIDIA Container Toolkit CLI: %v", err)
210+
}
211+
212+
err = installToolkitConfig(toolkitConfigPath, nvidiaContainerCliExecutable, nvidiaCTKPath, opts)
208213
if err != nil {
209214
return fmt.Errorf("error installing NVIDIA container toolkit config: %v", err)
210215
}
@@ -262,7 +267,7 @@ func installLibrary(libName string, toolkitRoot string) error {
262267

263268
// installToolkitConfig installs the config file for the NVIDIA container toolkit ensuring
264269
// that the settings are updated to match the desired install and nvidia driver directories.
265-
func installToolkitConfig(toolkitConfigPath string, nvidiaContainerCliExecutablePath string, opts *options) error {
270+
func installToolkitConfig(toolkitConfigPath string, nvidiaContainerCliExecutablePath string, nvidiaCTKPath string, opts *options) error {
266271
log.Infof("Installing NVIDIA container toolkit config '%v'", toolkitConfigPath)
267272

268273
config, err := toml.LoadFile(nvidiaContainerToolkitConfigSource)
@@ -311,6 +316,9 @@ func installToolkitConfig(toolkitConfigPath string, nvidiaContainerCliExecutable
311316
config.Set(key, value)
312317
}
313318

319+
// Set nvidia-ctk options
320+
config.Set("nvidia-ctk.path", nvidiaCTKPath)
321+
314322
_, err = config.WriteTo(targetConfig)
315323
if err != nil {
316324
return fmt.Errorf("error writing config: %v", err)
@@ -322,6 +330,19 @@ func installToolkitConfig(toolkitConfigPath string, nvidiaContainerCliExecutable
322330
return nil
323331
}
324332

333+
// installContainerToolkitCLI installs the nvidia-ctk CLI executable and wrapper.
334+
func installContainerToolkitCLI(toolkitDir string) (string, error) {
335+
e := executable{
336+
source: "/usr/bin/nvidia-ctk",
337+
target: executableTarget{
338+
dotfileName: "nvidia-ctk.real",
339+
wrapperName: "nvidia-ctk",
340+
},
341+
}
342+
343+
return e.install(toolkitDir)
344+
}
345+
325346
// installContainerCLI sets up the NVIDIA container CLI executable, copying the executable
326347
// and implementing the required wrapper
327348
func installContainerCLI(toolkitRoot string) (string, error) {

versions.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ NVIDIA_CONTAINER_RUNTIME_VERSION := 3.12.0
2424
# Specify the expected libnvidia-container0 version for arm64-based ubuntu builds.
2525
LIBNVIDIA_CONTAINER0_VERSION := 0.10.0+jetpack
2626

27-
CUDA_VERSION := 12.0.1
27+
CUDA_VERSION := 12.1.0
2828
GOLANG_VERSION := 1.18.8
2929

3030
GIT_COMMIT ?= $(shell git describe --match="" --dirty --long --always --abbrev=40 2> /dev/null || echo "")

0 commit comments

Comments
 (0)