利用 Windows GPU 在 WSL2 中安装并配置 CUDA Toolkit

目录

  • 一、前提条件检查
    • [1. 确认 WSL2 已启用](#1. 确认 WSL2 已启用)
    • [2. 验证 Windows GPU 驱动支持 WSL](#2. 验证 Windows GPU 驱动支持 WSL)
  • [二、在 WSL2 中安装 CUDA Toolkit](#二、在 WSL2 中安装 CUDA Toolkit)
    • [1. 添加 NVIDIA 官方软件源](#1. 添加 NVIDIA 官方软件源)
    • [2. 安装 CUDA Toolkit(匹配驱动支持的版本)](#2. 安装 CUDA Toolkit(匹配驱动支持的版本))
  • [三、配置 CUDA 环境变量](#三、配置 CUDA 环境变量)
  • 四、验证安装
    • [1. 检查 `nvcc` 版本](#1. 检查 nvcc 版本)
    • [2. 检查 GPU 状态](#2. 检查 GPU 状态)
    • [3.运行 CUDA 示例(可选):](#3.运行 CUDA 示例(可选):)
  • [五、(可选)安装 cuDNN(用于深度学习框架)](#五、(可选)安装 cuDNN(用于深度学习框架))
    • [1.下载 cuDNN](#1.下载 cuDNN)
    • [2. 解压并复制文件](#2. 解压并复制文件)
    • [3.验证 cuDNN](#3.验证 cuDNN)
  • [六、安装NVIDIA Container Toolkit](#六、安装NVIDIA Container Toolkit)
  • 七、常见问题解决
    • [1. nvcc: command not found](#1. nvcc: command not found)
    • [2. 编译报错 "unsupported GNU version"](#2. 编译报错 “unsupported GNU version”)

要在 WSL2(Ubuntu 22.04) 中使用 GPU,需依赖 Windows 的 NVIDIA 驱动 提供硬件支持,并在 WSL 内安装 CUDA Toolkit 及配置环境。

一、前提条件检查

1. 确认 WSL2 已启用

bash 复制代码
# 打开 PowerShell(管理员),运行
wsl -l -v
  • 确保 Ubuntu-22.04VERSION2。若为 1,转换为 WSL2:

    wsl --set-version Ubuntu-22.04 2
    wsl --set-default-version 2 # 设置默认版本为 WSL2

2. 验证 Windows GPU 驱动支持 WSL

bash 复制代码
# 在 WSL 终端运行
nvidia-smi
  • 若输出 Driver Version (如 572.40)和 CUDA Version (如 12.8),说明驱动已支持 WSL,无需额外安装 Windows 驱动。

二、在 WSL2 中安装 CUDA Toolkit

1. 添加 NVIDIA 官方软件源

bash 复制代码
# 下载并配置仓库优先级
sudo wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86\_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
# 添加 GPG 密钥
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86\_64/3bf863cc.pub
# 添加 CUDA 仓库
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86\_64/ /"
# 更新软件源
sudo apt update

2. 安装 CUDA Toolkit(匹配驱动支持的版本)

  • Windows nvidia-smi 显示的 CUDA Version(如 12.8)是驱动支持的最高版本,因此 WSL 中可安装 ≤12.8 的 CUDA 版本(推荐与 Windows 一致的 12.4,或最新兼容版 12.8):
  • 安装 CUDA 12.4

    sudo apt install cuda-toolkit-12-4

  • 若安装 12.8(需仓库支持)

    sudo apt install cuda-toolkit-12-8

  • 若遇依赖问题,先安装 gcc/g++(Ubuntu 22.04 默认版本 11 兼容 CUDA 12.4)

    sudo apt install gcc g++

三、配置 CUDA 环境变量

  • 编辑 Shell 配置文件(如 ~/.bashrc):
bash 复制代码
vim ~/.bashrc
  • 在文件末尾添加以下内容(根据安装的 CUDA 版本修改 cuda-12.4):
bash 复制代码
# CUDA 环境变量
export CUDA\_HOME=/usr/local/cuda-12.4
export PATH=\$CUDA\_HOME/bin:\$PATH
export LD\_LIBRARY\_PATH=\$CUDA\_HOME/lib64:\$LD\_LIBRARY\_PATH
  • 保存并退出(Ctrl+X → Y → Enter),然后使配置生效:
bash 复制代码
source ~/.bashrc

四、验证安装

1. 检查 nvcc 版本

bash 复制代码
nvcc --version
  • 若输出 Cuda compilation tools, release 12.4(或对应版本),说明安装成功。

2. 检查 GPU 状态

bash 复制代码
nvidia-smi
  • 应与 Windows 中运行的 nvidia-smi 输出一致(如 GPU 型号、驱动版本)。

3.运行 CUDA 示例(可选):

bash 复制代码
# 进入示例目录
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
# 编译(需安装 make)
sudo apt install make && make
# 运行测试
./deviceQuery
  • 若输出 Result = PASS,说明 GPU 可被 CUDA 调用。

五、(可选)安装 cuDNN(用于深度学习框架)

  • 若需运行 PyTorch、TensorFlow 等框架,需安装 cuDNN

1.下载 cuDNN

  • 前往 NVIDIA cuDNN 官网,登录后选择与 CUDA 版本匹配 的 cuDNN(如 CUDA 12.4 对应 cuDNN 8.9+),下载 Linux x86_64 版本的压缩包。

2. 解压并复制文件

bash 复制代码
# 假设下载到 ~/Downloads,解压
cd ~/Downloads
tar -xvf cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz
cd cudnn-linux-x86_64-8.9.2.26_cuda12-archive

# 复制头文件和库文件到 CUDA 目录
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

3.验证 cuDNN

  • 安装深度学习框架后,运行代码测试 GPU 是否可用(以 PyTorch 为例)
python 复制代码
import torch
print(torch.cuda.is_available())  # 应输出 True

六、安装NVIDIA Container Toolkit

  • Docker 默认不支持 GPU 访问,需要安装 NVIDIA 提供的容器工具包,在 WSL2 的 Ubuntu 环境中执行以下命令安装 NVIDIA Container Toolkit
bash 复制代码
# 添加 NVIDIA 包仓库和 GPG 密钥
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

# 更新包索引并安装 nvidia-docker2
sudo apt-get update
sudo apt-get install -y nvidia-docker2

# 重启 Docker 服务
sudo systemctl restart docker
  • 验证 NVIDIA 驱动兼容性,确认 WSL2 中的驱动版本与 Windows 主机一致
bash 复制代码
# 在 WSL2 中检查
nvidia-smi
# 在 Windows PowerShell 中检查
nvidia-smi
  • 两个环境中的驱动版本应当完全一致。如果不一致,更新 Windows 驱动到最新版本并重启 WSL2
powershell 复制代码
# 在 Windows PowerShell 中执行
wsl --shutdown
  • 配置 Docker 默认运行时(可选),编辑 Docker 配置文件 /etc/docker/daemon.json,添加以下内容:
json 复制代码
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"  # 可选,设置为默认运行时
}
  • 保存后重启 Docker
bash 复制代码
sudo systemctl restart docker

七、常见问题解决

1. nvcc: command not found

  • 检查环境变量:echo $PATH 是否包含 /usr/local/cuda-12.4/bin
  • 确认 CUDA 安装:dpkg -l | grep cuda,若未安装则重新执行 sudo apt install cuda-toolkit-12-4

2. 编译报错 "unsupported GNU version"

  • Ubuntu 22.04 默认 GCC 11 兼容 CUDA 12.4,若仍报错,添加编译参数
bash 复制代码
nvcc test.cu -o test -allow-unsupported-compiler
相关推荐
weiwei228441 天前
NVIDIA系统级性能分析工具Nsight Systems入门详解
gpu·cuda·nsight systems
大大大反派3 天前
WSL2环境下的Claude Code与lanyuncodingui安装与配置
wsl2·lanyuncodingui
charlee447 天前
在本地部署Qwen大语言模型全过程总结
大模型·cuda·qwen·量化
weiwei228448 天前
CUDA编程初探
gpu·cuda
www.0213 天前
在ubuntu服务器下安装cuda和cudnn(笔记)
linux·ubuntu·cuda·cudnn·服务器环境
ouliten15 天前
cuda编程笔记(13)--使用CUB库实现基本功能
笔记·cuda
Ray Song19 天前
CUDA杂记--nvcc使用介绍
nvidia·cuda·nvcc
ouliten22 天前
cuda编程笔记(11)--学习cuBLAS的简单使用
笔记·学习·cuda
笑稀了的野生俊22 天前
Ubuntu 下配置 NVIDIA 驱动与 CUDA 环境(适配 RTX 4060Ti)
linux·ubuntu·cuda·nvidia driver