【AI】搭建Windows Linux子系统(WSL2)CUDA环境

news2024/11/17 7:31:00

0.准备工作

Windows本机安装CUDA Driver
首先去下载页面下载驱动文件
在这里插入图片描述

点击Get CUDA Driver进入下载页面,我看下载页面跟普通驱动下载页面相同,感觉应该不是单独的驱动,只要之前显卡已经安装好了CUDA的驱动,就可以先省略这一步。

1.安装Windows子系统

win11中安装wsl子系统非常方便,只需要执行一个命令即可,系统会自动安装Ubuntu系统,执行完之后需要重启电脑,重启后需要设置用户名和密码,根据自己实际情况设置即可。

wsl --install

安装完重启电脑设置完账号密码后,会看到如下页面:
在这里插入图片描述
这时候就可以操作linux系统了

2.WSL安装CUDA Toolkit

官方的教程地址:https://docs.nvidia.com/cuda/wsl-user-guide/index.html
进入官方下载地址:https://developer.nvidia.com/cuda-toolkit-archive
根据自己安装的CUDA驱动版本选择CUDA Toolkit版本,这里最好与主机的驱动版本一致,否则不知道会出现什么奇怪错误。

在这里插入图片描述
去wsl命令行执行wget命令,可以直接在linux系统上下载Toolkit,然后执行安装命令

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run

安装时可能会报错:Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.
这是因为我们的wsl系统刚刚创建,可能没有安装gcc导致的,可以参考这篇文章解决。
这里也贴一下吧

sudo apt update && sudo apt upgrade -y
sudo apt install build-essential
# 查看安装的gcc版本
gcc --version

然后再执行上面的安装程序,安装完之后打印了下面的信息

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-12.2/

Please make sure that
 -   PATH includes /usr/local/cuda-12.2/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-12.2/lib64, or, add /usr/local/cuda-12.2/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.2/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 535.00 is required for CUDA 12.2 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run --silent --driver

Logfile is /var/log/cuda-installer.log

这里的warning可以不用处理,官方文档上说不需要安装driver

安装完成之后需要将路径加入到环境变量中:

export PATH=/usr/local/cuda-12.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH

3.安装cuDNN(可选)

NVIDIA CUDA® 深度神经网络库 (cuDNN) 是一个 GPU 加速的深度神经网络基元库,能够以高度优化的方式实现标准例程(如前向和反向卷积、池化层、归一化和激活层)。

全球的深度学习研究人员和框架开发者都依赖 cuDNN 来实现高性能 GPU 加速。借助 cuDNN,研究人员和开发者可以专注于训练神经网络及开发软件应用,而不必花时间进行低层级的 GPU 性能调整。cuDNN 可加速广泛应用的深度学习框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PaddlePaddle、PyTorch 和 TensorFlow。如需获取经 NVIDIA 优化且已在框架中集成 cuDNN 的深度学习框架容器,请访问 NVIDIA GPU CLOUD 了解详情并开始使用。

下载地址:https://developer.nvidia.cn/cudnn 或 https://developer.nvidia.com/rdp/cudnn-archive#a-collapse896-120

在运行PyTorch训练和推理时,通常需要安装cuDNN,但并非绝对必要。cuDNN是一个GPU加速的深度神经网络库,能够以高度优化的方式实现标准例程,如前向和反向卷积、池化层、归一化和激活层。

在某些情况下,部分深度学习框架会将CUDA、CUDNN打包在whl包里,因此无需手动安装。例如,PyTorch的大部分版本就是这样,所以无需手动安装。

4.修改WSL安装路径

显然,此时的wsl默认安装在c盘,随着系统的使用,会占用我们C盘的空间,所以我们将其打包放到其它盘去。
1.查看WSL发行版本
在Windows PowerShell中输入命令:
wsl -l --all -v

PS C:\Users\Admin> wsl -l --all -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

2.导出分发版为tar文件到d盘
wsl --export Ubuntu d:\wsl-ubuntu20.04.tar(Ubuntu修改成你现在的发行版名称)
3.注销当前分发版
wsl --unregister Ubuntu (Ubuntu修改成你现在的发行版名称)
4.重新导入并安装WSL在d:\wsl-ubuntu20.04(可以修改成你自己想要的目录)
wsl --import Ubuntu d:\wsl-ubuntu20.04 d:\wsl-ubuntu20.04.tar --version 2
5.设置默认登陆用户为安装时用户名
Ubuntu config --default-user Username
6.删除tar文件(可选)
del d:\wsl-ubuntu20.04.tar

参考文档

5.WSL与主机传输文件

从windows拷贝文件到WSL
先查看目录挂载情况
sudo ls /mnt/*
找到文件,拷贝到当前目录
cp /mnt/盘符/文件 .

附WSL官方文档地址:https://learn.microsoft.com/zh-cn/windows/wsl/

参考文章:https://zhuanlan.zhihu.com/p/436393852

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1363505.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 CMake 和 Ninja 构建 C/C++ 项目的教程

使用 CMake 和 Ninja 构建 C/C 项目的教程 CMake 是一个跨平台的开源构建工具&#xff0c;它简化了项目的构建过程。而 Ninja 是一个快速、轻量级的构建系统&#xff0c;与 CMake 配合使用可以提高项目的构建效率。本教程将向你介绍如何使用 CMake 和 Ninja 来构建你的 C/C 项…

灰色关联分析

&#xff08;相关性分析&#xff09;反映关系有多么紧密 “在系统发展过程中&#xff0c;若两个因素变化的趋势具有一致性&#xff0c;即同步变化程度较高&#xff0c;即可谓二者关联程度较高&#xff1b;反之&#xff0c;则较低。因此&#xff0c;灰色关联分析方法&#xff0…

一文了解 DeFi 原生公链 Sei,以及钱包添加教程什么是Sei?

Sei&#xff0c;领先Layer 1公链&#xff0c;专攻加密资产交易。不局限于DeFi&#xff0c;还进军游戏、社交媒体和NFTs等领域&#xff0c;构建了多功能区块链生态系统。在众多公链中&#xff0c;Sei凭借卓越处理速度和技术创新崭露头角。独特共识机制和技术创新功不可没。作为通…

【LeetCode每日一题】2807. 在链表中插入最大公约数(模拟+求最大公约数的6中写法)

2024-1-6 文章目录 [2807. 在链表中插入最大公约数](https://leetcode.cn/problems/insert-greatest-common-divisors-in-linked-list/)思路&#xff1a;模拟求最大公约数的几种方法&#xff1a; 1.暴力枚举法2.辗转相除法3.辗转相除法 ---递归调用4.辗转相除法 ---递归调用---…

摄像头视频录制程序使用教程(Win10)

摄像头视频录制程序-Win10 &#x1f957;介绍&#x1f35b;使用说明&#x1f6a9;config.json 说明&#x1f6a9;启动&#x1f6a9;关闭&#x1f6a9;什么时候开始录制&#xff1f;&#x1f6a9;什么时候触发录制&#xff1f;&#x1f6a9;调参 &#x1f957;介绍 检测画面变化…

每日一练:LeeCode-388. 文件的最长绝对路径【字符串、栈方法】

本文是力扣LeeCode-388. 文件的最长绝对路径 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 假设有一个同时存储文件和目录的文件系统。下图展示了文件系统的一个示例&#xff1a; 这里将 dir 作为根目录中的唯一目录。…

vue3+vite +element plus日历date picker中文显示

项目情况 element-plus 默认是英文模式&#xff0c;需要中文模式的话需要设置一下&#xff1a; 项目框架&#xff08;vue3&#xff09;&#xff1a;vite JS element-plus 版本&#xff1a;&#xff08;注意版本兼容&#xff0c;element plus 较低版本&#xff1a;1.xx.xx&a…

【深度deepin】深度安装,jdk,tomcat,Nginx安装

目录 一 深度 1.1 介绍 1.2 与别的操作系统的优点 二 下载镜像文件及VM安装deepin 三 jdk&#xff0c;tomcat&#xff0c;Nginx安装 3.1 JDK安装 3.2 安装tomcat 3.3 安装nginx 一 深度 1.1 介绍 由深度科技社区开发的开源操作系统&#xff0c;基于Linux内核&#xf…

基于JAYA算法优化的Elman神经网络数据预测 - 附代码

基于JAYA算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于JAYA算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于JAYA优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针…

解决pip安装第三库echarts报错:Package would be ignored而安装失败的问题

现象&#xff1a; 尝试了很多方法都没解决 &#xff0c;最后终于突然灵光一闪找到原因&#xff08;我这是python虚拟环境&#xff0c;创建的时候会自动升级pip&#xff09; 原因&#xff1a; pip版本过高&#xff01; 想不到是这原因吧&#xff01; 解决办法&#xff1a;手动…

面向对象进阶(static关键字,继承,方法重写,super,this)

文章目录 面向对象进阶部分学习方法&#xff1a;今日内容教学目标 第一章 复习回顾1.1 如何定义类1.2 如何通过类创建对象1.3 封装1.3.1 封装的步骤1.3.2 封装的步骤实现 1.4 构造方法1.4.1 构造方法的作用1.4.2 构造方法的格式1.4.3 构造方法的应用 1.5 this关键字的作用1.5.1…

ejs默认配置 原型链污染

文章目录 ejs默认配置 造成原型链污染漏洞背景漏洞分析漏洞利用 例题 [SEETF 2023]Express JavaScript Security ejs默认配置 造成原型链污染 参考文章 漏洞背景 EJS维护者对原型链污染的问题有着很好的理解&#xff0c;并使用非常安全的函数清理他们创建的每个对象 利用Re…

DNS主从服务器、转发(缓存)服务器

一、主从服务器 1、基本含义 DNS辅助服务器是一种容错设计&#xff0c;考虑的是一旦DNS主服务器出现故障或因负载太重无法及时响应客户机请求&#xff0c;辅助服务器将挺身而出为主服务器排忧解难。辅助服务器的区域数据都是从主服务器复制而来&#xff0c;因此辅助服务器的数…

自动化文件处理软件FileFlows

什么是 FileFlows &#xff1f; FileFlows 是一款文件处理软件&#xff0c;可以转码、转换、压缩和管理任何文件类型&#xff0c;包括视频、音频、图像和漫画书。它支持多个平台、硬件编码器以及强大的流程和报告功能。 FileFlows 通过监视“库”&#xff08;文件夹/路径&#…

3D人体姿态估计(教程+代码)

3D人体姿态估计是指通过计算机视觉和深度学习技术&#xff0c;从图像或视频中推断出人体的三维姿态信息。它是计算机视觉领域的一个重要研究方向&#xff0c;具有广泛的应用潜力&#xff0c;如人机交互、运动分析、虚拟现实、增强现实等。 传统的2D人体姿态估计方法主要关注通…

SPRING BOOT发送邮件验证码(Gmail邮箱)

SPRING BOOT邮件发送验证码 一、Gmail邮箱配置 1、进入Gmail(https://mail.google.com) 2、打开谷歌右上角设置 3、启用POP/IMP 4、启用两步验证(https://myaccount.google.com/security) 5、建立应用程式密码 6、复制保存应用程式密码 二、代码 1、引入依赖 <d…

Java序列化篇----第二篇

系列文章目录 文章目录 系列文章目录前言一、Serializable 实现序列化二、writeObject 和 readObject 自定义序列化策略三、序列化 ID四、序列化并不保存静态变量五、Transient 关键字阻止该变量被序列化到文件中六、序列化(深 clone 一中实现)前言 前些天发现了一个巨牛的人…

Java线程同步机制

第1章&#xff1a;引言 大家好&#xff0c;我是小黑。今天咱们来聊聊并发编程&#xff0c;咱们经常听说并行、并发这些词&#xff0c;特别是在处理大量数据、高用户负载时&#xff0c;这些概念就显得尤为重要了。为什么呢&#xff1f;因为并发编程可以帮助咱们的应用程序更有效…

GO语言笔记1-安装与hello world

SDK开发工具包下载 Go语言官网地址&#xff1a;golang.org&#xff0c;无法访问Golang中文社区&#xff1a;首页 - Go语言中文网 - Golang中文社区下载地址&#xff1a;Go下载 - Go语言中文网 - Golang中文社区 尽量去下载稳定版本&#xff0c;根据使用系统下载压缩包格式的安装…

Dubbo入门介绍和实战

1. 引言 Dubbo是一款开源的高性能、轻量级的Java RPC&#xff08;远程过程调用&#xff09;框架&#xff0c;旨在解决分布式服务之间的通信问题。本文将介绍Dubbo的基础概念、核心特性以及使用场景&#xff0c;包括实际示例演示。 2. 什么是Dubbo&#xff1f; Dubbo是阿里巴…