Tensorflow testing for Ubuntu 18.04.1
Tensorflow testing for Ubuntu 18.04.1
首先,安装Ubuntu 18.04.1 Desktop系统,系统安装完后再安装 NVIDIA显卡驱动。Ubuntu 18.04的系统使用NVxxx.run安装时会提示GCC版本不匹配,所以这里换一种方式安装NVIDIA驱动,具体方法如下:
在安装之前首先就是要禁用Nouveau的驱动:
1. 按Ctrl+Alt+T打开终端,在终端输入sudo su,输入系统登入密码后按Enter键
2. 在命令行输入 #nano /etc/modprobe.d/blacklist.conf 回车
在最后一行添加“blacklist nouveau”,输入完之后按Ctrl+O,然后按Enter键,再按Ctrl+X退出编辑介面
3.#mv /lib/modules/3.19.0-25-generic (根据系统版本定,在命令行输入uname –r可以查看此版本) /kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/3.19.0-25-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org
4. #update-initramfs –u 等待执行完是否出错
5. #reboot
6.重启后再次登入系统,在终端输入如下命令
#lsmod | grep nouveau (没有输出表明禁用成功)
打开终端运行如下指令安装NVIDIA驱动:
# sudo add-apt-repository ppa:graphics-drivers/ppa 回车
# sudo apt-get update
# sudo ubuntu-drivers devices
# sudo ubuntu-drivers autoinstall
执行完后,重启系统再次进入 Ubuntu Desktop, 运行nvidia-smi查看是否正常识别到所有显卡。
备注:如需要卸载驱动:
sudo apt remove --purge nvidia-*
sudo nvidia-uninstall
CUDA10.0安装
STEP1:CUDA官网选择适合自己系统的版本下载。
https://developer.nvidia.com/cuda-toolkit-archive
我的系统是Ubuntu18.04、64位,选择CUDA10版本如下:
STEP2:安装CUDA(右键有自带解压选项)
在命令行中键入:
加入可执行权限:
# chmod +x cuda_10.0.130_410.48_linux.run
安装CUDA
# sudo sh cuda_10.0.130_410.48_linux.run
一直按Enter直至把声明读完, 如果驱动是独立安装了,一定要选择不安装驱动!选择如下:
会提示:
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 10.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent –driver
这是因为我们在安装CUDA的时候没有选择安装驱动,提示需要安装驱动,忽略就行。
STEP3:添加环境变量:#nano ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存并退出
source ~/.bashrc
STEP4:测试是否安装成功
上面的选项选择安装了CUDA例子,运行其中一个来测试是否安装成功:
# cd /usr/local/cuda/samples/1_Utilities/deviceQuery
# sudo make
# ./deviceQuery
结果如下就表明成功啦
STEP5:安装CUDNN
在官网下载安装包,需要注册登录才能下载。选择适合自己的版本
https://developer.nvidia.com/rdp/cudnn-archive
下载完成后解压并进入文件夹:
# 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
# sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
在终端查看CUDNN版本:
# cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
Anaconda安装 (Anaconda3-5.2.0-Linux-x86_64)
cd到存放目录并执行:bash Anaconda3-5.2.0-Linux-x86_64.sh
按照提示安装即可,安装路径可以选择默认。
安装完之后(最后一个问题选no,选了yes会继续提问,则选no则可)执行:
source ~/.bashrc
检查是否安装成功
终端执行:conda list
若提示命令无法找到,则修改.profile文件:
sudo gedit ~/.profile
添加以下几行:
if [ -d "$HOME/anaconda3/bin" ] ; then
PATH="$HOME/anaconda3/bin:$PATH"
fi
使生效:
source ~/.profile
git的安装
# sudo apt-get install git
Tensorflow安装
1.创建tensorflow环境:
# conda create -n tensorflow pip python=3.6 (#python版本根据要安装的tensorflow选择)(后面选择y后开始下载安装,久)
2.激活环境:
# source activate tensorflow
3.安装tensorflow:
# conda install tensorflow-gpu=1.13.1
4.后面如果需要使用tensorflow,则打开终端输入:source activate tensorflw,如果关闭虚拟环境,
输入source deactivate tensorflow (or conda tensorflow)即可。
5.验证tensorflow测试:
进入tensorflow虚拟环境后,输入python后回车,再逐条输入以下指令:
import tensorflow as tf
hello = tf.constant(‘Hello, TensorFlow!‘)
sess = tf.Session()
print(sess.run(hello))
输出结果应该是Hello, TensorFlow,并附带有GPU相关信息。
6.退出python script,请输入“quit()” 并回车。
Tensorflow tf_cnn_benchmark的安装及运行
1.在tensorflow环境下,下载benchmark的source code
# cd ~
# git clone https://github.com/tensorflow/benchmarks.git
2. # cd ~/benchmarks
3. # git reset --hard 6c2ccb45049673f09fdea9406372d6561db5c4fd
4.进入测试tff_cnn_benchmarks的子目录:
# cd scripts/tf_cnn_benchmarks
5. Tensorflow性能测试:
下面是测试1张卡的指令:
#python tf_cnn_benchmarks.py --num_gpus=1 --batch_size=64 --model=resnet50 --variable_update=independent --local_parameter_device=gpu
#python tf_cnn_benchmarks.py --num_gpus=1 --batch_size=64 --model=inception3 --variable_update=independent --local_parameter_dev ice=gpu
#python tf_cnn_benchmarks.py --num_gpus=1 --batch_size=64 --model=alexnet --variable_update=independent --local_parameter_device=gpu
#python tf_cnn_benchmarks.py --num_gpus=1 --batch_size=64 --model=vgg16 --variable_update=independent --local_parameter_device=gpu
如果要测试多张卡时,只要改动--num_gpus=1这项的数值就行。
循环测试指令:
python tf_cnn_benchmarks.py --num_gpus=1 --batch_size=64 --model=resnet50 --variable_update=independent --local_parameter_device=gpu --nodistortions --gradient_repacking=8 --num_epochs=90 --weight_decay=1e-4
watch -n 0.2 nvidia-smi