aihot  2017-11-11 12:54:41  机器学习 |   查看评论   
AI加速器自学组装指南(二)-Tensorflow软体架设
      在上一篇谈完硬体组装基本架构后,这篇我们要谈的是Tensorflow软体架设,要安装软体,使用者当然要有Linux的安装概念与实作,因为这可是要用到终端机指令才行,而非如Windows安装那般一直按滑鼠点按即可。
 
AI- Tensorflow with GPU 安装纪录
 
OS: Ubuntu 16.04.03 LTS (Server Version) 
Python: 3.5.2 
Tensorflow: 1.3.0 
Graphics Card: Nvidia Tesla P100 
Graphics Card Driver: NVIDIA-Linux-x86_64-384.81.run 
CUDA Version: cuda_8.0.61_375.26_linux & cuda_8.0.61.2_linux (20171020时测试只能用cuda 8),cuda_9.0.176_384.81_linux (因Tensorflow 1.3不支援cuda 9) 
cuDNN Version: cudnn-9.0-linux-x64-v7.tgz 
Test Package: libcudnn7- doc_7.0.3.11-1+cuda9.0_amd64.deb
 
      Google 有推出开放原始版的AI 套件来让一般人使用,本次是记录安装Tenforflow with GPU 的安装过程,Tensorflow 的安装方式有两大类和4 种方式,可以根据你的需求再做调整。
      本次安装是选择TensorFlow with GPU support + virtualenv,选择用virtualenv安装是因为维护方便,以下会分两大部分来介绍,因为文章和图片不少,所以会分成两篇来记录。
 
第一部分 前置准备( Part 1 Pre-installation)
 
      前置准备的部分包含了,显卡驱动程式的安装和CUDA、CUDNN驱动程式的安装,另外铁的教训,不要想偷懒,请爱用Source Code安装,用套件管理程式来安装,未来有许多坑等着你自己跳。
首先,更新各项套件到最新版本。
 
apt-get update && apt-get upgrade 
apt-get dist-upgrade
      接着安装开发所需要的工具。
 
apt-get install openjdk-8-jdk git python-dev python3-dev python-numpy python3-numpy build-esse
swig python-wheel libcurl3-dev
      要安装显卡驱动程式之前请先关闭nouveau,因为Ubuntu系统整合的显示卡驱动程式是nouveau,我们需要先将nouveau从linux核心移除掉才能安装NVIDIA官方驱动,方法就是将nouveau添加到黑名单blacklist. conf中。(PS不管你是Desktop Version还是Server Version都要做,因为不做的话预设是启动nouveau,你会发现你安装完显卡驱动程式一重开机之后,之前装好的驱动却没有反应的问题。)
 
      确认一下档案的属性和位置,不同版本的Linux 位置存放点都不同,这边以Ubuntu 16.04 版为主。
 
ll /etc/modprobe.d/blacklist.conf 
vim /etc/modprobe.d/blacklist.conf
 
      到这个文件的最底层,加上以下清单。
 
blacklist vga16fb 
blacklist nouveau 
blacklist rivafb 
blacklist rivatv 
blacklist nvidiafb
      增加完毕存档后离开vim 模式,terminal 模式底下更新核心模组。
 
update-initramfs -u
      执行完毕后没有任何问题就重新开机。
 
reboot
 
      重开机完成之后可以检查看看有没有成功关闭,下面第一张图是还没关闭前,第二张是关闭后。
 
lsmod | grep nouveau
      你会发现本来有的模组就没有再被读取到了,接着安装下载好的Nvidia Driver。

bash NVIDIA-Linux-x86_64-384.81.run
      基本上都是确定就可以,但最后一个步骤它会问你允不允许Nvida自动修改X Configure档案,网路上有人建议是选NO,有人说依照预设既可,也有人说可以,因为不确定到底影响在哪里,所以为了可以顺利安装下去,这边以选择YES为主。
 
      安装完毕之后可以执行Nvidia 提供的工具来看看有无安装成功。
 
nvidia-smi
      接着安装下载回来的CUDA Toolkit 8.0。
 
sh cuda_8.0.61_375.26_linux.run 
sh cuda_8.0.61.2_linux.run
      安装过程中基本上都是依照预设就可以,但是中间会问你要不要安装它内建的显卡驱动程式,这边一定要选NO,因为你前面已经装了最新版的显卡驱动了。详情可以参考NVIDIA的官方文件。
      安装完毕后会出现告警视窗,说你没有安装它的驱动程式,无视它就好,接着要设定相关的环境变数路径,如果不设定的话执行程式会出现找不到Library的问题,因为是用run来安装,所以安装完毕后cuda的路径通常会在/usr/local/cuda-8.0/bin底下,记得在要执行程式的使用者帐号底下的.bashrc加入以下两行变数(这边以64bit为主),详情可以参考NVIDIA官方文件的第6章(图截的是9.0测试的,但是过程是一样的)。
 
vim ~/.bashrc 
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} 
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${ LD_LIBRARY_PATH}}
      安装完毕之后可以测试看看cuda 有没有安装成功,首先到刚刚安装cuda 的时候会问你sample 档案要放在哪里,预设是你下载cuda 的位置,以本例来说就是到「 /home/ mis/NVIDIA_CUDA-8.0_Samples」,Compiler 之后会出现bin 的目录,到底下去,执行相关的测试程式。
 
cd /home/mis/NVIDIA_CUDA-8.0_Samples 
make 
cd /home/mis/NVIDIA_CUDA-8.0_Samples/bin 
./deviceQuery
      如果有安装成功的话就会显示「Result = PASS」的字样,接着要安装cuDNN,因为Tensorflow 目前的版本只支援到CUDA 8.0,而且后来真的在使用Tensorflow 的时候发现只装CUDA 8.0 根本不够用,所以就全装吧。
 
Download cuDNN v7.0.3 (Sept 28, 2017), for CUDA 9.0 
Download cuDNN v7.0.2 (Sept 7, 2017), for CUDA 8.0 
Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0
 
      实际跑Tensorflow 后会发现可能需要用到这3 样东西,所以就都先下载下来吧,然后再放到Server 上解压缩,要注意目录名称不要重复,详情可以参考NVIDIA 官方文件的第2 章。
 
tar –zxvf cudnn-9.0-linux-x64-v7.tgz 
cp cuda/include/cudnn.h /usr/local/cuda/include 
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 
chmod a+r / usr/local/cuda/include/cudnn.h 
chmod a+r /usr/local/cuda/lib64/libcudnn*
      如果之后执行tensorflow的时候有出现「ImportError: libcudart.so.6.0: cannot open shared object file: No such file or directory」,就补安装刚刚下载下来的旧版Library就好(例如: cuDNN v6.0)
 
      接着来测试看看cuDNN有没有装成功,这边是个满诡异的情况,因为官方文件使用tar来安装的话就没有地方可以单独下载测试文件,而测试文件却只有包在deb档案里面,变成你还要额外下载deb档案下来并且安装才行,但是要注意不要下载到runtime的deb档案,下载测试用的sample就好并且安装。
 
dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb
 
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自AI加速器自学组装指南(二)-Tensorflow软体架设

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]