CUDA and Tensorflow Installation on Ubuntu 16.04
Contents
昨天折腾了一个下午开发环境的配置,记录一下其中遇到的坑。
硬件配置
我的硬件配置(XPS 15 9550):
- CPU: i5 6300HQ
- GPU: GTX960M 2G
- 内存: 16G DDR4 2133
- 硬盘: 512G SM951 NVMe
基本上就只处于玩票的状态, 实验室快给我配1080啊~~~
上一个 NVIDIA 钦定的 DevBox 配置:
Name | Description |
---|---|
GPUs | 8x Tesla P100 |
TFLOPS (GPU FP16 /CPU FP32) | 170⁄3 |
GPU Memory | 16 GB per GPU |
CPU | Dual 20-core Intel® Xeon®E5-2698 v4 2.2 GHz |
NVIDIA CUDA® Cores | 28672 |
System Memory | 512 GB 2133 MHz DDR4 |
Storage | 4x 1.92 TB SSD RAID 0 |
Network | Dual 10 GbE, 4 IB EDR |
Software | Ubuntu Server Linux OSDGX-1 Recommended GPUDriver |
System Weight | 134 lbs |
System Dimensions | 866 D x 444 W x 131 H (mm) |
Packing Dimensions | 1180 D x 730 W x 284 H (mm) |
Maximum Power Requirements | 3200W |
Operating Temperature Range | 10 - 30°C |
这简直是吾辈梦想神机啊… 然而要 $129000 !
系统环境
推荐是用 Ubuntu 最新的 LTS 版本 16.04.1, 对 Skylake 系列的 CPU 和主板的支持都很不错. 关于在 XPS 15 9550 上的详细配置过程, 我计划稍后专门写一篇.
本来想在 macOS 上跑的, 奈何黑苹果不支持独显.
安装 CUDA
CUDA 与 cuDNN 的安装在 NVIDIA 与 Tensorflow的官网上都有详细说明, 此处仅就一些关键环节作出说明.
禁用开源的 Nouveau 驱动
- 首先看看有没有在使用这个开源驱动:
1
$ lsmod | grep nouveau
- 创建
/etc/modprobe.d/blacklist-nouveau.conf
文件, 并写入以下内容
1 2
blacklist nouveau options nouveau modeset=0
- 重启kernel initramfs
1
$ sudo update-initramfs -u
从ppa源下载最新版的驱动(>364), 或者使用 CUDA-Toolkit 自带的驱动:
|
|
下载 CUDA 的 runfile (local) 版本, 不要使用apt-get 的方式, 保证获取到的是最新的版本 (目前是8.0).
安装过程中, 需要
Ctrl+Alt+F1
切换到 tty 界面, 然后关闭 X server:
|
|
之后再执行安装过程
安装过程中, 如果是像我一样的 Intel 核显 + NVIDIA 独显的, 绝对不要装 OpenGL, 否则重启后会陷入 login loop.
安装完成之后, 设置环境变量:
|
|
安装 cuDNN
从官网下载之后, 执行以下命令 (目前最新版本5.1):
|
|
安装Tensorflow
这是最纠结的一步, 之前按照别人教程说最好从源码编译支持 GPU. 但是由于国内的网络环境, 源码编译需要下一堆的依赖包, 速度超级慢. 因此还是使用官网推荐的 pip 安装方式:
|
|
- 可以先把
tensorflow-0.11.0rc1-cp27-none-linux_x86_64.whl
下下来, 本地执行安装命令- 可以使用国内的 pip 源, 加快安装依赖的速度
测试 Tensorflow
用下面的小例子来测试下 Tensorflow 安装得成不成功:
|
|
在 import
的同时, 还会显示 CUDA 方面与 GPU 方面的信息.
至此大功告成!
Docker for tensorflow
其实在这期间还试过直接用装了 Tensorflow 的 Docker 镜像, 也有支持 GPU 的版本. 各位如有兴趣可以试试: