Docker nvidia/cuda/pytorch 容器在 Dockerfile 中找不到 GPU

问题描述 投票:0回答:1

我正在尝试使用Pytorch和nvidia/cuda设置开发环境,但它不起作用。

以下命令按预期工作并识别 GPU:

docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:24.08-py3

(来自 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch

(下载并启动容器需要几分钟。)

但是,如果我使用以下 Dockerfile,则无法识别 GPU(我正在尝试使用 ./devcontainer/Dockerfile 在 Windows 11 中的 VSCode 中使用 WSL2 构建容器):

ARG gpus=all
FROM nvcr.io/nvidia/pytorch:24.08-py3

尝试奔跑

python -c 'import torch; print(torch.cuda.current_device())'

给出了这个错误:

RuntimeError: Found no NVIDIA driver on your system. 
Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx

命令“nvcc --version”运行正常:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Fri_Jun_14_16:34:21_PDT_2024
Cuda compilation tools, release 12.6, V12.6.20
Build cuda_12.6.r12.6/compiler.34431801_0

但是命令“nvidia-smi”没有返回任何内容(并且它与“docker run”命令一起正常工作。)

有人可以提供一些关于如何纠正这个问题的提示吗?

docker pytorch dockerfile cuda
1个回答
0
投票

将命令行参数“gpus”传递给容器的正确方法是使用文件“devcontainer.json”(而不是 dockerfile ARGS)。

为此,请在 devcontainer.json 中插入以下行:

"runArgs": ["--gpus=all"],
© www.soinside.com 2019 - 2024. All rights reserved.