manjaro深度学习tensorflow环境搭建 cuda cudnn nvidia显卡设置

NVIDIA显卡驱动安装

注意点:系统安装时 一定要选择no free
Manjaro系统安装显卡比较简单,它有一个命令

sudo mhwd -a [pci or usb connection] [free or nonfree drivers] 0300
其中

-a: 自动检测和安装合适的显卡驱动
[pci or usb]: 为通过PCI或者USB连接的设置安装驱动
[free or nonfree]: 安装免费或者非免费的驱动
0300: 确认即将安装的显卡的驱动
我们要安装英伟达的驱动,只要使用下面的一行命令即可搞定

sudo mhwd -a pci nonfree 0300
等待安装结束,使用如下命令查看是否已经安装完成

nvidia-smi 显示显卡信息 没有则是安装错误

CUDA安装

安装命令
Manjaro的CUDA安装也是异常简单,一行命令搞定

sudo pacman -S cuda cudnn 默认安装最新 cuda 和cudnn配套安装

验证安装
完成之后,我们进入cuda的安装路径,我的路径是/opt/cuda,你可以使用下面的命令将CUDA的示例程序拷贝到你的用户主目录下,之后编译程序

cp -r /opt/cuda/samples ~
cd ~/samples
sudo make
此时就使用nvcc编译器开始编译CUDA的sample程序,这个花费时间更长,应该在半小时左右,等待编译结束,使用下面的命令验证是否成功

cd ~/samples/bin/x86_64/linux/release
./deviceQuery
在窗口中查看最后一行的结果是否为pass,如果是则表示CUDA安装成功。

CUDA 8 cudnn6安装

yay -S cuda-8.0 cudnn6 安装玩后在/opt/ 文件夹下面 ,把cudnn相关文件移动到cuda中
sudo cp /opt/cudnn6/include/* /opt/cuda/include/
sudo cp /opt/cudnn6/lib64/* /opt/cuda/lib64/
把bin 和 lib64文件夹 设置环境变量

cuda cudnn 终极安装法

对于tensorflow1.13这样成熟的版本,conda已经支持安装,直接conda安装tensorflow1.13 即可 安装所依赖的环境cuda cudnn自动安装,无需另外安装。而对于最新版本,可能还需要自己安装。
conda install tensorflow
还有一种方法: 对于最新的版本 可以pip安装tensorflow conda 安装cudnn,或者pacman 安装cudnn
conda search cudnn查询 cudnn 即可查询配套的cudnn
https://repo.anaconda.com/pkgs/main/linux-64/cudatoolkit-10.0.130-0.tar.bz2 cuda10.0下载
链接: https://pan.baidu.com/s/17S8glyyOyB3fD3C-VkQfgA 提取码: iggg 网盘链接

tensorflow2.0 cuda环境安装:

conda search cuda  # 查看可安装的cuda
conda search cuda --info # 查看详细信息
找到相关版本的url地址 复制到浏览器下载之后conda file安装,或者直接conda install url 安装,tf 一般比较吃cuda的版本
tf2.0 使用 cuda10.0 版本
conda install cudnn  #自动安装cudnn6,使用conv2D 操作无法初始化cudnn 需要升级使用cudnn7.3.1
conda install cudnn==7.3.1

双显卡配置

我的电脑有两个显卡,一个是intel的集成显卡,一个是NVIDIA的独显。

安装显卡切换程序bumblebee

bumblebee 使用方法:https://wiki.archlinux.org/index.php/Bumblebee#Test
Manjaro的双显卡配置有点问题,Bumblebee还是有点问题,使用下面的命令重新安装

# 依赖
sudo pacman -S virtualgl lib32-virtualgl lib32-primus primus

# 安装双显卡切换程序bumblebee
sudo mhwd -f -i pci video-hybrid-intel-nvidia-bumblebee

# 允许服务
sudo systemctl enable bumblebeed

# 添加用户
sudo gpasswd -a $USER bumblebee

为了防止重启之后不能进入登录界面,需要做如下的配置

  1. 打开 sudo nano /etc/default/grub
  2. 找到并且改为:GRUB_CMDLINE_LINUX_DEFAULT=”quiet acpi_osi=! acpi_osi=Linux acpi_osi=’Windows 2015’ pcie_port_pm=off resume=…”
  3. 运行sudo update-grub,重启

测试显卡性能

使用下面的shell命令安装显卡测试程序

# 安装测试软件
sudo pacman -S mesa-demos

# 集成显卡性能
glxgears -info

# 独显性能
optirun glxgears -info
# 或者
primusrun glxgears -info

需要注意的是,之后运行的所有程序,如果需要使用独立显卡,需要在命令的前面加上optirun或者primusrun的前缀。

# 打开nvida面板
optirun -b none nvidia-settings -c :8

# 不依赖Bumblebee来使用CUDA
sudo tee /proc/acpi/bbswitch <<< 'ON'

# 使用完CUDA 停止NVIDIA显卡(没必要的操作)
sudo rmmod nvidia_uvm nvidia && sudo tee /proc/acpi/bbswitch <<< OFF

inxi -G # 查看显卡情况
optirun glxspheres64        有动画出现则bumblebee正常

optirun nvidia-smi # 查看CPU情况

如果所有版本匹配了,tensorflow运行不报错了。检测不到设备 Device mapping: no known devices
尝试使用以下命令:

  1. 重装tensorflow-gpu
  2. sudo tee /proc/acpi/bbswitch <<< 'ON' 开启显卡 , 重启失效,重新运行,建议开机自启
  3. systemctl enable bumblebeed.service

tensorflow 安装

cuda 8 和cudnn6 可以直接使用tensorflow-gpu 1.4或者1.3版本。但是会有问题,tensorflow无法使用GPU

tensorflow cuda 和 cudnn 有版本对应 一定要配套使用
pacman -S cudnn 默认安装最新cudnn,tensorflow 未必有现成相对应的版本使用,可以pacman -U 安装制定源cuda和cudnn注意配套 也可以使用pacman -Ss cuda cudnn 或者 yaourt -Ss查询 版本,按照配套的要求安装配套版本。
manjaro深度学习tensorflow环境搭建 cuda cudnn nvidia显卡设置_第1张图片
配套查询地址:https://www.tensorflow.org/install/source#common_installation_problems

源码安装tensorflow

依照地址 安装:https://www.tensorflow.org/install/source#common_installation_problems

注意点:编译tensorflow过程中需要安装bazel,archLinux中 推荐使用源码编译bazel可安装任何版本,不同的tensorflow版本需要不同版本的bazel。yaourt和pacman只能安装最新的bazel。博主编译1.13版本tensorflow使用的是0.19.2版本bazel
bazel源码安装参照地址:https://docs.bazel.build/versions/0.19.1/install-compile-source.html

参照资料:

https://leblancfg.com/installing-cuda-cudnn-tensorflow-nvidia-gtx960.html
https://www.cnblogs.com/yangruiGB2312/p/9004335.html
https://wiki.archlinux.org/index.php/Bumblebee#Test

你可能感兴趣的:(深度学习,Linux)