目录
原因是因为我把wsl中的ubuntu发行版搞崩了,卸载重装了发现ext4文件也无了,又要痛苦的重新安装cuda和编译tensorflow了(!!!!!no,好痛苦)
在wsl中输入
nvidia-smi
如果不能显示就是安装的driver version版本太低了 我之前就因为这个卡住过
1、安装CUDA Toolkit
CUDA Toolkit Archive | NVIDIA Developer
选择这种方式直接了当
惊奇发现我居然还有cuda11.1
一般下载完就在/usr/local
但是没有配置路径
vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
2、配置cudnn
cuDNN Archive | NVIDIA Developer
选择下载对应版本linux x86,下载到的是windows本地,解压到wsl中你想要的位置下
tar -xvf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
将解压后的cuda的两个文件夹内容拷贝到/usr/local/cuda-11.1下
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64/
sudo cp cuda/include/cudnn* /usr/local/cuda-11.1/include/
设置读取权限:
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn*
sudo chmod a+r /usr/local/cuda-11.1/lib64/libcudnn*
验证cuda是否安装成功
cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes
出现Test passed说明安装成功。
3、编译tensorflow-gpu
从源代码构建 | TensorFlow (google.cn)
前置条件是我前面已经弄好bazel、gcc等,是在anaconda的虚拟环境下编译python==3.9
进入下载好tensorflow源码的地方
别忘了修改交换区大小,太小的不行,可以百度下怎么改,我下面这种方式的不能永久生效,每次重新启动wsl就不行了,这个/swap/swapfile文件也是我之前处理过的
永久办法:在C:\Users\32030 新建.wslconfig文件
[wsl2]
memory=4GB #可用的最大内存
swap=12GB #交换分区大小
localhostForwarding=true
还需要知道gpu的计算能力
python configure.py
bazel build --config=cuda --local_ram_resources=2048 //tensorflow/tools/pip_package:build_pip_package
然后就是漫长的等待,大概要编译一天一夜吧
构建软件包:
bazel build
命令会创建一个名为 build_pip_package
的可执行文件,此文件是用于构建 pip
软件包的程序。如下所示地运行该可执行文件,以在 /tmp/tensorflow_pkg
目录中构建 .whl
软件包。
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
安装软件包:
pip install /tmp/tensorflow_pkg/tensorflow-2.4.0-cp39-cp39-linux_x86_64.whl
又出问题了,tensorflow2.4.0会需要下载h5py-2.10.0,而我的环境无法下载2.10.0会报错找不到Cython,但是可以安装最新的h5py-3.10.0,我不知道怎么解决!!!!!放弃了,懒得换版本了
如果报这个错误,就是别在tensorflow这个文件夹下使用python
然后运行检查是否下载成功
python
import tensorflow as tf
tf.config.list_physical_devices('GPU')
能显示就是对的
一般可能还会报numpy版本不合适的错,这是玄学,我只会一个个试