Sri*_*adi 8 virtualization hyper-v docker windows-10
我正在尝试在Windows 10中的Docker容器中运行应用程序。
但是我无法使GPU在docker内部工作。
我读到它需要“ GPU直通”。
我应该如何解决?
现在 Windows 10 上的 docker 可以访问 WSL2(从 Windows 10 版本 2004 开始),它已经为 Windows 10 上 Linux docker 容器的 GPU 支持扫清了道路。
根据此官方博客,MS“将在未来几个月内开始预览 Windows 10 Insider 版本中对 WSL 的 GPU 计算支持”:https : //devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux- build-2020-summary/#wsl-gpu
我预计 Docker GPU 支持很快就会出现。
更新:
现在,在非常特殊的情况下,Windows 中的 GPU 直通是可能的,包括:
请参阅:https : //docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/gpu-acceleration
更新 2:
现在可以在最新的 Windows Insider 版本上从 Windows 主机上的 Linux docker 传递 GPU,请参阅:
https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2
这可能会在下一次重大更新中流向主流 Windows。
更新 3:
确认 Windows 构建版本 2021 将包括 WSL 的 GPU 直通。在此处查看公告的详细信息:https : //blogs.windows.com/windowsdeveloper/2021/05/25/the-windows-developers-guide-to-microsoft-build-2021/
Windows目前不支持从Docker容器中进行GPU访问。
您需要nvidia-docker
,但是当前仅在Linux平台上受支持。使用Hyper-v的GPU直通将需要离散设备分配(DDA),该设备目前仅在Windows Server中使用,并且(至少在2015年)没有计划更改这种状态。因此,NVIDIA目前未移植nvidia-docker
到Windows。
此处提供更多信息:https : //devblogs.nvidia.com/nvidia-docker-gpu-server-application-deployment-made-easy/
更新(2019年10月):nvidia-docker
已弃用,因为Docker 19.03具有对NVIDIA GPU的本地支持。而是安装nvidia-container-runtime
,并使用该docker run --gpus all
标志。您还可以使用Docker 19.03在Windows主机上运行具有GPU加速功能的Windows容器,但不能使用Linux容器。
如果您需要从 Windows 10 上的 Linux 容器访问 NVIDIA CUDA,如果您对使用 Insider 构建的(当前)要求满意,则有一种简单的方法可以做到。我使用这种方法成功地在 TensorFlow 2 中的 GPU 上训练模型。
Settings - General - Use the WSL2 backed engine
.docker
从 WSL2 内部(不仅仅是从 PowerShell/cmd)使用CLI,请在Settings - Resources - WSL INTEGRATION
.docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody
你需要传递--gpus=all
到docker run
使容器访问GPU。(如果您使用 VSCode 远程容器,请添加"runArgs": ["--gpus=all"],
到devcontainer.json
.)
您可能会在--runtime=nvidia
图像的描述中遇到提及nvidia-docker
(如官方 TensorFlow 图像)。只需在提供的命令中替换--runtime=nvidia
为--gpus=all
。
*更新:Insider Dev 频道现已移至 Windows 11。目前尚不清楚此功能是否会在稳定的 Windows 10 上运行,或仍为 Windows 11 独有。
归档时间: |
|
查看次数: |
6344 次 |
最近记录: |