文章目录
environment and target:
laptop: alienware 15R3
CPU: Intel® Core™ i7-6700HQ CPU @ 2.60GHz 8 cores
GPU: GP104M [GeForce GTX 1070 Mobile]
RAM:16GB
ROM:250GB SSD
CUDA: 10.2
Cudnn: 7.6
pycuda:2019.1.2
tensorflow: 2.0.0b1
NOTE: CUDA 10.2 自带 NVIDIA driver,所以不需要自己去安装nvidia 驱动,安装了还会有版本不和的问题, cuda runfile 后面带如:440_33 的就是nvidia driver的版本号
1. Download
- cuda 10.2, 选择runfile
- cudnn, 需要注册账号; three files:
- cuDNN Runtime Library for Ubuntu18.04 (Deb)
- cuDNN Developer Library for Ubuntu18.04 (Deb)
- cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)
- pycuda 官网
2. Installation
2.1 cuda and nvidia
- uninstall method:
sudo /usr/local/cuda-10.2/bin/cuda-uninstaller
sudo /usr/bin/nvidia-uninstall
- remove
To remove CUDA Toolkit:
sudo apt-get --purge remove “cublas” “cuda*”
To remove NVIDIA Drivers:
sudo apt-get --purge remove “nvidia”
START:
-
检查自己的电脑环境是否具备安装CUDA的条件
#会显示自己的NVIDIA GPU版本信息,check its cuda version lspci | grep -i nvidia # check uour ubuntu version to check its cuda version uname -m && cat /etc/*release #可以查看自己的gcc版本信息 gcc –version # if no sudo apt-get install gcc #可以查看自己的kernel版本信息 uname –r #安装对应kernel版本的kernel header和package development sudo apt-get install linux-headers-$(uname -r)
-
dowload runfile, refer to download
-
runfile安装cuda
#有输出则代表nouveau正在加载,需禁用, nouveau是ubuntu自带的开源的显卡驱动,不适合 lsmod | grep nouveau #禁用 nouveau sudo vim /etc/modprobe.d/blacklist-nouveau.conf #add in file: blacklist nouveau options nouveau modeset=0 #运行禁用 sudo update-initramfs –u #检查是否禁用成功,无输出代表成功 lsmod | grep nouveau reboot #到达登录界面时,alt+ctrl+f1,进入tty1, text mode,登录账户 #使用lightdm 关闭图形化界面 sudo apt install lightdm sudo service lightdm stop cd ~/Downloads sudo chmod +x cuda***.run # install without install opengl package, opengl will makes the desktop restart in loops sudo ./cuda***.run --no-opengl-libs #出现安装框的选择是(遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU需要选择no,否则可以yes)): accept options--> nvidia driver --> choose *, choose 1. no opengl; 2.not install drms (update management); 3.update X configure 其他都选择yes或者默认 # 重新启动图形化界面 sudo service lightdm start Alt + ctrl +F7,返回到图形化登录界面,输入密码登录; 如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。 #检查Device Node Verification 检查路径/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files) 如果没有的话,可以参考官方文档里的指导步骤,进行添加。 #设置环境变量,永久添加, profile sudo gedit /etc/profile #add in file: export PATH=/usr/local/cuda-10.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64 #同样在.bashrc也可以 reboot #检查上述的环境变量是否设置成功 env
-
安装完毕后的检查工作
#检查 NVIDIA Driver是否安装成功 cat /proc/driver/nvidia/version #检查 CUDA Toolkit是否安装成功 nvcc –V # 可以一次性查看 nvidia-smi #编译cuda提供的例子 cd ~/NVIDIA_CUDA-10.2_Samples # -k means keep going when error, some .h file may miss make -k cd ~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release ./deviceQuery # if no error, congrats!!!
- 其他:检查 Device Node Verification(好像没什么影响)
ls /dev/nvidia* #若显示类似 No such file or directory等信息,则进行如下操作 sudo vim /etc/rc.local #把下面的文本复制到 exit 0 之前,保存退出 #!/bin/sh /sbin/modprobe nvidia if [ "$?" -eq 0 ]; then # Count the number of NVIDIA controllers found. NVDEVS=`lspci | grep -i NVIDIA` N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l` NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l` N=`expr $N3D + $NVGA - 1` for i in `seq 0 $N`; do mknod -m 666 /dev/nvidia$i c 195 $i done mknod -m 666 /dev/nvidiactl c 195 255 else exit 1 fi /sbin/modprobe nvidia-uvm if [ "$?" -eq 0 ]; then # Find out the major device number used by the nvidia-uvm driver D=`grep nvidia-uvm /proc/devices | awk '{print $1}'` mknod -m 666 /dev/nvidia-uvm c $D 0 else exit 1 fi #重启后,再次输入以下命令,此时应该会出现 ls /dev/nvidia* /dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm,说明安装成功
2.2 cudnn
- 如果deb 使用dpkg -i 出现 .deb not a deb file error, 可以直接对deb文件在新得利软件管理中心安装,就是右键deb文件后–> open with software install
- 这里使用的是官网写的ubuntu的第二种deb安装方式,不需要拷贝cudnn.h 文件到cuda目录的,所以没办法使用 cat cudnn.h 的方式检查cudnn的版本,但是可以通过
START:
-
安装(both ok)
method1: Installing From the Tar File#Navigate to your <cudnnpath> directory containing the cuDNN Tar file. Unzip the cuDNN package. $ tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz #Copy the following files into the CUDA Toolkit directory, and change the file permissions. 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* # add following in bashrc vim ~/.bashrc export CUDNN_PATH="/usr/local/cuda-10.2/lib64/libcudnn.so"
method2:Installing From A Debian File
#Navigate to your <cudnnpath> directory containing cuDNN Debian file. Install the runtime library, for example: sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb #Install the developer library, for example: sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.2_amd64.deb #Install the code samples and the cuDNN Library User Guide, for example: sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.2_amd64.deb
-
测试
#拷贝文件到环境配置的Home路径下 cp -r /usr/src/cudnn_samples_v7/ ~ #切换路径 cd ~/cudnn_samples_v7/mnistCUDNN #编译测试文件 make clean && make #运行示例,如果成功则证明安装成功。 ./mnistCUDNN
2.3 pycuda
- 查看pycuda的对应版本去pycuda 官网;
#查看CUDA版本, 2020-01-08, latest 10.2 cat /usr/local/cuda/version.txt #查看cudnn版本,7.6: cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #安装 sudo pip install pycuda sudo pip3 install pycuda==2019.1.2
2.4 tensorflow-gpu
- pre install:
sudo pip3 install wheel
- 最好是建立一个python 的虚拟环境后安装,建立虚拟环境
Install:sudo pip3 install python3-venv mkdir ~/python_env; cd ~/python_env # create python env python3 -m venv tf_env cd tf_env source bin/activate which python;which pip;pip -V
pip search tensorflow-gpu pip install tensorflow-gpu==2.0.0b1
- TF 源码安装需要 bazel 和 TF source code
- bazel 安装参考: bazel 官网
- TF source 2.1.0-rc1 code, and tf github
3. Reference
- Ubuntu 14.04 上安装 CUDA 7.5/8.0 超详细教程
- Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
- cuda installation guide linux official
- cuda other source file for patch,可能你自己编译会少.h file, download here
- cudnn安装
- cudnn官网安装步骤
- pycuda 之 安装与简单使用
- Tensorflow2.0 GPU版本安装(CUDA10.0 + cuDNN7.5 + Tensorflow2.0 Alpha)
- TensorFlow GPU (Ubuntu 18.04.2 + CUDA 10.0 + NVIDIA GeForce GTX 1050)
- tensoflow 安装官网page
- tensorflow2.1.0-RC1 源码编译(CPU版本), 按照tensorflow 官网说法,2.1.0是同时支持gpu和cpu的,如只需要cpu,加-cpu