我正在尝试使用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”命令一起正常工作。)
有人可以提供一些关于如何纠正这个问题的提示吗?
将命令行参数“gpus”传递给容器的正确方法是使用文件“devcontainer.json”(而不是 dockerfile ARGS)。
为此,请在 devcontainer.json 中插入以下行:
"runArgs": ["--gpus=all"],