IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> WSL安装CUDA并成功运行 -> 正文阅读

[系统运维]WSL安装CUDA并成功运行

概述

因为我想运行GPU程序,我的笔记本是带一个nvidia独显的。但是windows下折腾了很久,安装Visual Studio并且安装CUDA环境还需要配置很多东西,最后运行cuda程序还是有很多包找不到,最后放弃了,windows果然不适合开发者。
就想起了可以试试WSL用Linux系统来做GPU开发,折腾一下,最终成功了。
下面记录一下步骤:

安装windwos下子系统Ubuntu 18.04

这个需要windows商店, Microsoft appstore下,直接找到Ubuntu 18.04直接获取就可以了。
有的电脑没有Microsoft appstrore,应该是盗版系统没破解好。
非常方便,安装完后直接开启会出现一个Linux控制台,以前没用过,体验很好速度很快。

在linux系统下安装CUDA

这个我百度的教程每一个好用的,直接看官网,最权威的而且最好用
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=18.04&target_type=deb_local
选择好你的系统对应版本,下面就会展示给你安装步骤
在这里插入图片描述

主要是下面几步:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda-repo-ubuntu1804-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

注意这几步中下载和安装很慢,网速不太好的话,大概要一个小时,因为那个包确实有点大。

没有nvcc

nvcc类似于GCC,没有nvcc就无法编译cuda以.cu结尾的文件。
所以检查有没有nvcc
安装完了,这时就有cuda运行环境里,但是需要一些配置。
我在运行nvcc --version
报错找不到,查找资料发现是因为没配置路径。
参考:
https://blog.csdn.net/weixin_31325725/article/details/116587093

主要步骤

  1. 查看/usr/local/cuda/bin下是否有nvcc可执行程序,如果没有说明cuda没有正常安装,需要重新安装,如果有,进入下一步
  2. 添加环境变量,打开~/.bashrc ,添加环境变量export PATH=$PATH:/usr/local/cuda/bin
  3. 再在terminal中输入nvcc --version可以看到已经可以显示为8.0版本了
    在这里插入图片描述

nvidia-smi 不显示GPU

nvidia-smi 不显示GPU就是ubuntu找不到GPU

运行CUDA程序可以运行,但是获取不到GPU信息。

原因,查找到网上原因说是WSL无法获取到GPU,需要WSL2才可以。并且windows版本也有要求,需要windows10 1903以上
版本低的自己更新
在这里插入图片描述

所以需要升级WSL
以管理员身份进入cmd 或者 powershell
先使用 wsl -l -v 查看当前wsl 版本。
发现我的WSL版本确实是WSL1,那么需要升级。

wsl升级为wsl2

参考
https://www.jianshu.com/p/9b2f9f269f58

首先打开
在这里插入图片描述
红框中第一个,在上面应该已经开了,不然安装不了WSL。
然后打开第二个,重启电脑。

去官网下载WSL2程序并安装
https://docs.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

然后设定ubuntu为wsl2,用管理员身份运行power shell
执行
wsl --set-version Ubuntu-18.04 2

大概需要十多分钟。再打开ubuntu就可以了。

运行CUDA程序

这时我们检查能否找到GPU
在这里插入图片描述
成功找到了。
然后我们运行CUDA程序试一下

#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;
  
}

在这里插入图片描述
成功显示我笔记本GPU的名称。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 23:07:00  更:2022-04-07 23:11:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:01:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码