当前位置: 首页 > news >正文

【深度学习环境】windows安装 NVIDIA Docker

摘要

  1. 不要安装 Docker Desktop!我们将在 Ubuntu 中自行安装 Docker。

  2. 请安装 Windows 10 Insider Build 或 Windows 11 (Beta也行)。(稳定发行版无法在 WSL 2 中使用 GPU)

  3. 请安装 WSL 2 w/Ubuntu 20.04 或同等版本。

  4. 请安装 Nvidia CUDA 软件包(不是 Cuda Toolkit)。

  5. 请在 WSL2/Ubuntu 中手动安装 Docker。

  6. 请在 WSL2/Ubuntu 中安装 Nvidia Container Toolkit。

  7. 使用 Tensorflow 运行 N 体模拟 CUDA 示例、Jupyter。

4 安装 Nvidia CUDA 软件包(不是 Cuda Toolkit)

Nvidia 建议使用 Linux 包管理器在 WSL 2 下安装 CUDA(而不是 CUDA Toolkit)。这是因为 CUDA Toolkit 附带了 Nvidia 的 Linux GPU 驱动程序,该驱动程序不得安装在 WSL 2 下。


wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pinsudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.debsudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.debsudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pubsudo apt-get updatesudo apt-get -y install cuda

运行 CUDA 应用程序

测试:构建并运行 BlackScholes 示例应用程序:

cd /usr/local/cuda-11.4/samples/4_Finance/BlackScholesthen:sudo make BlackScholesthen:./BlackScholes
[./BlackScholes] - Starting...
GPU Device 0: "Ampere" with compute capability 8.6Initializing data...
...allocating CPU memory for options.
...allocating GPU memory for options.
...generating input data in CPU mem.
...copying input data to GPU mem.
Data init done.Executing Black-Scholes GPU kernel (512 iterations)...
Options count             : 8000000
BlackScholesGPU() time    : 0.125945 msec
Effective memory bandwidth: 635.196316 GB/s
Gigaoptions per second    : 63.519632BlackScholes, Throughput = 63.5196 GOptions/s, Time = 0.00013 s, Size = 8000000 options, NumDevsUsed = 1, Workgroup = 128Reading back GPU results...
Checking the results...
...running CPU calculations.Comparing the results...
L1 norm: 1.741792E-07
Max absolute error: 1.192093E-05Shutting down...
...releasing GPU memory.
...releasing CPU memory.
Shutdown done.[BlackScholes] - Test SummaryNOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.Test passed

6.安装Docker

在 bash shell 中,使用以下 Docker 安装脚本来安装 Docker:

curl https://get.docker.com | sh
然后,确保 Docker 处于活动状态:

docker run hello-worldHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

7.Nvidia容器工具包

这里的说明是 Ubuntu 的提供程序(单独运行每个命令):

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.listcurl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.listsudo apt-get updatesudo apt-get install -y nvidia-docker2

然后,在另一个 WSL 2 窗口中,停止并重新启动 docker 守护进程,如下所示:

sudo service docker stop && sudo service docker start

资源

https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#is-microsoft-windows-supported

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html

https://github.com/NVIDIA/nvidia-docker/issues/665

https://developer.nvidia.com/cuda/wsl

http://www.lryc.cn/news/228477.html

相关文章:

  • 【微信小程序】自定义组件(三)
  • Python语言:经典案例分析讲解2
  • dbeaver连接别人的数据库没有表
  • EXIT(1)
  • Qt信号量用于对共享资源进行同步
  • 在报错中学python something
  • 如何调用 DBMS_DISKGROUP 对 ASM 文件进行随机读取
  • UART学习
  • 洗地机哪个牌子最好用?洗地机品牌排行榜
  • 国际阿里云:Windows实例中数据恢复教程!!!
  • 浅谈二叉树
  • (二) 用QWebSocket 实现服务端和客户端(详细代码直接使用)
  • 关于我在配置zookeeper出现,启动成功,进程存在,但是查看状态却没有出现Mode:xxxxx的问题和我的解决方案
  • react及相关面试问题汇总
  • QT4到QT5移植出现的一些问题
  • 【可解释AI】Alibi explain: 解释机器学习模型的算法
  • No191.精选前端面试题,享受每天的挑战和学习
  • ROS基础—vscode创建工作空间
  • 机器学习复习(待更新)
  • taro(踩坑) npm run dev:weapp 微信小程序开发者工具预览报错
  • 3. 深度学习——损失函数
  • 交叉编译 openssl
  • C++文件的读取和写入
  • 住宅IP、家庭宽带IP以及原生IP,它们有什么区别?谷歌开发者账号应选择哪种IP?
  • Linux内核分析(十三)--内存管理之I/O交换与性能调优
  • 前端使用webscoket
  • centos安装Git
  • 网络编程 初探windows编程
  • Vue3 ref函数和reactive函数
  • docker常用命令详解