google / google/gvisor

Gvisor doesn't inject the icd file for nvidia, as is done by nvidia container toolkit

Open
#12,752 2 comments 0 reactions 0 assignees View on GitHub
area: gpu stale-issue type: bug
Dominant language
Go
Stars
19.3k
Forks
2k
Avg merge
3d 5h
Merged PRs (30d)
264

Description

### Description

Currently, gVisor does not inject `nvidia_icd.json` even when `nvproxy-allowed-driver-capabilities = "all"` is set.

When running with the nvidia container toolkit, this file injection is handled automatically, which allows vulkan to correctly detect the graphics card, instead of falling back to the CPU pipeline.

### Steps to reproduce

Run a workload with gVisor, such as `ubuntu:latest`.
Install `vulkan-tools`, and run `vulkaninfo --summary 2>/dev/null | grep -E "deviceName|deviceType|driverName"`, see that it outputs:
```
deviceType = PHYSICAL_DEVICE_TYPE_CPU
deviceName = llvmpipe (LLVM 15.0.7, 256 bits)
driverName = llvmpipe
```
Try `find / -name "nvidia_icd.json"` which returns no results.

### runsc version

```shell
release-20260309.0
```

### docker version (if using docker)

```shell

```

### uname

_No response_

### kubectl (if using Kubernetes)

```shell

```

### repo state (if built from source)

_No response_

### runsc debug logs (if available)

```shell

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.