我正在尝试创建一个可访问GPU的Windows Docker容器。首先,我只想尝试检查是否可以在Docker容器上访问GPU。
FROM mcr.microsoft.com/windows:1903
CMD [ "ping", "-t", "localhost" ]
docker build -t debug_image .
docker run -d --gpus all --mount src="C:\Program Files\NVIDIA Corporation\NVSMI",target="C:\Program Files\NVIDIA Corporation\NVSMI",type=bind debug_image
docker exec -it CONTAINER_ID powershell
现在我进入了,我尝试执行共享的NVIDIA SMI可执行文件。但是,我遇到了一个错误,它无法运行。显而易见的问题是,如果主机有能力,为什么。
PS C:\Program Files\NVIDIA Corporation\NVSMI> .\nvidia-smi.exe
NVIDIA-SMI失败,因为它无法与NVIDIA通信 司机。确保已安装最新的NVIDIA驱动程序, 运行。如果非NVIDIA GPU的运行速度也可能发生这种情况 主要显示,而NVIDIA GPU处于WDDM模式。
关于NVIDIA驱动程序,AFAIK应该不会返回任何问题,因为它可以在安装了NVIDIA驱动程序的主机上运行。
我的主机有2个NVIDIA GPU,并且由于它是未连接屏幕的服务器,因此没有“主要”显示。 AFAIK,它的CPU没有集成的GPU,所以我假设连接的NVIDIA GPU之一是主显示器(如果在没有显示器连接到服务器时确实存在)(另外,我认为应该是,因为当需要时我通过TeamViewer进行连接时会显示一个屏幕,并且dxdiag
将其中之一返回为Display 1
)。
关于WDDM模式,我发现了ways to change it,但是没有找到检查当前模式的方法。
所以基本上是一个问题,为什么它不起作用?对前面几点的任何见解或帮助都会有所帮助。
更新。
关于:
1)我的驱动程序已从431更新为441,最新版本可用于GTX 1080 Ti
,并且错误消息保持不变。
2-3)我已经confirmed认为GTX(某些Titan型号除外)不能在TCC模式下运行。因此,它们以WDDM模式运行。