配置深度学习环境 wsl + docker

之前配置过相关的环境但是现在忘了,所以重新回顾一下。我打算用wsl + docker 来搭配我的深度学习环境。我参考了这个blog 做的 Setup Windows 10/11 machines for Deep Learning with Docker and GPU using WSL

首先是安装wsl2 ,由于 我之前配置过docker 所以安装了wsl2,并不需要重新安装,直接跳到下一步,后面就是需要安装NVIDIA 的驱动,由于之前打游戏,换过驱动,我又不想重装,就用了497.09版本,有点老 ,凑合着用吧。

image-20240706183541397

之后安装 CUDA Tookit

什么是 CUDA Tookit?

下面是gpt给出的回答

1
2
3
4
5
6
7
8
9
10
11
12
13
CUDA Toolkit 是由 NVIDIA 提供的一套开发工具,用于创建和优化基于 GPU 加速的高性能应用程序。它包含了多个组件,帮助开发者充分利用 GPU 的计算能力。以下是 CUDA Toolkit 的主要组成部分:

编译器:
NVCC:CUDA 的编译器,用于将 CUDA 代码编译成可以在 GPU 上运行的二进制文件。
库:
CUDA Libraries:包括一系列用于科学计算和实用程序的库,如 cuBLAS(线性代数库)、cuFFT(快速傅里叶变换库)等。
开发工具:
调试器和分析器:如 CUDA-GDB(调试器)和 NVIDIA Visual Profiler(性能分析工具),帮助开发者调试和优化 CUDA 应用程序。
示例代码:
CUDA Samples:提供了大量示例代码,展示如何使用 CUDA 和库 API 进行编程。
驱动程序:
CUDA Driver:确保 GPU 和 CUDA 程序之间的兼容性123.
CUDA Toolkit 是开发 GPU 加速应用程序的基础工具,广泛应用于深度学习、科学计算、图像处理等领域。

由于我的是11.5 我只好下载 11.5版本的工具包

l1.5链接

1
2
3
4
5
6
7
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda-repo-ubuntu2004-11-5-local_11.5.0-495.29.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-5-local_11.5.0-495.29.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-5-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

image-20240706184128630

接下来就是启动docker 和配置工具包了

image-20240706184216154

1
2
3
4
5
6
7
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker

之后我们只需要运行相关容器看是否启动成功。

1
2
docker run --gpus all -it --rm nvidia/cuda:11.5.2-runtime-ubuntu20.04 nvidia-smi

image-20240706201028649

至此,大功告成~


后记:我发现如果用wsl + docker 是不需要 安装CUDA Toolkit 的 镜像一般自带?

如果要卸载相关的东西怎么办?问了gpt答案如下。

1.卸载 CUDA Toolkit

1
sudo apt-get --purge remove "cuda*"

2.卸载 NVIDIA 驱动(如果需要):

1
sudo apt-get --purge remove "nvidia*"

3.删除残留文件

1
`sudo rm -rf /usr/local/cuda* `

4.清理包缓存

1
2
3
sudo apt-get autoremove
sudo apt-get clean

Q:在wls中下载了 cuda 工具包吗 为什么还要拉这个镜像 来执行nvidia-smi 命令, 他是为了测试什么

A:

  1. 验证 GPU 配置:通过运行 nvidia-smi 命令,你可以确认 Docker 容器是否正确配置了 GPU 加速。这是确保你的 Docker 环境能够访问和利用 GPU 的重要步骤。
  2. 隔离环境:使用 Docker 镜像可以创建一个隔离的环境,避免与主机系统的依赖冲突。这对于开发和测试不同版本的库和工具非常有用。
  3. 简化部署:Docker 镜像通常已经预装了所需的库和工具(如 CUDA 和 cuDNN),这使得在不同系统上部署深度学习模型更加方便和一致。
  4. 便于共享:你可以将配置好的 Docker 镜像分享给团队成员或在不同的机器上使用,确保环境的一致性。

通过拉取并运行带有 CUDA 支持的 Docker 镜像,你可以确保你的 Docker 环境能够正确利用 GPU 进行计算,从而为后续的深度学习模型训练和推理提供支持。


删除下载的安装包

  • 如果你下载了 CUDA 的安装包

    1
    .deb

    文件,可以删除它们。在你下载文件的目录中运行:

    1
    2
    3
    bash
    复制代码
    rm cuda-repo-ubuntu2004-11-5-local_11.5.0-495.29.05-1_amd64.deb
  • 请根据实际下载的文件名进行调整。

清理临时文件

  • 清理 apt的缓存文件:

    1
    2
    复制代码
    sudo apt-get clean
  • 清理 dpkg的旧配置文件:

    1
    sudo apt-get autoclean

移除不再需要的依赖和包

  • 可以使用 autoremove 命令来移除不再需要的自动安装的依赖包:

    1
    sudo apt-get autoremove

后面看还有什么需要补充的后续再看!