Linux(WSL)安装CUDA
选择CUDA版本
nvidia-smi
选择的CUDA版本要比 CUDA version 的版本更低
ps. 本机之前已经把CUDA驱动器在windows端安装完成:
安装 CUDA
参考:Windows10/11 WSL2 安装nvidia-cuda驱动
进入CUDA各版本官方下载地址:https://developer.nvidia.com/cuda-toolkit-archive 选择合适的版本
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
检测
配置完成,成功运行 nvcc --version
,即可使用nvcc编译器
nvidia-smi
驱动正常
测试代码:
#include <iostream>
#include <math.h>
#include <cuda_runtime.h>
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
运行结果:
安装完成!!
DEBUG
之前安装的时候没有选择 WSL-Ubuntu,导致出现了一系列的bug
( 所以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)
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)
WSL升级Linux内核:
更多推荐
所有评论(0)