当前位置: 首页 > news >正文

WSL安装Ubuntu22.04,以及深度学习环境的搭建

安装WSL

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

下载 Linux 内核更新包:l链接:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
下载完成后更新。

将 WSL 2 设置为默认版本,命令:

wsl --set-default-version 2

打开 Microsoft Store,搜索WSL,选择你偏好的 Linux版本。
在这里插入图片描述
我选择的是Ubuntu22.04版本。点进去就可以看到下载链接z
下载即可。下载完成后,启动系统,配置用户名和密码。
在这里插入图片描述

输入nvidia-smi,检查是否能找到显卡,正常情况,如下图:
在这里插入图片描述

一些问题

WslRegisterDistribution failed with error: 0x8007019e The Windows Subsystem错误的解决方案

执行命令

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

回车,输入Y或者y,然后系统重启。

输入nvidia-smi,显示不正确

这个有可能是wsl的版本不对,出现这种情况是Window的版本太低了!升级到21H2或者Win11。

也可以通过观察Ubuntu的版本,如下图:
在这里插入图片描述
如果wsl的版本是1.0的,内核是4.XXX。

也可以使用命令,查看wsl版本,在PowerShell里输入:

wsl -l -v

在这里插入图片描述
红框里的是2,就正确了!如果是1,则要重新安装Ubuntu。
执行命令:

wsl --list

查找wsl的列表。

wsl --unregister Ubuntu-22.04

注销列表中显示的Ubuntu系统

然后,重新打开Ubuntu系统。

注:WSL系统使用的显卡驱动是Win系统的驱动,所以不用安装驱动!

安装CUDA

安装gcc,执行命令:

sudo apt update
sudo apt install build-essential

在这里插入图片描述
输入Y。

链接:https://developer.nvidia.com/cuda-toolkit-archive
我选用的是12.1版本,如下图:

在这里插入图片描述
执行命令:

wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run
sudo sh cuda_12.1.1_530.30.02_linux.run

在这里插入图片描述
输入accept。

在这里插入图片描述
选择安装的组件,不用安装驱动!

选择Install。
在这里插入图片描述
安装完成

接下来,配置环境变量输入vim ~/.bashrc命令打开文件,在文件结尾输入以下语句,保存。

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

在这里插入图片描述
然后,点击保存后关闭文档,然后执行命令source ~/.bashrc。
至此cuda安装完成,输入nvcc -V命令查看cuda信息。
在这里插入图片描述

安装cuDNN

链接:https://developer.nvidia.com/rdp/cudnn-archive
打开连接,选择CUDA 12.x,这里要和安装的CUDA版本对上!
在这里插入图片描述
点击上图红框的位置,就可以看到下图的列表,选择对应的文件,单击后就可以下载,如下图:
在这里插入图片描述
在地址栏输入“\wsl$”,然后点击Enter键。打开Ubuntu22.04的目录!
在这里插入图片描述
在这里插入图片描述
然后,找到home路径,如下图:

在这里插入图片描述
将下载的cudnn复制到用户名的路径下,如下图:
在这里插入图片描述
然后,执行安装命令,命令如下:

 sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb

等待cuDNN安装包仓库安装完毕后,最后几行会输出一个添加密钥的命令,类似下面。我们执行输出的那个命令:
在这里插入图片描述
执行命令:

sudo cp /var/cudnn-local-repo-ubuntu2204-8.8.0.121/cudnn-local-B66125A0-keyring.gpg /usr/share/keyrings/

更新apt源,让apt包管理器能够找到刚刚安装的cuDNN安装包仓库:

sudo apt update

准备安装cuDNN,先查找一下cuDNN安装包仓库中包含的cuDNN深度学习库有哪些版本:

sudo apt list libcudnn*

在这里插入图片描述
安装cuDNN库,执行命令:

sudo apt install libcudnn8-dev libcudnn8-samples

检查一下cuDNN的动态库文件是否安装到位,执行命令:

readelf -d /usr/lib/x86_64-linux-gnu/libcudnn.so | grep SONAME

在这里插入图片描述

检查libcudnn8-dev是否安装成功,执行命令:

cat /usr/include/cudnn_version.h | grep CUDNN_

编译一下cuDNN的示例代码。如果能成功编译并运行,代表你的CUDA工具链和cuDNN库全部正常工作。

# 复制示例代码到$HOME目录下,然后进入该目录
cp -r /usr/src/cudnn_samples_v8/ ~
cd ~/cudnn_samples_v8/# 试着编译一份卷积运算的示例代码
cd conv_sample/
# 用apt安装的cuDNN头文件和库目录位置与Makefile中给定的默认位置不同,
# 因此我们先手动指定位置后再make
CUDNN_INCLUDE_PATH=/usr/include/ CUDNN_LIB_PATH=/usr/lib/x86_64-linux-gnu/ make# 编译完成后,执行编译出的二进制文件,进行卷积运算测试
./conv_sample# 运行更多的卷积运算测试案例
source run_conv_sample.sh

运行结果:
在这里插入图片描述

在这里插入图片描述

相关文章:

WSL安装Ubuntu22.04,以及深度学习环境的搭建

安装WSL 安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。 以管理员身份打开 PowerShell 并运行: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart下载 Linux 内核更…...

【PTA|选择题|期末复习】结构体

2-1 For the following declarations,assignment expression_is not correct. struct Student {long num;char name[28];}st1,st2{101,"Tom"},*p&st1; 〇 A.st1 st2 ◎ B.p->name st2.name O C p->num st2.num 〇 D,*pst2 2-2 下面定义结构变量的语…...

Video generation models as world simulators-视频生成模型作为世界模拟器

原文地址:Video generation models as world simulators 我们探索在视频数据上进行大规模生成模型的训练。具体来说,我们联合训练文本条件扩散模型,同时处理不同持续时间、分辨率和长宽比的视频和图像。我们利用一个在视频和图像潜在编码的时…...

高刷电竞显示器 - HKC VG253KM

今天给大家分享一款高刷电竞显示器 - HKC VG253KM。 高刷电竞显示器 - HKC VG253KM源于雄鹰展翅翱翔的设计灵感,严格遵循黄金分割比例的蓝色点晴线条,加上雾面工艺及高低起伏错落有致的线条处理,在VG253KM的背部勾勒出宛若大鹏展翅的鹰翼图腾…...

nginx-------- 高性能的 Web服务端 (三) 验证模块 页面配置

一、http设置 1.1 验证模块 需要输入用户名和密码 htpasswd 此命令来自于 httpd-tools 包,如果没有安装 安装一下即可 也可以安装httpd 直接yum install httpd -y 也一样 第一次生成文件htpasswd -c 文件路径 姓名 交互式生成密码 htpasswd -bc 文…...

Kafka是如何防止消息丢失的

Kafka通过一系列机制来防止消息丢失,主要包括以下几个方面: 生产者端(Producer)保证: 同步发送:生产者默认是异步发送消息的,但如果希望保证消息不丢失,可以选择将异步发送改为同步…...

[工具探索]VSCode介绍和进阶使用

相比较GoLand、PhpStorm、PyCharm、WebStorm的重量级内存占用,从Windows系统来,各种卡死,换到MacOS倒不会卡死,但是内存占用太多,影响体验,决定换到VSCode。当然这个过程需要适应过渡期,旧伙计都…...

Oracle迁移到mysql-表结构的坑

1.mysql中id自增字段必须是整数类型 id BIGINT AUTO_INCREMENT not null, 2.VARCHAR2改为VARCHAR 3.NUMBER(16)改为decimal(16,0) 4.date改为datetime 5.mysql范围分区必须int格式,不能list类型 ERROR 1697 (HY000): VALUES value for partition …...

【SpringCloudAlibaba系列--nacos配置中心】

Nacos做注册中心以及使用docker部署nacos集群的博客在这: 容器化部署Nacos:从环境准备到启动 容器化nacos部署并实现服务发现(gradle) 使用docker部署nacos分布式集群 下面介绍如何使用nacos做配置中心 首先要进行nacos-config的引入,引入…...

使用LinkedList实现堆栈及Set集合特点、遍历方式、常见实现类

目录 一、使用LinkedList实现堆栈 堆栈 LinkedList实现堆栈 二、集合框架 三、Set集合 1.特点 2.遍历方式 3.常见实现类 HashSet LinkedHashSet TreeSet 一、使用LinkedList实现堆栈 堆栈 堆栈(stack)是一种常见的数据结构,一端…...

springboot-cache+redis 为指定名称缓存设置独立超时时间

版本 spring-boot: 3.2.2 方案 注册 RedisCacheManagerBuilderCustomizer Bean对指定名称缓存进行定制 Bean RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer() {return builder -> builder.withCacheConfiguration(// Cacheable 注解使用的cac…...

Flutter 数据持久化存储之Hive

Flutter 数据持久化存储之Hive 前言正文一、配置项目二、UI① 增加UI② 显示和删除UI 三、使用Hive① 初始化Hive② TypeAdapter自定义对象③ 注册TypeAdapter③ CURD 四、源码 前言 在Flutter中,有多种方式可以进行数据持久化存储。以下是一些常见的方式&#xff1…...

Java中继承静态属性,方法,和非静态属性和方法的继承区别

结论: Java中静态属性和静态方法是可以被继承的,但是不可以被重写,而是被隐藏。 Java中非静态属性,可以被继承,但是不可以被重写,而是被隐藏。 Java中非静态方法,可以被继承,可以…...

C# If与Switch的区别

在 switch 语句中使用表达式比较时,编译器会生成一个查找表,其中包含所有表达式的值和对应的 case 标签。因此,与使用常量或字面量比较相比,使用表达式比较可能会略微降低性能。 只有当 switch 语句中的所有 case 标签都使用常量或…...

实验室预约|实验室预约小程序|基于微信小程序的实验室预约管理系统设计与实现(源码+数据库+文档)

实验室预约小程序目录 目录 基于微信小程序的实验室预约管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)管理员登录 (2)实验室管理 (3)公告信息…...

蓝桥杯DP算法——区间DP(C++)

根据题意要求的是将石子合并的最小权值,我们可以根据DP思想使用二维数组f[i,j]来存放所有从第i堆石子到第j堆石子合并成一堆石子的合并方式。 然后由第二个图所示,我们可以将i到j区间分成两个区间,因为将i到j合并成一个区间的前一步一定是合…...

pytest结合Allure生成测试报告

文章目录 1.Allure配置安装2.使用基本命令报告美化1.**前置条件**2.**用例步骤****3.标题和描述****4.用例优先级**3.进阶用法allure+parametrize参数化parametrize+idsparametrize+@allure.title()4.动态化参数5.环境信息**方式一****方式二**6.用例失败截图1.Allure配置安装 …...

Linux--ACL权限管理

一.ACL权限管理简介 ACL(Access Control List,访问控制列表)是一种文件权限管理机制,它提供了比传统的UGO(用户、组、其他)权限更灵活的权限设置方式。以下是ACL的一些主要功能: 针对特定用户或…...

Xcode中App图标和APP名称的修改

修改图标 选择Assets文件 ——> 点击Applcon 换App图标 修改名称 点击项目名 ——> General ——> Display Name...

Spring 手动实现Spring底层机制

目录 一、前言 二、Spring底层整体架构 1.准备工作 : 2.架构分析 : (重要) 3.环境搭建 : 三、手动实现Spring容器结构 1.自定义注解 : 1.1 Component注解 1.2 Scope注解 2.自定义组件 : 3.自定义用于封装Bean信息的BeanDefinition类&a…...

CSV数据导入到ClickHouse数据库

问题描述:手头上有一个数据量较大的CSV文件,希望导入到指定的ClickHouse数据中,ClickHouse部署在服务器中。 解决方案:通常来说,数据量较少的CSV文件可以直接通过DBeaver软件的可视化界面导入数据。 若数据量较大&…...

第十二天-ppt的操作

目录 创建ppt文档 安装 使用 段落的使用 段落添加数据 段落中定义多个段落 自定义段落 ppt插入表表格 PPT插入图片 读取ppt 读取ppt整体对象 ​编辑 获取ppt文本 获取表格内容 创建ppt文档 安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python…...

计算机网络-网络层,运输层,应用层

网络层/网际层 网络层的主要任务包括: 提供逻辑上的端到端通信:网络层负责确定数据的传输路径,使数据能够从源主机传输到目标主机,即实现端到端的通信。数据包的路由和转发:网络层根据目标主机的地址信息&#xff0c…...

Python爬虫学习

1.1搭建爬虫程序开发环境 爬取未来七天天气预报 from bs4 import BeautifulSoup from bs4 import UnicodeDammit import urllib.request url"http://www.weather.com.cn/weather/101120901.shtml" try:headers{"User-Agent":"Mozilla/5.0 (Windows …...

台式电脑黑屏无法开机怎么办 电脑开机黑屏的解决方法

经常有朋友电脑一开机,发现电脑黑屏没法用了。很多人看到黑屏就懵了,以为电脑要报废了,这是什么原因?电脑开机黑屏怎么解决?一般常说的黑屏故障分为两种,显示屏没有任何显示以及显示英文。下面小编要为大家带来的是台式电脑黑屏…...

【Docker】初学者 Docker 基础操作指南:从拉取镜像到运行、停止、删除容器

在现代软件开发和部署中,容器化技术已经成为一种常见的方式,它能够提供一种轻量级、可移植和可扩展的应用程序打包和部署解决方案。Docker 是目前最流行的容器化平台之一,它提供了一整套工具和技术,使得容器的创建、运行和管理变得…...

突破编程_C++_面试(数组(1))

面试题1:详细说明一下数组名是什么? 在 C 中,数组名代表数组首元素的地址。更具体地说,数组名是一个指向数组第一个元素的常量指针。这意味着,当使用数组名时,实际上是在使用指向数组第一个元素的指针。 例…...

基于springboot+vue的靓车汽车销售网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…...

【知识整理】Git Commit Message 规范

一. 概述 前面咱们整理过 Code Review 一文,提到了 Review 的重要性,已经同过gitlab进行CodeReview 的方式,那么本文详细说明一下对CodeReivew非常重要的Git Commit Message 规范。 我们在每次提交代码时,都需要编写 Commit Mes…...

HarmonyOS学习--三方库

文章目录 一、三方库获取二、常用的三方库1. UI库:2. 网络库:3. 动画库: 三、使用开源三方库1. 安装与卸载2. 使用 四、问题解决1. zsh: command not found: ohpm 一、三方库获取 在Gitee网站中获取 搜索OpenHarmony-TPC仓库,在t…...