神经网络务实:Linux下用GPU玩转TensorFlow

  • 前言:
  • 零、准备软硬件环境
    • 1、主机:IBMs20工作站
    • 2、显卡:GTX750TI显卡
    • 3、操作系统:Ubuntu16 Linux
    • 4、安装Opengl
  • 一、安装N卡驱动
    • 1、除旧
    • 2、迎新
    • 3、正式安装
    • 4、设置
  • 二、安装cuda8
  • 三、安装cuDNN
  • 四、安装anaconda和tensorflow
    • 1.下载安装anaconda
    • 2.查询tf新版本并安装
    • 3. 初步测试
    • 4. 正式测试
  • 五、后记

前言:

人工智能时代到来,不玩神经网络就Out了。其常用工具Tensorflow安装过程一堆坑,等到可以运行了,才发现没有GPU参与,速度慢得无法忍受。咬牙买一块算力>5的显卡,开始吧,骚年!(这是从几年前的sina博客搬运过来的,版本偏旧 ,但也适用于新版本)

零、准备软硬件环境

1、主机:IBMs20工作站

硬件最好使用工作站或者服务器,强调一下电源功率>=600W,普通PC机或商用或家用机的电源功率和稳定性不够,等着死机吧!性价比最高的是网上买个二手的IBM工作站,不要买Dell的,保你用不了多久,HP也行。

2、显卡:GTX750TI显卡

土豪买就最新的GTX1070等,吊丝还是买中档的性价比高。要注意的是显存>=4G, 否则跑神经网络数据量稍大就很容易死显卡。

3、操作系统:Ubuntu16 Linux

网上有不少用win10的,与linux的区别恰如Android 和 Ios的区别。嘿嘿,不会linux还好意思在圈内混!
安装过程一句话:下载镜像写入U盘启动主机。更详细的找度十娘。
更新源为清华的,东北大学的会有opengl依赖问题。

4、安装Opengl

先安装ubuntu自带的opengl是为了避免后面安装nvida驱动时带的有问题

sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev

编译opengl会提示 “找不到 -lGL”错误,做如下链接即可

locate libGL.so  ##找到合适的位置
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1.0.0 /usr/lib/libGL.so

网上找个gl的入门代码保存到test.cpp:

#include "GL/glut.h"void init();void display();
int main(int argc, char* argv[])
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);glutInitWindowPosition(0, 0);glutInitWindowSize(300, 300);glutCreateWindow("土豪专用 3D 夜壶");init();glutDisplayFunc(display);glutMainLoop();return 0;
}
void init()
{glClearColor(0.0, 0.0, 0.0, 0.0);glMatrixMode(GL_PROJECTION);glOrtho(-5, 5, -5, 5, 5, 15);glMatrixMode(GL_MODELVIEW);gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
}
void display()
{glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 0, 0);glutWireTeapot(3);glFlush();
}
g++  test.cpp   -l GL -l GLU -l glut

生成一个a.out 即可验证。

./a.out 运行如下结果:

一、安装N卡驱动

用:“系统设置->软件更新->附加驱动->选择nvidia最新驱动(361)->应用更改”失败!
网上的其他方法不能完全禁用nouveau,安装失败!,用以下方法成功。

1、除旧

打开终端,先删除旧的驱动:

  sudo apt-get purge nvidia*

禁用自带的 nouveau nvidia驱动
创建一个文件blacklist-nouveau.conf, 通过命令

   sudo vim /etc/modprobe.d/blacklist-nouveau.conf

并添加如下内容:

blacklist nouveau
options nouveau modeset=0

再更新一下

 sudo update-initramfs -u

修改后需要重启系统。确认下Nouveau是已经被你干掉,使用命令:

   lsmod | grep nouveau

后没有显示表示已经干掉。

2、迎新

重启系统至init 3(文本模式),也可先进入图形桌面再运行init 3进入文本模式,还可以直接Ctrl+Alt+F2进入第二个控制台再安装下载的驱动就无问题,首先我们需要结束x-window的服务,否则驱动将无法正常安装
关闭X-Window,很简单:

  sudo service lightdm stop

然后切换到tty1控制台:Ctrl+Alt+F1即可

3、正式安装

接下来就是最关键的一步了,显卡不同需要不同版本,去查:

http://www.nvidia.cn/Download/index.aspx?lang=cn

比如 FX1800需要下 NVIDIA-Linux-x86_64-340.104.run

  sudo ./NVIDIA-Linux-x86_64-375.run

开始安装,安装过程比较快,根据提示选择即可 最后安装完毕后,重新启动X-Window:

   sudo service lightdm start

然后Ctrl+Alt+F7进入图形界面;
如果安装后驱动程序工作不正常,使用下面的命令进行卸载,然后换个版本试:

  sudo sh ~/NVIDIA-Linux-x86_64-367.44.run --uninstall

4、设置

  nvidia-sminvidia-settings

没有出错,看看即可,没有什么好设置的。

二、安装cuda8

  1. 下载 https://developer.nvidia.com/cuda-downloads下载对应系统的版本及其补丁
    我用deb包失败,成功需要用
   sudo sh ./cuda_8.0.61.2_linux.run
  1. 安装
    开始有很长的licence阅读,用Enter翻页太久,用Ctrl+c可以快速跳过
    除了是否安装自带的驱动,选择no,其他的都是默认或者YES
    Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
    (y)es/(n)o/(q)uit: n
    3.添加环境变量
vi ~/.bashrc

把下面两行加到最后

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

保存,为了生效,需要重新登录本用户。
4.测试

cd ~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery
可以看到如下类似GPU 的型号内存速度等信息。

FFT例子, 我的GTX750Ti显卡处理2048*2048的图像只需要3.6ms。

三、安装cuDNN

下载 https://developer.nvidia.com/cudnn 需要注册

tar xvzf cudnn-8.0-linux-x64-v5.1-ga.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*

四、安装anaconda和tensorflow

单独安装pyhon和tensorflow很多版本问题、依赖问题,还是全家桶好。集成环境anaconda,包括了numpy、scipy、six、matplotlib等几十个扩展包,因此只需要装这一个东西。

1.下载安装anaconda

https://www.continuum.io/downloads 我选择2.7的linux包

 bash Anaconda2-4.1.1-Linux-x86_64.sh

有个地方问你是否将anaconda安装路径加入到环境变量(.bashrc)中,这个一定要输入yes
安装成功后,会有当前用户根目录下生成一个anaconda2的文件夹,里面就是安装好的内容,重新登录生效。

2.查询tf新版本并安装

anaconda search -t conda tensorflow

显示的很多,可我只能选一个,随机选1.2.0的gpu版本吧
anaconda show marta-sd/tensorflow-gpu
跟据提示,如下命令安装

conda install --channel https://conda.anaconda.org/marta-sd tensorflow-gpu

可能会更新cuda和cuDNN等许多版本,网速需要数Mb/s,否则时间很长。

3. 初步测试

终于可以测试了,按捺不住激动的心情,小试牛刀
在终端输入python,进入python编译环境,显示2.7版本, 输入

import tensorflow as tf
tf.__version__

能正常显示tf版本号即可

4. 正式测试

万事具备,神经网络,来一发!
运行tensorflow/examples/tutorials/mnist/下面的某个例子,python xxx.py, 2万次的cnn训练几秒就完成了,比cpu版本的约快10倍。

五、后记

用一段时间后, 可能会出现循环登录问题,而且图形界面分辨率只有640*480。
网上查,是驱动损坏。于是重装驱动:

 sudo apt-get  remove --purge nvidia*sudo ./NVIDIA-Linux-x86_64-375.66.run -no-x-check -no-nouveau-check -no-opengl-files

重启后,循环登录问题消失,但分辨率还是640*480!查看“系统设置->软件更新->附加驱动”发现其
默认为xorg驱动,/etc/X11/xorg.conf里边很简单,没有具体显卡型号。使用nvidia-setings 里边也是空的。
选择nvidia最新驱动(375)->应用更改,过了很久没有反应,重启后发现新驱动已经安装上了,一切恢复正常。

用一段时间后, 还可能会出现cuda程序报:

...ode=35(cudaErrorInsufficientDriver) "cudaGetDeviceCount(&device_count)

也是驱动不稳定,解决方法同上“系统设置->软件更新->附加驱动”换一个驱动又正常了。

读my博文几分钟,博主摸索填坑几个周!,要珍惜哦!

神经网络务实:Linux下用GPU玩转TensorFlow相关推荐

  1. linux下查看GPU版本和详情信息 CUDA版本信息 anaconda版本信息

    查看GPU型号 lspci | grep -i nvidia 查看NVIDIA驱动版本 sudo dpkg --list | grep nvidia-* # lspci | grep -i nvidi ...

  2. Linux下查看GPU显卡信息

    Linux下查看GPU显卡信息的命令: ubuntu-drivers devices nvidia-smi lspci | grep -i nvidia lspci lspci | grep -i v ...

  3. tensorflow运行环境linux,在ubuntu或者min运行环境下安装gpu版本的tensorflow

    转载请注明出处:blog.csdn.net/sproll 本文描述在ubuntu系列操作系统上安装gpu版本的tensorflow的过程. 0,准备工作 BIOS中关闭板载显卡,显示器接在nvidia ...

  4. linux版cs中文版下载,在linux下也能玩CS游戏了 呵呵~~

    ----很菜的文章,希望高手不要耻笑,有好的方法告诉我 删掉windows后,唯一怀念的就是cs,一直在寻找linux下如何玩cs,几经摸索,终于装好了,可以正常的玩了: 欣喜之余我便有个想法,把我自 ...

  5. Linux下wine能运行游戏吗,Linux下用Wine玩游戏卡吗

    ai0909 于 2011-10-14 17:09:06发表: 0:w(5( live_forever 于 2011-07-19 17:25:15发表: linux不是用来玩游戏的. hunkgao ...

  6. 怎么在linux下查看gpu版本号,linux.查看gpu版本

    SCC(超级计算集群)简介 SCC概述 超级计算集群(Super Computing Cluster,SCC)使用高速RDMA网络互联的CPU以及GPU等异构加速设备,面向高性能计算.人工智能/机器学 ...

  7. linux下的GPU测试软件,Ubuntu等Linux系统显卡性能测试软件 Unigine 3D

    Ubuntu等Linux系统显卡性能测试软件 Unigine 3D Ubuntu Intel显卡驱动安装,请参考: ATI和NVIDIA显卡请在软件和更新中的附加驱动中安装. 这里推荐: 运行后,F9 ...

  8. Linux下安装GPU显卡驱动

    1.下载 去官网选择相匹配的驱动下载 2.禁用nouveau 网上大部分教程都说要禁用nouveau,这里我看了一下我的,应该是没有启用,也就没有执行这一步. 3.安装 执行命令:sh NVIDIA- ...

  9. linux下调节GPU的功率限制

    您可以通过在应用程序运行时使用 nvidia-smi 监控 GPU 来确认是否正在发生这种情况. nvidia-smi dmon 如果您希望调整功率上限,请按照以下步骤操作: 按如下方式确定当前.默认 ...

最新文章

  1. Datawhale组队学习周报(第020周)
  2. 那些在一个公司死磕了5-10年的程序员,最后都怎么样了?
  3. tensorflow实践
  4. “2021知乎高赞好物100”榜单揭晓 知乎为美好生活奉上参考答案
  5. JSP、EL和JSTL-学习笔记02【MVC】
  6. RabbitMq如何确保消息不丢失
  7. 编程判断元素归类_编程练习-判断是否为易混淆数
  8. mysql l查看历史等锁信息_mysql查看锁等信息SQL
  9. vba窗体 点击增加减少_EXCEL之VBA-窗体实例多页控件的基础应用
  10. Android推送方案分析(MQTT/XMPP/GCM)
  11. BIOS实战之Super IO-Smart Fan
  12. Python Tox 使用笔记
  13. adb inputswipe shell_[Android]通过adb shell input上报命令模拟屏幕点击事件【转】
  14. PS如何制作圆角矩形图片
  15. php信鸽针对别名,【经验】阿翁:信鸽回血留种公式(图)
  16. ios实时卡顿检测和优化方案
  17. 树莓派 11 bullseye镜像官方源和国内源
  18. matebook14支持触摸屏吗_2020款的matebook14增加了多点触控屏是最大亮点
  19. 思科模拟器入门基础-静态路由
  20. miui修改Android,无法修改小米MIUI设备中的系统设置

热门文章

  1. 标题标签<h1></h1>和段落标签<p>
  2. linux ubantu snmp服务,ubuntu 20.04 snmp安装配置
  3. Android FFmpeg视频转码并保存到本地
  4. [转帖] “王者对战”之 MySQL 8 vs PostgreSQL 10
  5. WCF,WPF,WWF 的新读音?WinCom, WinPrez, WinFlow
  6. 护眼灯对孩子眼睛好吗?盘点最好的儿童护眼灯品牌
  7. 【Qcom Camera】微距eeprom调试
  8. struts2 ajax json 中文乱码的问题
  9. kindle出现电池感叹号,充电黄灯亮,怎么解决?按AWZ客服的回复弄好了。
  10. java 登陆短信验证码_Java实现短信验证码