参考文章

问题:nvidia-smi命令报错

  • 在 WSL Ubuntu 中执行 nvidia-smi 命令报错 Command 'nvidia-smi' not found,并且系统提示可以安装多个版本的 nvidia-utils。这通常是因为 WSL2 环境下,NVIDIA 驱动已经随 Windows 主机安装,但 WSL 内部缺少 nvidia-smi 命令的快捷方式或环境变量未生效。
  • 原理:WSL2 的 GPU 依赖 Windows 主机的 NVIDIA 驱动,Linux 端不需要独立安装驱动,只需将驱动提供的 nvidia-smi 命令链接到系统可识别的路径即可。

方法一:复制 nvidia-smi 并赋予权限(推荐)

  1. 复制 NVIDIA SMI 可执行文件到系统 bin 目录
    cp /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi
    
  2. 赋予可执行权限
    chmod ogu+x /usr/bin/nvidia-smi
    
  3. 验证
    nvidia-smi
    
(base) root@DESKTOP-96TPJ9I:/home/yang# nvidia-smi
Wed Oct 29 16:20:48 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.02              Driver Version: 581.42         CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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:04:00.0  On |                  N/A |
|  0%   48C    P0             38W /  170W |     682MiB /  12288MiB |      0%      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      |
+-----------------------------------------------------------------------------------------+

方法二:添加 WSL NVIDIA 路径到环境变量

如果方法一无效,可尝试添加 NVIDIA 驱动路径到环境变量:

echo 'export PATH=$PATH:/usr/lib/wsl/lib' >> ~/.bashrc
source ~/.bashrc
  • 然后再次尝试 nvidia-smi

CUDA Toolkit安装

方法一:在 WSL2 中安装 CUDA Toolkit (推荐)

  • 推荐方案:采用 方案一,在 WSL2 中通过官方渠道安装完整的 CUDA Toolkit,这是最通用和最可靠的方法。安装后记得配置 CUDA_HOME 环境变量。
  1. 访问 NVIDIA 官网下载页面https://developer.nvidia.com/cuda-downloads

  2. 选择正确的选项

    • Operating System: Linux
    • Architecture: x86_64
    • Distribution: WSL-Ubuntu
    • Version: 2.0 (或最新的 WSL 版本)
    • Installer Type: deb (network)
      在这里插入图片描述
  3. 按照官网指示执行命令:网站会生成一系列命令,通常类似于:

    wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get -y install cuda-toolkit-13-0
    
  4. 配置环境变量:安装完成后,CUDA Toolkit 通常安装在 /usr/local/cuda。需要将 nvcc 的路径和 CUDA_HOME 变量添加到您的 shell 配置文件中(例如 ~/.bashrc)。
    打开文件:

    vim ~/.bashrc
    

    在文件末尾添加以下两行:

    export CUDA_HOME=/usr/local/cuda
    export PATH=$PATH:$CUDA_HOME/bin
    

    保存并退出(在 nano 中是 Ctrl+X, Y, Enter)。

  5. 使配置生效

    source ~/.bashrc
    
  6. 验证安装

    nvcc --version
    

方案二:使用 Conda 安装 CUDA Toolkit (更简单)

  1. 使用 Conda 安装 cudatoolkit:在deepseek-ocr 环境中,安装与您 PyTorch 版本匹配的 cudatoolkit
    conda install cudatoolkit=11.8 -c nvidia
    
  2. 设置环境变量:Conda 安装后,nvcc 会在 Conda 环境的 bin 目录里。您仍然需要设置 CUDA_HOME
    # 找到你的conda环境路径
    echo $CONDA_PREFIX 
    # 输出会是类似 /root/miniconda3/envs/deepseek-ocr
    
    # 临时设置环境变量
    export CUDA_HOME=$CONDA_PREFIX
    
    # 或者永久写入到 ~/.bashrc
    echo 'export CUDA_HOME=$CONDA_PREFIX' >> ~/.bashrc
    source ~/.bashrc
    
  3. 重新安装 flash-attn
    pip install flash-attn==2.7.3 --no-build-isolation
    
Logo

欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。

更多推荐