[DAY 03]环境建置 : 硬体(1)

硬体选择 -- Part 1

简介

在谈到有一个可以学习或者执行 Deep Learning 的环境之前首先就要有一台可以满足计算资源等需求的电脑。所以我们首先要来谈谈如何有台电脑。硬体的解决方案大致分为以下几类:
- 自行组装
- 去买现成组好的 PC 或者 笔记型电脑
- 使用系上的计算资源
- 使用云端计算等外部计算资源
以上这四类是比较常见的硬体资源选择,第一点跟第二点主要是我们这章想谈的点,会提及在硬体上我们需要去注意甚麽或者挑选甚麽,无论是自行组装或者去买现成的只要知道需要注意的重点即可。第三点需要看系上是否有提供相关的计算资源,举例来说,交大资工在开设深度学习与实务这门课的时候,会提供修课生每人一台电脑,内含一张 6GB vRam 的 GTX 1060 等等来作为跑 Model 等的计算资源,虽说不是非常强大的显卡,但在完成 Lab 以及 Final Project 上基本已经非常足够。第四点的话暂不讨论,如果有空余时间我们会在最後的单元去提到国网中心这个单位所提供的 TWCC 以及各大云端计算提供商的使用心得以及大致比较。

硬体挑选

硬体挑选分为几个部分去做挑选,我们以 自行采买零件自行组装 为出发点来提几个点,去买现成的 可以依照这几个点去选择已经组好的规格。

GPU

说到 Deep learning,最重要的就是 GPU 了!别的不说,若是你的 GPU 很弱或者根本没有,那基本上 Deep Learning 的学习道路上你不是在等待的路上,就是等到睡着的路上。在众多 Deep Learning Library 中,基本上每一个都有针对 GPU 有去做加速,像是 Tensorflow 或者 Pytorch。而在这些使用 GPU 加速的背後,基本上就是使用到了 Nivida 推出的 CUDA 架构。那关於 CUDA 介绍,这边暂且不细提,附上一个写得非常好的连结有兴趣的做参考。那既然要选择 Nvidia 推出的显卡作为我们 GPU 的选择,是不是每一张都可以呢?收起你想拿出祖传 GT 8800 的冲动,这边是有个底线必须超过的,那就是这张 GPU 的 Compute Capability必须超过一定的门槛,通常会是各个 Library 官网会去写说要超过多少的,像是 Tensorflow 就需要超过 3.5。那这个 Compute Capability 又是个啥呢? 基本上 GPU的Compute Capability 会由其微架构与显卡核心去决定,但并不是数字小的在跑 DL 就会输数字大的,但本章并不会详述这个部分,未来有机会的话来讲讲这个架构的 Issue。大家只要去上 Nivida 的 Computing Capability 表就可以查到手上的 GPU 是多少罗~ 像是Geforce RTX 2080 是 7.5,属於跑 code 玩游戏皆适宜的卡 >< 然而,在选 GPU 的议题上还需要特别去注意 vRam 的大小,也就是显卡记忆体的大小,一般来说越大越好,这个主要会跟训练时可以开的 batch size 等等有关。像是某个 model 你在 11GB vRAM 的 1080 ti 上可能只能开个 batch size = 16 ,但在 32 GB 的 V100 上就可能可以开到 32 之类的来增快训练速度,当然 Batch size 以後会去提到。总体来说各世代的 Ti 卡就是一个很不错的选择,像是 1080 Ti 以及 2080 Ti,价格上属於负担得起的那种,记忆体空间也是属於有 11 GB 这样不错的大小。如果钱钱不是特别够,那 1060 以及 2060 也免强能用。但如果是土豪的话,可以直接考虑 tesla 线的 v100 ><


OK 今天先打到这,明天会把剩下的零件以及组装等议题讲完


<<:  【不是铁人赛】Day 02|虚拟货币价格预测(二)LSTM与GRU。

>>:  Raspberry pi 与周边的沟通

Day28 - HTML 与 CSS (10) - 网页设计

网页设计 环境:将多页面的档案建立,连结确认彼此间的关系 layout (布局):评估多个页面皆会出...

Day29- 这是替身攻击!! 替换你的pod Telepresence

在前面我们介绍到了各种建立以及产生pod的方式,但是当你已经建构好一个系统後,写好的程序要更新以及测...

30天程序语言研究

目前我最想先学习的程序语言是python,因为我现在大三在许多课程都会优先使用这个语言,如深度学习中...

关於 Weekly Updates

在创业的过程中常常会迷失自我 YC SUS 里面有个 Weekly Updates 的机制 要求创业...

Day 21 - 物件导向与向量2 - vector

P5里面提供了vector 这个设定 他跟class设定有点类似的设定也一并提供了function ...