Windows 11 上 WSL2 Docker 容器如何启用 GPU

疫情初期,开始在Windows 10上玩Docker容器,有幸成功安装和使用了几个基于WSL2的容器,比如FB的LASER项目,但一直无法使用Windows的显卡,在网上找到一些攻略,望而却步了。我一向奉行“拿来主义”,不能轻松拿来的,我是不太会继续费力不讨好的。

最近突然想起这事来,上网一搜,说最新版本的Docker已经支持在容器里使用GPU了,而且安装起来非常简便,只需拉取Nvidia自己制作的镜像,哈,喜大普奔呀!

首先上网搜到了Docker Hub的Nvidia镜像网址:
https://hub.docker.com/r/nvidia/cuda?_gl=1*1o2jgu*_ga*MTMwNjQ2MzY3OS4xNjkxMjM5Mzgw*_ga_XJWPQMJYHQ*MTY5MTI0Mjg0MC4yLjEuMTY5MTI0MzE0NC41NS4wLjA.

上面说拉取命令行是:docker pull nvidia/cuda,试了一下,出错。继续搜了一下,找到Nivdia在Gitlab上的开发repo,里面提到这个,说已经放弃使用latest这个tag,而上面那个命令行是默认拉取latest。而且还说他们的Ubuntu镜像以及有CUDA 12.2版本。正确的拉取命令行是:
docker pull nvidia/cuda:12.2.0-base-ubuntu20.04

马上试了一下,成功拉取。马上迫不及待地运行一下:docker run -it --gpus=all --rm nvidia/cuda:12.2.0-base-ubuntu20.04 nvidia-smi,出错,说CUDA版本不匹配。用nvidia-smi命令行查询,说我的当前安装的CUDA版本是12.0。果断转到Nvidia的最新CUDA下载网址:
http://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_network

安装几分钟到十几分钟,之后需要重新启动操作系统。这里说一点我的经验,CUDA每次升级,并不会把之前的旧版本删除:不同版本的CUDA是安装在不同文件夹下,以不同的版本号区分,而且会在系统变量里加上这些不同版本号以及相应路径,这样不同的程序要想调用相应的CUDA版本,读取相应的系统变量即可。

重启完毕,再次运行上面那个命令行,哈,成功显示GPU信息:

 Docker命令行,我一直比较发憷,连最基本的都记不住(可能有老年痴呆迹象了)。这次成功运行,让我很有成就感,于是想深挖一下其具体含义,闻了一下ChatGPT:

 嗯,不错。稍微改造一下,用 

docker run -it --gpus=all  nvidia/cuda:12.2.0-base-ubuntu20.04

成功进入我想要的交互界面。我知道Nvidia这个Ubuntu镜像,只是特别安装了CUDA,以便能够使用显卡。开发环境,比如Anaconda,还是要自己继续安装的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值