WSL2上Docker打包的镜像迁移到Ubuntu服务器上无法使用GPU
WSL2上Docker打包的镜像迁移到Ubuntu服务器上无法使用GPU的解决方法
·
WSL2子系统上Docker打包的镜像迁移到Linux服务器后,启动容器输入命令nvidia-smi
,没有输出预期的显卡和驱动信息,而是报错:
```
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system.
Please also try adding directory that contains libnvidia-ml.so to your system PATH.
```
从报错的信息来看,是无法检索到libnvidia-ml.so文件,所以要找到这个文件的路径(如果存在的话),建立正确的软连接。解决问题的方法:
-
检查软链接是否有问题
ldconfig
如果输出很多
***empty
,说明软链接确实有问题。 -
查询系统中文件名开头为“libnvidia-ml”的文件路径
find -name libnvidia-ml*
可以看到文件在路径
/usr/lib/x86_64-linux-gnu
下面 -
建立软链接
进入
/usr/lib/x86_64-linux-gnu
,建立正确的软链接。# 在容器中运行以下命令,注意下面的450.102.04是驱动版本信息,应当根据实际情况修改 cd /usr/lib/x86_64-linux-gnu # 建立软链接 libcuda.so > libcuda.so.1 cp libcuda.so libcuda.so.backup rm libcuda.so ln -s libcuda.so.1 libcuda.so # 建立软链接 libcuda.so.1 > libcuda.so.450.102.04 cp libcuda.so.1 libcuda.so.1.backup rm libcuda.so.1 cp libcuda.so.450.102.04 libcuda.so.1 # 建立软链接 libnvidia-ml.so.1 > libnvidia-ml.so.450.102.04 cp libnvidia-ml.so.1 libnvidia-ml.so.1.backup rm libnvidia-ml.so.1 ln -s libnvidia-ml.so.450.102.04 libnvidia-ml.so.1
-
有网友提出了另外一种解决方法,就是在WSL2子系统的Docker上启动容器不添加
--gpus all
配置参数,即不使用GPU。等配置好环境后,打包镜像,在服务器上再使用GPU来跑代码。这个方法我还没验证过,但看起来可行。
参考文章
更多推荐
已为社区贡献1条内容
所有评论(0)