基础环境
- 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.list
sudo 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 目录
 
 在容器中执行相关程序即可



















