Linux(WSL)安装CUDA

选择CUDA版本

nvidia-smi

Linux(WSL)安装CUDA_第1张图片

选择的CUDA版本要比 CUDA version 的版本更低

ps. 本机之前已经把CUDA驱动器在windows端安装完成:

Linux(WSL)安装CUDA_第2张图片


安装 CUDA

参考:Windows10/11 WSL2 安装nvidia-cuda驱动

进入CUDA各版本官方下载地址:https://developer.nvidia.com/cuda-toolkit-archive 选择合适的版本

Linux(WSL)安装CUDA_第3张图片
Installation Instructions:

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
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

ps. 如果报错:
在这里插入图片描述可以直接改成 sudo apt-get -y install cuda

安装相关依赖库:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

配置CUDA的环境变量:

sudo vim ~/.bashrc 

.bashrc文件末尾添加:

export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 

更新文件:

source ~/.bashrc

检测

Linux(WSL)安装CUDA_第4张图片

配置完成,成功运行 nvcc --version,即可使用nvcc编译器

Linux(WSL)安装CUDA_第5张图片
nvidia-smi 驱动正常

测试代码:

#include 
#include 
#include 
using namespace std;
int main() {
    int count = 0;
 	cudaGetDeviceCount(&count);
	cout <<"当前计算机包含GPU数为"<< count << endl;
    cudaError_t err = cudaGetDeviceCount(&count);
    if (err != cudaSuccess) 
	    printf("%s\n", cudaGetErrorString(err));
    cudaDeviceProp prop;
    cudaGetDeviceProperties(&prop, 0);
    printf("Device Number: %d\n", 0);
    cout << "当前设备名字为" << prop.name << endl;
	cout << "GPU全局内存总量为" << prop.totalGlobalMem << endl;
	cout << "单个线程块中包含的线程数最多为" << prop.maxThreadsPerBlock << endl;
}

// from https://blog.csdn.net/chongbin007/article/details/123973475

运行结果:

Linux(WSL)安装CUDA_第6张图片

安装完成!!


DEBUG

之前安装的时候没有选择 WSL-Ubuntu,导致出现了一系列的bug

Linux(WSL)安装CUDA_第7张图片( 所以WSL的话最好不要选择这个)

ERROR: nvidia-smi not found

在这里插入图片描述
NVIDIA-SMI报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver

有可能是ubuntu的内核版本升级后造成的问题

解决方法:

sudo apt-get install dkms
ls -l /usr/src/

可以看到有一个nvidia的文件,如果没有这需要自己去安装驱动
方法:Ubuntu下安装NVIDIA驱动的三种方法

在这里插入图片描述

sudo dkms install -m nvidia -v 470.141.03

此时我的报错如下:

在这里插入图片描述
应该是本机WSL的Linux内核的问题

尝试 install 所需的内核:

在这里插入图片描述
在这里插入图片描述原因:安装内核headers,在ubuntu里只需要执行:sudo apt-get install linux-headers-$(uname -r),但是在WSL里,这样子是不行的,因为WSL安装的是微软特供版,需要用对应版本的headers,apt-get安装不到

方法:WSL升级到最新版本Linux内核headers的方法

再次 sudo dkms install -m nvidia -v 470.141.03

在这里插入图片描述
成功!

Debug过程中的总结:

  • 根据自己所需来选择CUDA都安装,选择 WSL-Ubuntu 可以解决不少bug
  • WSL要升级版本到WSL2
  • Windows系统版本是很大的坑!
  • nvidia-smi not found的原因还有可能是gcc/g++的版本问题
  • 升级更新WSL的Linux内核,要在Windows将内核源码下载,再 cp 到wsl里面的home目录

参考资料

安装CUDA:

Windows10/11 WSL2 安装nvidia-cuda驱动 (important)

ubuntu的linux下下载CUDA

Linux显卡驱动命令

CUDA各版本官方下载地址:https://developer.nvidia.com/cuda-toolkit-archive

ERROR: nvidia-smi not found:

解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver. Make sure 的报错(亲测有效)

nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案

显卡驱动报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.

NVIDIA-SMI报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.问题解决

Ubuntu下安装CUDA驱动器:

初次使用Ubuntu18.04遇到的问题——笔记5 (Ubuntu 18.04 下安装安装NVIDIA显卡驱动+CUDA-10.1+cudnn-7)

Ubuntu下安装NVIDIA驱动的三种方法

WSL升级Linux内核:

WSL升级到最新版本Linux内核headers的方法

WSL 2 的安装过程(以及介绍)

你可能感兴趣的:(ASC学习,高性能计算,ubuntu,linux,服务器,CUDA)