1, 先查看是否安装有以下组件, 若有先考虑彻底删除再安装(安装严格按照下面顺序进行)
查看 nvidia 版本
nvidia-smi
查看 cuda 版本
cat /usr/local/cuda/version.txt
查看 cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
2. 安装 nvidia 驱动
1. 禁用系统默认 nouveau 显卡驱动
打开系统黑名单, 命令如下 :
sudo vi /etc/modprobe.d/blacklist.conf
在 blacklist.conf 文件中添加禁用的显示设备, 文件尾部追加内如如下:
- # for nvidia display device install
- blacklist vga16fb
- blacklist nouveau
- blacklist rivafb
- blacklist rivatv
- blacklist nvidiafb
保存 blacklist.conf 文件, 然后更新内核, 命令如下:
sudo update-initramfs -u
重启电脑
sudo reboot
重启完成, 执行命令如下(查看是否禁用成功, 无输出则禁用成功):
lsmod | grep nouveau
2. 安装 RTX1060 驱动
首先进入命令行模式
ctrl+alt+f2
由于我们要安装显卡驱动, 会影响桌面显示, 我们可以先关闭 (图形) 桌面显示管理器 18.04 是 gdm3, 这里根据自己的版本选择就好
Ubuntu 16.04 是 lightdm
sudo service lightdm stop
Ubuntu 18.04 是 gdm3
sudo service gdm3 stop
添加驱动源:
- sudo add-apt-repository ppa:graphics-drivers/ppa
- sudo apt-get update
寻找合适驱动版本:
Ubuntu-drivers devices
这里最好去官网 https://www.geforce.cn/drivers 注意 笔记本电脑 要选择 Notebooks 版本的驱动
或者
Ubuntu 右上角》系统设置》软件与更新》附加驱动选择》里面看看系统推荐的版本号, 最好根据这个进行选择, 为了避免更多未知的坑(不推荐直接在附加驱动选择直接安装: 失败概率有些高, 而且容易造成循环登录的问题)
sudo apt-get install nvidia-390
然后开启桌面管理器或者直接重启
sudo service gdm3 restart
或者
sudo reboot
重启后
查看 nvidia 版本
nvidia-smi
显示则安装成功
nvidia-settings
打开 N 卡的设置
3. 安装 cuda
先查看 nvidia 驱动, cuda,cudnn 对应关系
nvidia 与 cuda 要求的版本对应关系:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
cuda 与 cudnn 需要满足关系:
https://developer.nvidia.com/rdp/cudnn-archive
3.1 安装依赖库
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-devlibgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
3.2 降级 gcc
由于 Cuda-9.0 只支持 gcc-6.0 以下的版本, 而 Ubuntu18.04 系统默认安装的 gcc-7.3 版本(可以在终端输入 gcc --version 查看系统安装的 gcc 版本), 所以首先需要降级为 gcc-5 版本.
首先需要安装 gcc-5
在终端输入:
- sudo apt install gcc-5
- sudo apt install g++-5
链接至 gcc-5 版本
在终端输入:
- cd /usr/bin
- sudo mv gcc gcc.bak #备份
- sudo ln -s gcc-5 gcc
- sudo mv g++ g++.bak
- sudo ln -s g++-5 g++
最后查看系统的 gcc 版本是否已更改
gcc --version
3.2 安装对应版本的 Cuda
cuda 是 nvidia 的编程语言平台, 想使用 GPU 就必须要使用 cuda
https://developer.nvidia.com/cuda-toolkit-archive
保守起见, 选择 cuda9.0 进行安装, 也可以选择更高版本的
注意 9.0 是没有 18.04 可选的, 但我们选择 16.04 依然可以安装, 正常使用 (还没遇到过不正常状态) 依次下载下面五个 installers
基础安装包
sudo sh cuda_9.0.176.384.81_linux.run --override
在安装过程中 按 Q 跳过阅读 more, 会出现几个是否选装和安装位置的选项
其中第二个不需要安装 NVIDIA 驱动(系统已安装), 其余都选择 yes 或者敲回车.
yes
no
yes
回车
yes
yes
回车
四个更新包
- sudo sh cuda_9.0.176.1_linux.run
- sudo sh cuda_9.0.176.2_linux.run
- sudo sh cuda_9.0.176.3_linux.run
- sudo sh cuda_9.0.176.4_linux.run
修改环境变量
安装完 Cuda-9.0 后, 还需要将其添加至系统环境变量.
Ubuntu 下某些程序需要自己定义 LD_LIBRARY_PATH, 修改下面文件的环境变量:
sudo gedit ~/.bashrc
打开 "profile" 文件, 在末尾处添加(注意不要有空格, 不然会报错):
- export PATH=/usr/local/cuda/bin:$PATH
- export LD_LIBRARY_PATH=/usr/local/cuda/lib64$:LD_LIBRARY_PATH
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
- # 注意这里不要写 cuda 几点几, 因为我们要实现多版本切换
或者你不需要切换版本
- export PATH="$PATH:/usr/local/cuda-9.0/bin"
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64"
保存文本后, 更新系统环境变量:
source ~/.bashrc
至此, 可以通过在终端输入 nvcc -V, 检查 Cuda-9.0 是否安装成功.
也可以测试 cuda 的 Samples
- cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
- sudo make
- ./deviceQuery
运行最后显示 Result = Pass
注意路径要根据你自己的进行修改
如果显示的是一些关于 GPU 的信息, 则说明安装成功了.
4. 安装对应版本的 cudnn
首先去官网下载你需要的 cudnn, 下载的时候需要注册账号. 选择对应你 cuda 版本的 cudnn 下载.
https://developer.nvidia.com/rdp/cudnn-archive
安装完 Cuda 之后, 继续安装与 Cuda-9.0 版本对应的 Cudnn
cuDNN v7.3.1 Library for Linux
下载时候保存为: cudnn-9.0-Linux-x64-v7.4.1.5.tgz
下载后安装非常简单, 就是解压然后拷贝到相应的系统 CUDA 路径下, 注意最后一行拷贝时 "-d" 不能少,
- tar -zxvf cudnn-9.0-Linux-x64-v7.4.1.5.tgz
- sudo cp cuda/include/cudnn.h /usr/local/cuda/include
- sudo cp cuda/lib64/libcudnn*/usr/local/cuda/lib64
- (更改的权限文件也是实际安装的绝对路径)
- sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
没有报错就是全部安装完成了
完成后, 可以到~/NVIDIA_CUDA-9.0_Samples / 文件夹下测试 CUDA 功能完整性
- cd /usr/local/cuda/samples/1_Utilities/deviceQuery
- sudo make
- ./deviceQuery
5. 安装 opencv-python 版本
安装 pip3, 执行命令
sudo apt install python3-pip
安装 libopencv-dev 依赖包
sudo apt install libopencv-dev
安装 opencv-python 库
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
安装成功
- python3
- import cv2
- print(cv2.__version__)
6. 安装 opencv 3.2.0
6.1. 安装 opencv 依赖包
- GCC 4.4.x or later
- CMake 2.6 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev) # 控制 opencv GUI
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- FFMPEG or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
- sudo apt-get install build-essential
- sudo apt-get install cmake Git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
- sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev # 处理图像所需的包
- sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
- sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
- sudo apt-get install libatlas-base-dev gfortran # 优化 opencv 功能
- sudo apt-get install FFMPEG
- sudo apt-get install libgstreamer-plugins-base1.0-dev
依赖包 libjasper-dev
- sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
- sudo apt update
- sudo apt install libjasper1 libjasper-dev
6.2. 下载 opencv-3.4.4
安装 opencv 可以直接使用命令安装, 这里我们下载 opencv 源码进行编译安装, 如下图, 官网链接 Releases - OpenCV library https://opencv.org/releases.html :
选择 3.4.4 Sources
wget https://github.com/opencv/opencv/archive/3.4.4.zip
这里建议用 Linux 平台可用的 motrix (类似迅雷) 下载
6.3 解压下载好的 opencv-3.4.4.zip 然后安装 opencv
- cd opencv-3.4.4/
- mkdir build
- cd build
在 cmake 配置过程中, 需要下载 ippicv_2019_lnx_intel64_general_20180723.tgz 文件, 这个文件下载速度超级慢
总是会卡在(因为墙的缘故, 下载龟速, 基本都是失败)
-- IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz
所以这里选择离线单独从百度网盘下载这个文件
百度网盘链接: https://pan.baidu.com/s/1f6QGwcbMNbL9vDLwUX1w6A 提取码: i47f
假设 ippicv_2019_lnx_intel64_general_20180723.tgz 下载后放置于
/home/joe/Downloads
找到并修改 ippicv.make 文件
/home/joe/Downloads/opencv-3.4.4/3rdparty/ippicv/ippicv.cmake
修改前:
- set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
- ocv_download(FILENAME ${OPENCV_ICV_NAME}
- HASH ${OPENCV_ICV_HASH}
- URL
- "${OPENCV_IPPICV_URL}"
- "$ENV{OPENCV_IPPICV_URL}"
- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
- DESTINATION_DIR "${THE_ROOT}"
- ID IPPICV
- STATUS res
- UNPACK RELATIVE_URL)
修改后
- set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
- ocv_download(FILENAME ${OPENCV_ICV_NAME}
- HASH ${OPENCV_ICV_HASH}
- URL
- "${OPENCV_IPPICV_URL}"
- "$ENV{OPENCV_IPPICV_URL}"
- "file:///home/joe/Downloads/"
- DESTINATION_DIR "${THE_ROOT}"
- ID IPPICV
- STATUS res
- UNPACK RELATIVE_URL)
修改后, 下载 ippicv 文件时, 会自动从本地文件加载.
更详细的步骤可以参照原文
https://www.aiuai.cn/aifarm792.html
做好预先准备后紧接着前面
cd build
配置命令如下:(这里没有搞定启用 opencv cuda 加速)
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
使用如下命令进行编译:
make -j7
执行安装命令如下:
sudo make install
安装完成提示如下图:
测试 opencv 安装是否成功, 执行命令如下:
- opencv_version
- # 3.4.4
6.4. 添加路径
这类似于 Windows 中装完 Java 要在环境变量里添加 PATH 一样, 为了让系统能够识别, 需要做以下几步: 在终端中输入如下语句, 打开这个文件:
sudo VIM /etc/ld.so.conf.d/opencv.conf
在最后一行添加一句话 "/usr/local/lib", 当然它也可能是空的, 没关系. 输入 VIM 可能会提示你找不到命令, 你只需要 apt-get install VIM, 安装一下包再输入命令就可以了. 或者如果你不会 VIM 命令, 那就直接按照路径 / etc/ld.so.conf.d / 去找, 在该目录下新建一个 opencv.conf 文件, 并且打开编辑, 将 "/usr/local/lib" 添加进去, 保存退出即可.
然后运行以下代码配置库:
sudo ldconfig
注意输入完后, 什么都不会出现, 只是类似于库配置完后刷新一下. 然后再打开另一个文件:/etc/bash.bashrc. 你可以选择用命令行 sudo gedit /etc/bash.bashrc 打开或者直接打开都可以. 在文件末尾添加两行:
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
- export PKG_CONFIG_PATH
保存并关闭. 至此, OpenCV 的库就编译和安装完了. 撒花~
opencv 虽然安装了, 但是 opecv 基于 cuda 问题没有解决, 这里也向小伙伴求助, 欢迎小伙伴来指导.
如果 opencv 安装有以下问题 configuring incomplete, errors occurred! 可以参考下面的博客
经过谷歌解决了这个问题
参考 csdn 中这个大佬的博客原因解析: cuda9 不再支持 2.0 架构
解决方案如下:
1). 找到 FindCUDA.cmake 文件
找到行
find_cuda_helper_libs(nppi)
改为
- find_cuda_helper_libs(nppial)
- find_cuda_helper_libs(nppicc)
- find_cuda_helper_libs(nppicom)
- find_cuda_helper_libs(nppidei)
- find_cuda_helper_libs(nppif)
- find_cuda_helper_libs(nppig)
- find_cuda_helper_libs(nppim)
- find_cuda_helper_libs(nppist)
- find_cuda_helper_libs(nppisu)
- find_cuda_helper_libs(nppitc)
2). 找到行
set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")
改为
set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")
3). 找到行
unset(CUDA_nppi_LIBRARY CACHE)
改为
- unset(CUDA_nppial_LIBRARY CACHE)
- unset(CUDA_nppicc_LIBRARY CACHE)
- unset(CUDA_nppicom_LIBRARY CACHE)
- unset(CUDA_nppidei_LIBRARY CACHE)
- unset(CUDA_nppif_LIBRARY CACHE)
- unset(CUDA_nppig_LIBRARY CACHE)
- unset(CUDA_nppim_LIBRARY CACHE)
- unset(CUDA_nppist_LIBRARY CACHE)
- unset(CUDA_nppisu_LIBRARY CACHE)
- unset(CUDA_nppitc_LIBRARY CACHE)
4). 找到文件 OpenCVDetectCUDA.cmake
修改以下几行
- ...
- set(__cuda_arch_ptx "")
- if(CUDA_GENERATION STREQUAL "Fermi")
- set(__cuda_arch_bin "2.0")
- elseif(CUDA_GENERATION STREQUAL "Kepler")
- set(__cuda_arch_bin "3.0 3.5 3.7")
- ...
改为
- ...
- set(__cuda_arch_ptx "")
- if(CUDA_GENERATION STREQUAL "Kepler")
- set(__cuda_arch_bin "3.0 3.5 3.7")
- elseif(CUDA_GENERATION STREQUAL "Maxwell")
- set(__cuda_arch_bin "5.0 5.2")
- ...
5).cuda9 中有一个单独的 halffloat(cuda_fp16.h)头文件, 也应该被包括在 opencv 的目录里
将头文件 cuda_fp16.h 添加至 opencv\modules\cudev\include\opencv2\cudev\common.hpp
即在 common.hpp 中添加
#include <cuda_fp16.h>
6)重新 cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
问题解决
7. 卸载 Cuda 和 Cudnn
卸载 Cuda-9.0
终端输入
- cd /usr/local/cuda-9.0/bin
- sudo ./uninstall_cuda_9.0.pl
卸载 Cudnn
终端输入
sudo apt remove cudnn*
8. 安装 tensorflow-gpu
直接通过 pip 安装 Tensorflow-gpu
sudo pip3 install tensorflow-gpu
9. 安装 teamviewer
官网选择 Linux 版本, 下载 Ubuntu 版本 deb 安装包, 官网链接地址: 下载 Linux 版 TeamViewer, 进行远程桌面访问和协作 https://www.teamviewer.com/cn/download/linux/
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
这里建议用 Linux 平台可用的 motrix (类似迅雷) 下载
下载完成, 使用如下命令进行 deb 包的安装:
sudo dpkg -i teamviewer_amd64.deb
如果出现依赖库安装失败执行如下命令, 强制更新类库依赖:
sudo apt-get install -f
安装完成, 执行启动 teamviewer 命令如下:
teamviewer
本文终
本文参考整理自
- https://blog.csdn.net/hancoder/article/details/86634415
- https://zhuanlan.zhihu.com/p/57803337?utm_source=wechat_session&utm_medium=social&s_r=0
- https://www.aiuai.cn/aifarm792.html
y7000 笔记本 darknet-yolo 安装与测试(Ubuntu16.04+Cuda9.0+Cudnn7.1)
来源: http://www.bubuko.com/infodetail-3093603.html