安装CUDA及Tensorflow
yay -S --needed --noconfirm cuda cudnn cuda-toolkit python-tensorflow-cuda
yay -S --needed --noconfirm optimus-manager optimus-manager-qt
我使用的电脑是2020 年的HP OMEM, 带有Intel集成显卡与Nvidia2070,需要使用optimus-manager切换显卡,如果你只有一个显卡可以不安装它。
如果是双显卡,需要运行optimus-manager-qt
,通过状态栏图标切换为Nvidia显卡。
测试tensorflow是否可以使用GPU:
import tensorflow as tf
tf.test.is_gpu_available()
安装opencv
- 安装依赖包nvidia-sdk。安装前需要先下载Video Codec SDK。将下载的文件放在nvidia-sdk目录,再安装例如:
git clone --depth=1 https://aur.archlinux.org/nvidia-sdk.git cd nvidia-sdk # 下载Nvidia Video SDK # ... makepkg -si
- 然后使用yay安装opencv-cuda,这个过程会比较久,
# 如果已经装有opencv先删除 yay -R opencv yay -S --needed --noconfirm opencv-cuda
如果中途失败,为避免重新编译,可以进入yay缓存目录手动安装:
cd ~/.cache/yay/opencv-cuda/
makepkg -si
测试是否安装成功:
import cv2
cv2.cuda.getCudaEnabledDeviceCount() > 0
Tensorflow OOM等问题
- 在训练前提示系统RAM不够,这种情况一般Python进程会直接被杀死,命令行里只会收到
Killed
提示,- 如果你还没有配置swap分区,建议配置
- 减小训练参数
max_queue_size
,默认为10
- 训练时提示GPU OOM,可以使用下面的配置配置训练时使用的最大显存:
from tensorflow.compat.v1 import ConfigProto from tensorflow.compat.v1 import InteractiveSession cf = ConfigProto() cf.gpu_options.allow_growth = True cf.gpu_options.per_process_gpu_memory_fraction=0.7 session = InteractiveSession(config=cf)
后记
在使用optimus-manager前,我打算用nvida-setting切换显卡,结果修改了创建了Xorg.conf文件导致系统无法进入图形界面,删除/etc/X11/xorg.conf
后解决。