使用 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 参数来启动容器,如上述验证命令所示。

参考

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

  1. windows平台在tomcat中启动cas报错解决

    windows平台在tomcat中启动cas报错: Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons ...

  2. Vmvare + Ubuntu 16.04环境搭建 + 相关软件安装配置笔记【深度学习】

    前言 由于学习与工作的需要,加上之前配置好的vmmachines都损坏了,我就重新弄一个ubuntu虚拟机,配置一下环境,给自己留个记录 1.文件 2.配置过程 1.在Vmware中新建虚拟机,自定义 ...

  3. 在C++11编译环境中,简单自测了一下C++标准库中的string/vector和迭代器,记录一下

    #include <iostream> #include <vector> using namespace std; int main() { //////////////// ...

  4. windows下在Eclipse中启动的tomcat没有乱码,单独部署到tomcat下乱码解决方案

    今天遇到了一个很奇怪的问题,在Eclipse中调试,运行项目一切正常,项目的所有编码都是统一的UTF-8.但是在单独部署到tomcat上的时候出现了中文乱码. 解决方案 第一步:确保项目,jsp页面, ...

  5. 如何在IDE的开发环境中启动Studio和本地build出一个product

    1.在run configuration那一个把Program to Run改成如下配置 2.在本地自己用maven构建一个liferay IDE 命令 clean verify -Pinstalle ...

  6. linux系统下深度学习环境搭建和使用

    作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...

  7. (转)深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

      深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 发表于2016年07月15号由52nlp 接上文<深度学习主机攒机小记>,这台GTX10 ...

  8. Windows 2003 Server 标准版启动问题解决(资源转贴)

    维护的系统之一是部署在windows2003 Server标准版的服务器上,可能是由于某个应用问题,导致远程重启失败,害得我在机房呆了一早晨,可算是够折腾的.最后按照官方文档解决,刚放文档地址是:ht ...

  9. 深度学习 GPU环境 Ubuntu 16.04 + Nvidia GTX 1080 + Python 3.6 + CUDA 9.0 + cuDNN 7.1 + TensorFlow 1.6 环境配置

    本节详细说明一下深度学习环境配置,Ubuntu 16.04 + Nvidia GTX 1080 + Python 3.6 + CUDA 9.0 + cuDNN 7.1 + TensorFlow 1.6 ...

  10. windows10环境下安装深度学习环境anaconda+pytorch+CUDA+cuDDN

    步骤零:安装anaconda.opencv.pytorch(这些不详细说明).复制运行代码,如果没有报错,说明已经可以了.不过大概率不行,我的会报错提示AssertionError: Torch no ...

随机推荐

  1. shell echo 文本颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e echo -e "\033[41;36m something here \033[0m" 其中41 ...

  2. flutter-TextField文本输入框 限制 数字键盘、输入小数点后两位

    关键代码 keyboardType: TextInputType.number, inputFormatters: [ FilteringTextInputFormatter(RegExp(" ...

  3. 探秘Transformer系列之(2)---总体架构

    探秘Transformer系列之(2)---总体架构 0x00 概述 0.1 流程 使用Transformer来进行文本生成其实就是用模型来预测下一个词,完整流程包括多个阶段,如分词.向量化.计算注意 ...

  4. day:2 软件测试流程——H模型

    软件测试流程_H 模型 一.详细流程 1.产品召开需求澄清会议,产品.开发.测试都参加 2.测试和开发拿到需求 3.测试经理拿到需求,根据需求编写测试计划 测试计划(内容:测试目的,背景,范围,测试准 ...

  5. IPMITool 工具使用详细教程

    IPMITool 工具使用详细教程 一.IPMI 与 IPMITool 简介 1. IPMI 概述 智能平台管理接口(Intelligent Platform Management Interface ...

  6. 【Unity】图形渲染瓶颈与批处理优化

    [Unity]图形渲染瓶颈与批处理优化 图形渲染 工作方式 显卡的工作方式并非连续的,一般分三步. 上传更新渲染数据至显存 设置显卡的渲染管线状态 启动绘制并等待绘制结果 性能瓶颈 由于显卡是大规模并 ...

  7. 火爆的 幻兽帕鲁/Palworld 单机➕联机 电脑游戏 免费畅游

    在广阔的世界中收集神奇的生物"帕鲁",派他们进行战斗.建造.做农活,工业生产等,这是一款支持多人游戏模式的全新开放世界生存制作游戏. ▼补丁主要内容 ・修复加载世界数据时,加载画面 ...

  8. 使用电阻网络实现的vga驱动电路,fpga驱动vga显示器验证,代替gm7123芯片

    之前驱动vga,要么是直接使用fpga管脚直接驱动,颜色为8原色 使用线缆 vs,hs,r,g,b一共五根线,三原色要么是0要么是1,所以色彩最多8种,rgb组合 若要实现真彩色驱动,如rgb888, ...

  9. 震惊!AI编程正在淘汰这5类人,你在其中吗?

    大家好,我是狂师. 今天在知乎上看到一个关于讨论:"人工智能大爆发,AI编程工具对程序员到底是颠覆还是辅助?'"问题,觉得蛮有意思.的确,AI编程的出现,引发了人们对于程序员职业未 ...

  10. ITSS 运维-服务台相关内容