装机日志,配置一台基础的机器学习主机
起因
从日本耍完回来也有好多天了,是时候该收心干活了。
由于本人电脑原先都是A卡,非常蛋疼,故准备配一台N卡主机,并且最好扩展性强一些,以后好搞个SLI,提高一下性能 在二手东上面比对了半天,决定了一个配置均衡并且有扩展空间的配置,如下:
CPU: intel i7 6700k
motherboard: ASUS z170 a
RAM: 16G × 2
ssd: 500G
HDD: 3T
GPU: MSI DUKE GTX1080
理论上讲,gtx1080性价比非常高(本来想选技嘉的GAMING系列,不过没有现货,所以选择了疯狂堆料的微星,DUKE是黑龙系列,性价比也不错)。 之后如果有钱,就再买一个组SLI。微星的GPU散热非常霸道,所以只给CPU加了水冷,可以选择tt或者酷冷至尊。 至于机箱,我选了贼船的一个中塔(回头想想,机箱有些小,不过双显卡应该问题不大)。 由于这次显卡功率优化幅度很大,gtx1080只需180w(公版)。所以机箱应该500w就足够了,为了今后的扩展,大一些应该 更好,配件都选择硬通货,最后确定为贼船的金牌650w电源。
机箱安装
这个不是重点,累了一天反正终于是拼好了,成功点亮的瞬间还是非常激动的。 之后也是顺利的安装win10,测试了下性能,非常满意。
环境配置
最重要的事情就要开始了,安装Ubuntu。这里先说一个坑,Ubuntu 14 版本对于最新的6XXX系列CPU支持不是特别好, 我原来认为老一点的版本会不会比较稳定,事实是我想多了,经常发生CPU进程死锁(当然也有可能我是个例)。 所以我非常不情愿的删除了这个系统。如果是4XXX或者更老的CPU,那么就可以无视这一点了。
最终确定搭建的环境为:
Ubuntu 16.04 LST
CUDA 8.0 + caffe
安装步骤如下:
1. 刻录ISO。
这里可以是U盘(推荐)或者是光盘,然后利用刻录软件进行刻录即可,注意的是 U盘刻录的过程中首先会被格式化,所以请先进行备份。我比较喜欢用UltraISO(中文名叫碟软通), 因为可以一直试用,是一款相当好用的软件。使用方法非常简单,首先文件->打卡->选择刻录的光驱, 然后启动->写入硬盘镜像,选择自己插入的那个U盘然后点写入就可以了。
2. 为新系统在硬盘上留下空间
这一点也非常重要,因为我选择将windows和Ubuntu完全隔离,所以我需要在硬盘上面弄一块完全独立的空间。 我比较喜欢用diskgenius这个软件。 对于我而言,安装windows的时候我就已经在HDD上面分出了一块未定义的空间。 注意的是,如果要想将一个已经在安装win10时分配好了的空间进行重新分割,你需要删除这个分配好了的空间, 使其变成未定义的空间再重新划分。 当然,在以后的扩展中,我们也可以加装一块新的SSD,然后直接在新盘上面安装系统。
3. 安装Ubuntu
首先重启进入EFI(老的主板为BOIS,我们不关心,不同的主板进入方式不同,ASUS的你只需要狂按F2,如果安装完windows 应该很熟练)。然后在BOOT选项中选择你刻录好的U盘即可,然后如果你进入了grub并且出现了几个选项 (包括install Ubuntu之类的),那么就说明你选对了。然而这并没有什么卵用,当你开心的选择install Ubuntu之后, 你会发现,显示器变黑,啥也没有发生(如果出现安装界面就无视我这句话)。 卡在这里的主要原因是因为安装程序并不能从显卡中得到图像输出,有两种解决方式:
- (1). 禁用独立显卡。你可以拔掉显卡,或者是在主板选项上面禁用。
- (2). (推荐) 在进入grub之后,按e进入编辑模式,找到有
quiet splash ---
那一行,将其修改为(nvidia 显卡):
quiet splash nomodeset ---
然后按F10,就可以进入安装界面了。
之后选择语言,键盘啥的都不是重点,重点是空间分配,可以参考网上的方式。重点如下:
- (1). 最好单独建立/boot分区,并且最好在连续块的开始,系统加载的分区也选择这个分区。
- (2). swap 分区为内存大小的1到2倍。
- (3). /boot 为主分区,其他为逻辑分区即可,除了swap,其他都为ext4文件格式。
本人比较懒,所以只设立了/boot, swap, /home 和 / 这几个分区,当然其实可以设置的更加细致。 然后有一点,最好断网安装,并且不需要更新任何驱动和软件,这样系统安装速度能快一些。 但是仍然不要高兴太早,因为英伟达的驱动没有安装,所以安装完系统重新启动之后,我们仍然会发现很多问题。 这是直接进入系统,会发现闪屏,任务栏不见了等等现象。这个时候,我们需要安装显卡驱动来解决:
- (1). 在系统登陆界面,按ctrl + alt + F1,进入命令行界面,用账户名和密码登陆。
- (2). 添加nvidia源,更新Ubuntu软件源。这个期间,一定要有网络连接,最方便的方法就是网线直连。
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
- (3). 安装nvidia驱动
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
安装完毕之后,重启系统就可以正常进入ubuntu系统了。
4. 安装CUDA
由于CUDA 8.0之后的版本才支持GTX1080,所以我们直接选择最新的版本。 在nvidia的官网上面需要注册一下。选择runfile文件进行下载安装比较方便。安装过程中, 它会提示你是否安装361这个低版本的驱动,我们显然要选择no!!!其他的就按照默认设置就可以了。 安装完毕之后执行如下命令:
nvidia-smi
你可以看到如下显示:
Mon Aug 1 17:24:36 2016
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.35 Driver Version: 367.35 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1080 Off | 0000:01:00.0 On | N/A |
| 0% 43C P8 13W / 240W | 539MiB / 8110MiB | 1% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 3542 G /usr/lib/xorg/Xorg 246MiB |
| 0 4827 G compiz 153MiB |
| 0 5969 G ...ow<PasswordSeparatedSigninFlow --disable- 91MiB |
| 0 9426 G /proc/self/exe 45MiB |
+-----------------------------------------------------------------------------+
那么就说明安装成功了! 然后我们去CUDA的example目录上面编译一个最常用的测试实例看一下:
cd 1_Utilities/deviceQuery
make
./deviceQuery
正常情况下,会有类似于如下输出:
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 1080"
CUDA Driver Version / Runtime Version 8.0 / 8.0
CUDA Capability Major/Minor version number: 6.1
Total amount of global memory: 8110 MBytes (8504279040 bytes)
(20) Multiprocessors, (128) CUDA Cores/MP: 2560 CUDA Cores
GPU Max Clock rate: 1848 MHz (1.85 GHz)
Memory Clock rate: 5055 Mhz
Memory Bus Width: 256-bit
L2 Cache Size: 2097152 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 2 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1080
Result = PASS
caffe的安装我们之后再说,因为是Ubuntu 16.04这个系统,所以又有很多需要特别注意的地方!!!
update: caffe 安装点击这里。