首页 > 系统相关 >使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习

使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习

时间:2025-01-13 10:24:32浏览次数:1  
标签:11 容器 Windows 宿主机 Podman nvidia GPU WSL2 NVIDIA

使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习

概述

本文将指导您如何利用 Podman Desktop 安装时提供的 WSL2 环境,来启动宿主机的 GPU 进行深度学习任务。

前提条件

确保您的 Windows 11 已经启用了 WSL2 和虚拟化功能,并且安装了最新版本的 NVIDIA 驱动程序(支持 WSL2)。NVIDIA 驱动程序通常会自动为 WSL2 添加 GPU 支持,因此不需要单独下载任何内容。

配置 WSL2 环境以使用 NVIDIA GPU

尽管 Podman Desktop 已经自动配置了大部分环境,为了能够使用宿主机的 GPU,还需要额外的步骤来安装 nvidia-container-toolkit

安装 NVIDIA 容器工具包

进入通过 Podman Desktop 创建的 WSL2 环境后,执行以下命令来安装 NVIDIA 容器工具包:

# 更新包列表并安装所需的依赖项
sudo apt-get update && sudo apt-get install -y curl gnupg2 software-properties-common

# 添加 NVIDIA 容器工具包仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.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

# 安装 NVIDIA 容器工具包
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

# 应用更改并重启相关服务(如果适用)
sudo systemctl restart podman

# 生成新的容器设备接口 (CDI) 规范文件
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml

验证 NVIDIA 容器工具包安装

安装完成后,可以通过检查通过 Podman Desktop 创建的 WSL2 环境是否能够成功加载 NVIDIA 模块来验证安装:

nvidia-smi

该命令应该返回有关 GPU 设备的信息,而不是错误消息。

使用 Podman Desktop 启动 GPU 加速的容器

现在您可以使用 Podman Desktop 来启动包含 GPU 支持的容器。例如,拉取一个 PyTorch 容器镜像并在其中测试 GPU 是否可用:

验证命令

在 windows11 终端中执行以下命令,以拉取一个支持 GPU 的 PyTorch 容器镜像,并检查 CUDA 是否可用:

# 拉取包含 GPU 支持的 PyTorch 容器镜像
podman run --rm --device nvidia.com/gpu=all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

如果一切设置正确,您应该看到输出类似于:

PS C:\Users\admin> podman run --rm --device nvidia.com/gpu=all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi  
Fri Aug 16 18:58:14 2024  
+---------------------------------------------------------------------------------------+  
| NVIDIA-SMI 545.36 Driver Version: 546.33 CUDA Version: 12.3 |  
|-----------------------------------------+----------------------+----------------------+  
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |  
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |  
| | | MIG M. |  
|=========================================+======================+======================|  
| 0 NVIDIA GeForce RTX 3060 On | 00000000:07:00.0 On | N/A |  
| 0% 34C P8 20W / 170W | 886MiB / 12288MiB | 1% Default |  
| | | N/A |  
+-----------------------------------------+----------------------+----------------------+  
  
+---------------------------------------------------------------------------------------+  
| Processes: |  
| GPU GI CI PID Type Process name GPU Memory |  
| ID ID Usage |  
|=======================================================================================|  
| 0 N/A N/A 33 G /Xwayland N/A |  
+---------------------------------------------------------------------------------------+

则表明您的 WSL2 环境已经正确配置,并且 Podman 能够利用宿主机的 GPU 来加速深度学习任务。

未解决的问题:无法使用 podman-compose 方式启用 GPU

在尝试使用 podman-compose 来启用 GPU 时遇到了问题。具体表现为,即使在 docker-compose.yml 文件中设置了 deploy.resources.reservations.devices 或者直接使用 --gpus 标志,也无法成功将 GPU 分配给容器。这可能是由于 podman-compose 当前版本对 GPU 支持有限或者配置不正确导致的。

为了解决这个问题,您可以考虑以下方法:

  1. 使用命令行方式:暂时避开 podman-compose,直接使用 podman run 命令配合 --gpus 参数来启动容器,如上述验证命令所示。

参考

标签:11,容器,Windows,宿主机,Podman,nvidia,GPU,WSL2,NVIDIA
From: https://www.cnblogs.com/aisong/p/18668017

相关文章

  • (倍福授权)国产EtherCAT从站控制芯片P2P替代ET1100
    EtherCAT技术是德国的倍福自动化(Beckhoff)开发,处于EtherCAT技术协会(ETG)框架之下,是一项开放但不开源的技术,任何相关设备的开发,都需要向其获取相关授权。就目前来看,获得Beckhoff授权的厂商并不多,而且大部分都是海外半导体厂商。不过近几年,随着国内EtherCAT市场的增长,情况开始有所改......
  • 软考~系统规划与管理师考试——真题篇——2020年11月——综合知识——解析版
    文章目录真题(2020-11-01)真题(2020-11-02)真题(2020-11-03)真题(2020-11-04)真题(2020-11-05)真题(2020-11-06)真题(2020-11-07)真题(2020-11-08)真题(2020-11-09)真题(2020-11-10)真题(2020-11-11)真题(2020-11-12)真题(2020-11-13)真题(2020-11-14)真题(2020-11-15)真题(2020-11-16)真题(2020-11-17)真题......
  • X11, Wayland, GNOME 和 Xorg 关系介绍
    X11定义与背景X11是一种网络透明的窗口系统协议,它提供了基本的图形用户界面(GUI)功能,如窗口管理、图形绘制和事件处理等。它是在Unix和类Unix系统(包括Linux)中广泛使用的图形显示系统。X11最初由麻省理工学院(MIT)开发,在1987年发布的X11版本是对之前XWindowSystem......
  • P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎
    用函数实现等级映射multiset打表比对include<bits/stdc++.h>usingnamespacestd;constintN=10010;intfun(intn){if(n>=85)return5;elseif(n>=45)return4;elseif(n>=25)return3;elseif(n>=1)return2;elsereturn1;}intmain(){multiset......
  • 在Windows上调试iOS Safari中的H5页面
    本次开发的web页面需要适配移动端,第一个版本在发布到线上,发现ios设备一直打不开网页,无论是自带的safari浏览器还是其他浏览器,页面经常出现“***页面重复出现错误”,但是在本地以及使用PC浏览器模拟都没有复现该问题。为了进行线上的调试查询了一下如何在windows上调试ios的浏览器we......
  • Windows10中安装了ubuntu虚拟机后xshell无法连接到ubuntu
    Windows10中安装了ubuntu虚拟机后xshell无法连接到ubuntu安装了ubuntu虚拟机后发现shell无法连接到ubuntu的排查步骤:步骤1:检查虚拟机网络配置确认虚拟机网络模式:确认虚拟机的网络模式是否设置为桥接模式或NAT模式。桥接模式可以让你的虚拟机在网络中拥有独立的IP地址,而NAT模式......
  • Windows 安装软件常用更改路径
     环境变量:#标题键值 #javaJAVA_HOMEE:\Programs\Java\jdk-20 #javaPath %JAVA_HOME%\bin (AI认为只有一个JAVA版本时可以直接写 E:\Programs\Java\jdk-20\bin而不需创建JAVA_HOME环境变量,写JAVA_HOME只是为了方便开发时用命令行切换Java版本) #vs......
  • P11365 Ynoi2024 新本格魔法少女りすか
    P11365Ynoi2024新本格魔法少女りすか神奇的压位树状数组……思路序列区间查询操作,考虑分块。处理好散块与整块之间的贡献即可。散块对散块:每次询问的区间产生的散块用树状数组计算贡献,复杂度\(O(\summ_i\sqrt{n\logn})\)。整块对散块(区间):枚举整块,处理\(ressum_i\)......
  • 【复现】基于自适应遗传算法的分布式电源优化配置[IEEE33、IEEE118节点](Matlab代码实
     ......
  • 关于win1124h2不兼容HCL
    Windows1124H2与HCL不兼容的问题较为复杂,以下是几种常见的解决办法:回退系统版本如果是在更新到Windows1124H2的10天内发现HCL不兼容,可以使用系统自带的回退功能退回上一个版本,这样不会对更早的系统设置和文件产生影响,操作步骤如下:•打开“设置”应用。•选择“系统”。......