TensorFlow GPU不可用,WSL2安装

news/2024/11/26 5:32:51/

这个帖子写给23年刚买电脑、系统是win11,tensorflow版本是2.10以上的兄弟们。不符合的可以去看其他答案了。

这是以我三天来的安装经历来写的,希望能给后来的兄弟们减少时间的浪费。

win11,安装的tensorflow的版本都是2.12的,但是从2.10开始tensorflow就不支持gpu了,这点在英文版的安装页面里有

而中文版是没有这个提示的,估计也是很多人试了很多遍,检查了很多次环境变量都解决不了为什么就是不能调用gpu的原因。此时我们只能通过wsl2的方式来安装了,这是在windows里运行了一个虚拟机环境

 想要去官网看的点链接,记得改成英文

不想去的可以接着看,我一步步记录。

1、安装WSL

进到https://learn.microsoft.com/zh-cn/windows/wsl/install安装WSL2,

wsl --install

显示这个就是安装完成,此时重启电脑。

好了,重启完我们继续。

提示:上述命令默认安装ubuntu,不想用的可以按照下面图片里的进行更改

 2、设置 Linux 用户信息

安装了linux,就开始设置

官方给了链接:https://learn.microsoft.com/zh-cn/windows/wsl/setup/environment#set-up-your-linux-username-and-password

可以WIN+S搜ubuntu,也可以在安装应用里找到

 进入显示

官网这样说:

根据提示,输入passwd,进行密码设置,输入时不会显示,

 接下来升级更新

 3、设置 Windows Terminal

win+s输入cmd打开终端

边上有个向下的箭头,打开,点设置,然后在启动里的默认终端应用程序选择windows终端

 也不知道设置这啥用,先设置吧

4、检查正在运行的WSL版本

 输入:

wsl -l -v

显示:

 这里就WSL安装完成了

5、英伟达CUDA相关安装

官网链接:

NVIDIA GPU Accelerated Computing on WSL 2

这里我们直接开始安装

 进入:Official Drivers | NVIDIA

 

CUDA这里大家应该都安装过了,没有安装的,就点链接进去安装就好了

 这里我们已经安装过了。

 注意:CUDA是安装win11的,但工具包也就是CUDA Toolkit要安装linux的,

sudo apt-key del 7fa2af80

这行代码应该是之前安装过Linux的,我输入没有结果,报了个warning

我就没管,继续下一步,下载Ubuntu-WSL专属的工具包

 链接:CUDA Toolkit 12.1 Downloads | NVIDIA Developer

 

进去就选好了

 下载代码,一步步来吧。

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/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

 (1)cmd进入终端,输入wsl.exe,进入Linux

输入:

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin

(2) 输入

sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb

等待下载完成

输入

sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb

输入

sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update

 

输入

sudo apt-get -y install cuda

一大堆下载安装

 到这里CUDA工具包就安装好了。

这里是说没有用WSL-Ubuntu软件包安装Toolkit 的要参考的。

6、安装Miniconda

 我们接着上面的继续在ubuntu里输入

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

可能需要重新启动终端或 source ~/.bashrc 以启用 conda 命令。 使用conda -V 测试是否安装成功。

7、创建conda环境

 在刚才进的conda环境输入

conda create --name tf python=3.9

又开始下载安装一堆东西

 按照提示,我们输入

conda activate tf

来激活刚才创建的tf环境,接下来的东西要在环境激活的条件下才能完成。

8、设置GPU

 激活环境,并查看是否安装了GPU驱动

conda activate tf
nvidia-smi

 这里又安装了一下cudatoolkit,不知道为啥,不管了,安吧

conda install -c conda-forge cudatoolkit=11.8.0

得,上一次的下载安装又来一次

接着安装cudnn,pip安装换个源吧,快一点,我习惯用豆瓣源了,也可以换其他源pycharm通过pip下载一直不成功的解决方法_pycharm包下载不了_坠星不坠的博客-CSDN博客

pip install nvidia-cudnn-cu11==8.6.0.163 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

安装完之后是配置环境

CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib

上面这个每进一次就要配置一次,接下来是自动配置,下面两句是一行,不要复制成两行了

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

9、安装 TensorFlow

注意:不要使用 conda 安装 TensorFlow。 它可能没有最新的稳定版本。 推荐使用 pip,因为 TensorFlow 仅正式发布到 PyPI。

所以接下来安装tensorflow就用cmd就行了,也是换个源吧

pip install --upgrade pip
pip install tensorflow==2.12.0

10、验证是否成功

 验证cpu

python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

验证gpu

python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

显示,gpu显示空,我估计是失败了,继续找为什么。


问题解决,可以用GPU了!!!

又用了两个小时找各种方法试,怀疑是自己流程没对,也重新装了几个docker环境,到装第三个的时候发现有一步错了,装tensorflow的时候是在conda环境里装,教程说的是不要用conda命令,我理解成不要在conda环境里了,换成在conda环境里装就好了。

还是用上面的验证方法。

 


附带其他博主安装教程

在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch_conda安装cuda_溯水襄陵_的博客-CSDN博客


http://www.ppmy.cn/news/46976.html

相关文章

ARM汇编第一次上机(顺序、分支、单重循环)【嵌入式系统】

ARM汇编第一次上机(顺序、分支、单重循环)【嵌入式系统】 前言推荐说明ARM汇编第一次上机(顺序、分支、单重循环)内容1 sum1流程图代码编写结果分析 2 sum2流程图代码编写结果分析 3 numbers流程图代码编写结果分析 最后 前言 20…

基于C#编程建立泛型Vector数据类型及对应处理方法

目录 一、简介 二、方法 2.1 建立Vector类 2.2 Vector成员 2.3 Vector属性 2.4 Vector方法 2.4.1 构造函数 2.4.2 Vector元素操作方法 2.4.3 Vector 运算 三、调用方法 3.1 方法 3.1.1 Append 3.1.2 this[] 3.1.3 Insert 3.1.4 DelLen 3.1.5 FindNumber 3.1.6 …

觉非科技发布:基于BEV的数据闭环融合智驾解决方案

2023年上海车展期间,觉非科技基于BEV的数据闭环融合智能驾驶解决方案正式发布。 该方案可通过量产车BEV的实时感知结果,提供完整的城市Map-lite及Map-free数据闭环融合解决方案,并满足城市NOA、记忆通勤/泊车以及感知大模型训练的需要。 车…

数据结构之顺序表

🎉welcome🎉 ✒️博主介绍:博主大一智能制造在读,热爱C/C,会不定期更新系统、语法、算法、硬件的相关博客,浅浅期待下一次更新吧! ✈️算法专栏:算法与数据结构 😘博客制…

【动手学深度学习】使用块的网络(VGG)

使用块的网络(VGG) 本文为李沐老师《动手学深度学习》一书的学习笔记,原书地址为:Dive into Deep Learning。 另,给自己练习时没有gpu资源的小伙伴推荐下kaggle数据科学网站,每周免费训练时长30h。 1 网络结…

大数据=SQL Boy,SQL Debug打破SQL Boy 的僵局

网上经常盛传 大数据sql boy,后端开发crud boy,算法工程师调参boy 在大数据领域也工作了好几年了,确实大数据开发,很多工作就是写sql,hive sql、spark sql、flink sql等等sql 一、背景: 但是经常有这样一…

不能使用chatGPT?这3个平替甚至比chatGPT更强

不能使用chatGPT?这3个平替甚至比chatGPT更强 chatGPT,一款由OpenAI开发的新型AI聊天机器人,正在势如破竹地改变着许多人的工作和生活方式。作为一款基于大语言模型的聊天机器人,chatGPT能够理解自然语言并进行人机对话。与传统的…

【LeetCode: 300. 最长递增子序列 | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…