基础环境
- windows 环境: Windows 11
- 版本:22H2
- 操作系统版本:22621.2283
- wsl2: 1.2.5.0
Docker Desktop: Docker Desktop 4.23.0
CUDA driver for WSL 版本: 535.104.07
宿主机上的 nvidia 环境如下所示:
宿主机安装套件
在宿主机上安装 nvidia-container-toolkit
# Acquire version of operating system version
DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$DISTRIBUTION/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.listsudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2
sudo systemctl restart docker
配置 Docker Engine
在 /etc/docker/daemon.json
中配置,或是在 Docker Desktop -> settings -> Docker Engine
中配置让Docker可以使用 nvidia-container-runtime
- 在
/etc/docker/daemon.json
中配置方法如下所示
vim /etc/docker/daemon.json{"runtimes": {"nvidia": {"path": "nvidia-container-runtime","runtimeArgs": []}}
}
- 在
Docker Desktop -> settings -> Docker Engine
中配置如下所示
获取MindSpore镜像
对于GPU后端,可以直接使用以下命令获取最新的稳定镜像:
docker pull swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-{cuda_version}:{version}
docker pull swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-{cuda_version}:{version}
其中:
- {version} 对应MindSpore版本,如1.5.0。
- {cuda_version} 对应MindSpore依赖的CUDA版本,包括cuda10.1,cuda11.1和cuda11.6。
另外,如果需要获取构建环境或者运行时环境镜像:
运行MindSpore镜像
执行以下命令启动Docker容器实例:
docker run -it -v /dev/shm:/dev/shm --runtime=nvidia swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-{cuda_version}:{tag} /bin/bash
其中:
-v /dev/shm:/dev/shm
将NCCL共享内存段所在目录挂载至容器内部;--runtime=nvidia
用于指定容器运行时为nvidia-container-runtime
;{tag}
对应上述表格中的标签。{cuda_version}
对应MindSpore依赖的CUDA版本,包括cuda10.1,cuda11.1和cuda11.6。
验证是否成功安装
按照上述步骤进入MindSpore容器后,测试Docker是否正常工作,请运行下面的Python代码并检查输出:
python -c "import mindspore;mindspore.set_context(device_target='GPU');mindspore.run_check()"
如果输出:
MindSpore version: 版本号
The result of multiplication calculation is correct, MindSpore has been installed on platform [GPU] successfully!
运行程序
写好的程序放在 /dev/shm
目录映射的本机目录下,在容器中执行即可
例如:我将容器的 /dev/shm
映射到了本机的 D:\DockerDesktopWSL\ContainerFile\mindspore
目录
在容器中执行相关程序即可