GPU 选择 深度学习 图像识别
把AI分解成训练和推理两个过程。
1.显卡
推理用到的硬件分两种,一种是专业AI硬件公司出的AI芯片,一种就是我们平时熟知的GPU显卡了,前者不太适合入门学习,而后者无论从入门难度还是性价比上讲,对于新手来说都是优先的选择。
GPU显卡主流厂商大概两家,一个Nvidia,一个AMD,前者出的卡我们一般称之为N卡,后者称之为A卡。目前不管是普通消费市场(比如玩游戏)还是做机器推理的,N卡都占主流,生态也更好一些,因此,如果没有特殊原因,建议新手优先选择N卡入手。
RTX和GTX区别:其中“RT”代表光线追踪(ray tracing的缩写)。
NVIDIA显卡功耗图
显卡功耗挺大的
1.1.Nvidia显卡分类
Nvidia显卡主要分3大类:Geforce系列,Quadro系列,Tesla系列。
1.1.1 Geforce系列
这个系列显卡官方定位是消费级,就是用来打游戏的。但是它在深度学习上的表现也非常不错,很多人用来做推理、训练,单张卡的性能跟深度学习专业卡Tesla系列比起来其实差不太多,但是性价比却高很多。比如已经停产的GTX 1080显卡的参数基本和深度学习入门级显卡Tesla P4一样,用来做训练和推理的效果比Tesla P4还要好,可是GTX 1080一张卡才卖5000~6000左右,而Tesla P4要卖到1.4w。
1.1.2 Quadro系列
Quadro系列显卡一般用于特定行业,比如设计、建筑等,图像处理专业显卡,比如CAD、Maya等软件,一般人很少用到,价格相对来讲也稍微贵一些。
1.1.3 Tesla系列
Tesla系列显卡定位并行计算,一般用于数据中心,具体点,比如用于深度学习,做训练、推理等。阿里云、Amazon云有非常多的GPU服务器,基本都采用Tesla系列显卡。
这个系列显卡有个特别明显的特征,那就是贵。Tesla系列入门级显卡 Tesla P4,前面提到过,用来做深度学习的效果比GTX 1080还差,但是价格是后者的3倍多。像其他更高级别的Tesla V100、Tesla P100 价格高达8w、4w,这种价位的显卡虽然性能强劲,但是一般人是买不起的,只有企业数据中心才会部署这种显卡。
那么前面提到过,既然对于搞深度学习而言,Tesla系列显卡相比GeForce而言性价比并不高,那为什么英伟达还会推出Tesla这个系列呢? 主要原因有以下4个:
(1)我们前面讨论的性能对比全部都是基于单块显卡而言的,而Tesla系列显卡针对GPU集群做了优化,像那种4卡、8卡、甚至16卡服务器,Tesla多块显卡合起来的性能不会受很大影响,但是Geforce这种游戏卡性能损失严重。这也是Tesla主推并行计算的优势之一。
(2)数据中心的GPU显卡都是大批量部署的,有多台服务器,每台服务器有多块GPU显卡,而Tesla系列显卡功耗优化非常明显,Tesla P4单块卡的最大功耗只有75W,而与它参数配置差不多的GTX 1080的功耗高达175W。可以想象,Tesla系列显卡更适合大规模部署,长远来看,成本小得多。功耗低其中的一个原因是,Tesla系列显卡基本都是被动散热,不提供风扇,这个更适合数据中心机房工作环境:服务器设备统一散热,机房恒温条件。这本身跟它的定位一致。
(3)再一个,类似Geforce这种消费级的显卡更新换代太快,GTX 1080显卡生命周期不到2年就停产了,类似手机这种电子设备,你产品都还没做出来,拟采购的GPU可能就买不到货了。
(4)消费级显卡毕竟用于个人用途,性能方面不可能无限提升,用于并行计算的Tesla显卡高配版在性能(参数配置)上可能比消费级显卡高配版要高得多。
1.2 GPU几个比较重要的参数
GPU有非常多的参数,在做深度学习挑选显卡的时候,主要看以下几个:
GPU架构:
不同款的GPU可能采用不同设计架构,比如Geforce 10系列的 GTX 1080/1080Ti采用的是Pascal架构,而Geforce 20系列的 RTX 2080/2080Ti采用的是Turing架构。不同架构的GPU,即使其他参数差不多,性能差别可能非常大。
CUDA核心数量:
这是一个非常重要的参数,一般你在搜索显卡参数时,这个参数一般写在前面。CUDA核心数量越大越好,前面提到的消费级显卡Geforce GTX 1080和Tesla入门级显卡 P4的CUDA核心数量一样,都是2560个。而Geforce RTX 2080Ti的CUDA核心数高达4352个。
显存位宽:
代表GPU芯片每个时钟周期内能从GPU显存中读取的数据大小,这个值越大代表GPU芯片和显存之间数据交换的速度越快,性能越好。Geforce GTX 1080的显存位宽为256bit,Geforce RTX 2080Ti显存位宽为352bit。
GPU工作频率:
这个很好理解,代表GPU每秒钟工作次数,单位为MHz,跟CPU的频率类似。该值越大代表性能越好。
显存带宽:
代表GPU芯片每秒与显存交换的数据大小,这个值等于 显存位宽*工作频率,单位为GB/秒,该值越大,代表GPU性能越好。Geforce GTX 1080的显存带宽为320GB/秒,而它的升级版Geforce RTX 2080的带宽为448GB/秒。
显存容量:
这个东西跟内存一样,不是越大越好,够用就行。Geforce GTX 1080的显存为8GB,而该系列的旗舰版Geforce GTX 1080Ti的显存为11GB。Tesla系列显卡由于特殊的应用场景,有些型号的卡显存高达16G/24G不等。
功耗:
GPU能耗,像Geforce这种消费级的显卡一般功耗非常高,Geforce GTX 1080的最大功耗为175W,Tesla P4的最大功耗为75W。像那种数据中心大规模级别的GPU部署,低功耗的显卡一年电费能省很多。
1.3 如何选择
如果是个人学习使用,推荐购买Geforce系列的显卡,然后根据个人预算,如果在1W左右,可以选择最新出来的Geforce RTX 2080Ti,如果费用不够,可以购买Geforce RTX 2080/2070,价格在5000/3000左右。千万不要买入门级的Tesla P4,价格在1.4W左右。RTX 2080Ti经过实际测试,YoloV3目标检测模型能跑20路1080P高清实时流。
2.NVIDIA嵌入式系统
Jetson嵌入式系统:用于边缘计算的嵌入式系统
Jeston产品:Jetson Nano、Jetson TX2 系列、Jetson Xavier NX、Jetson AGX Xavier 系列。
其上CPU是集成的。
2.1 Jetson Nano
Jetson Nano 模组是一款小巧的 AI 计算机,具备超高的性能和功耗,可以运行现代 AI 工作负载,并行运行多个神经网络,以及同时处理来自多个高分辨率传感器的数据。这使其成为在嵌入式产品中增添先进 AI 的理想的入门级选择。
2.2 Jetson TX2 系列
扩展的 Jetson TX2 系列嵌入式模组提供高达 2.5 倍的 Jetson Nano 性能,同时功耗低至 7.5 W。Jetson TX2 NX 与 Jetson Nano 引脚和外形规格相兼容,而 Jetson TX2、TX2 4GB 和 TX2i 均与最初的 Jetson TX2 外形规格相同。坚固的 Jetson TX2i 是构建包括工业机器人和医疗设备在内等设备的理想之选。
2.3 Jetson Xavier NX
外形小巧的Jetson Xavier NX 模组将高达 21 TOP 的加速 AI 计算带到边缘端。它能并行运行多个现代神经网络,处理来自多个高分辨率传感器的数据,满足完整 AI 系统的需求。Jetson Xavier NX 是一款支持量产的产品,支持所有热门 AI 框架。
2.4Jetson AGX Xavier 系列
Jetson AGX Xavier 是率先推出的专为自主机器打造的计算机。这款外形紧凑、节能高效的模组可为整个 AI 软件架构流程提供硬件加速以及高速 I/O 性能,因此客户可以将新的 AI 应用程序应用到边缘端。对于想要创建工业级和/或经过安全认证的产品的客户,Jetson AGX Xavier 工业级版本提供扩展的温度范围、防震和抗振规格,以及新的功能性安全能力。
NVIDIA Jetson AGX Xavier是来自 NVIDIA AGX Systems系列的嵌入式系统级模块 (SoM) ,包括带有张量核心的集成 Volta GPU、双深度学习加速器 (DLA)、八核 NVIDIA Carmel ARMv8.2 CPU、32GB 256 位 LPDDR4x,具有 137GB/s 的内存带宽和 650Gbps 的高速 I/O,包括 PCIe Gen 4 和 MIPI CSI-2 的 16 个摄像头通道。
3.Pascal架构、Volta架构和Turing架构
Pascal是英伟达公司于2016年推出的新一代GPU架构,用于接替上一代的Maxwell架构。Pascal架构的后继产品有图灵(Turing microarchitecture)(消费)和伏打(Volta)(专业)两个架构。
**伏打(Volta)**是英伟达所推出的GPU架构,最早在2013年3月的未来路线图中宣布,2017年发布,是Pascal的继任者之一。英伟达声称其深度学习性能比前一代的帕斯卡(Pascal)架构快5倍以上。
**图灵(Turing microarchitecture)**是英伟达2018年8月20日所发布的GPU架构,Volta是其前代产品。
**安倍(Ampere)**微架构是英伟达2020年5月发布的GPU架构,Turing和Volta是其前代产品,Hopper是其后代产品。
霍普(Hopper)微架构是英伟达将在2022年中推出我们的微架构。
4.嵌入式系统 低功耗设计
https://blog.csdn.net/wangshh03/article/details/73176283
低功耗设计(Low-Power Design)、动态电源管理(DPM)、线性稳压(Linear Regulator)、DC to DC、 LDO(Low Drop-Out)
应从以下几方面综合考虑:处理器的选择、接口驱动电路设计、动态电源管理、电源供给电路的选择。
4.1 处理器的选择
一个嵌入式系统的选型往往是从其CPU和操作系统(OS)开始的,一旦这两者选定,整个大的系统框架便选定了。
CPU的功率消耗分为两大部分:内核消耗功率PCORE和外部接口控制器消耗功率PI/O,总的功率等于两者之和,即P=PCORE+ PI/O。
PCORE,关键在于其供电电压和时钟频率的高低;对于PI/O来讲,除了留意各个专门I/O控制器的功耗外,还必须关注地址和数据总线宽 度。
4.2 接口驱动电路设计
- 选用静态电流较低的外围芯片
- 上拉电阻/下拉电阻的选取
- 对悬空脚的处理
- Buffer的必要性
4.3 动态电源管理
动态的电源管理就是在系统运行期间通过对系统的时钟或电压的动态控制来达到节省功率的目的,这种动态控制是与系统的运行状态密切相关的,这个工作往往通过软件来实现。
1、选取不同工作模式
2、关闭不需要的外设控制器
4.4 电源供给电路的选择
在数字电路设计中,对功耗要求严格的情况下,必须对电压变换结构仔细考虑。
通常来讲,有以下几种进行电压转换的方式:
1、线性稳压(Linear Regulator)
2、DC to DC
3、LDO(Low Drop-Out)
5.CPU和GPU的功耗与性能
以NVIDIA Jetson 系列嵌入式一体板为例,探索CPU和GPU的功耗问题。
5.1 GPU功耗
TDP功耗:标称的技术规格指标,表示热设计功耗,是给显卡厂商设计散热器的参考参数。
最大负载功耗:显卡满载工作时的真实耗电功耗,也是用户关心的参数。
https://www.maigoo.com/goomai/65861.html
显卡GPU集成的晶体管数量越庞大功耗(发热量)越大(因为架构的精密度越高);而同时显卡GPU的工艺制程越先进(65NM->55NM->40NM->32NM)也就是说明驱动GPU所需要的电流越小,发热量自然就小,功耗自然低;显卡PCB基板上电子元件越多越精密,则发热量(功耗)也会相应增加。
5.2 CPU功耗
https://zhuanlan.zhihu.com/p/35120669
指令功耗:每条指令所要调动的晶体管数目不同,而功耗是被调动晶体管功耗的总和。
耗能和频率的关系:实际上能耗和频率成线性相关。
其他因素:操作系统层面
5.3 GPU功耗为什么比CPU大得多
因为多个并行单元需求的电流大。仅针对超大规模顶级晶片。
例如4352个流处理器单元的TU102-K1-A1,在晶片成片质量极好的情况下,借助良好的散热,通过50安培电流都是轻轻松松的,此时粗略功耗就是12V与50A=600W。
举两个例子,常见的KIngPIn 2080 Ti绘图卡默认的visual bios功耗为520瓦,Galax 2080 Ti HOF OC LAB的visual bios 功耗为600瓦。
5.4 GPU的功耗为什么比FPGA高?哪些因素造成的功耗差异?
首先,在优化得当的并且只做inference的情况下,有DSP和专用浮点模块的FPGA的能耗效率(FLOP/W)几乎可以绝对性压倒GPU。
其原因就是两个字:粒度!
GPU依然是冯诺依曼构架,GPU在执行的时候,时间上对于计算和IO能最小的掌控粒度就是一个指令,空间上对数据能最小的掌握的粒度就是一个字节(8bits),这一点和CPU很像。
但是FPGA并不是冯诺依曼构架,而是一种更为开放的spatial构架,也可以说是一种类dataflow构架。对于FPGA来说,计算直接由routing掌握,并不需要有指令的参与。也就是说在时间上有更细的掌握粒度。
比方说gpu运算两个长度为2的vector相乘,gpu需要运行一个可以计算长度为8的vector相乘的指令。于是乎后面六个元素的计算就被浪费了,造成了电流空跑。但是FPGA如果计算两个长度为2的vector相乘的话,直接生成两个乘法器和一个加法器就好了,没有任何浪费。
同样,FPGA对空间也有更好的掌控粒度。FPGA可以处理任意位数的数据。比方说在神经网络中,16bit精度可能太高,但是8bit精度又可能太低,对于FPGA来说可以直接使用比如说11bit的精度。FPGA甚至可以自由控制浮点数的mantisaa位数和exp位数分割,达到最优的效率。
6.NVIDIA QUADRO 嵌入式 GPU 解决方案
https://www.nvidia.cn/design-visualization/resources/quadro-embedded/
从超声设备到先进的数字显示器和机器人技术,由 NVIDIA® Quadro® 提供动力支持的嵌入式 GPU 解决方案均能实现出色的性能和能效,并达到较高的质量和可靠性标准。无论您所处行业、应用或部署环境如何,由 Quadro 提供动力支持的嵌入式 GPU 解决方案均旨在为各种系统提供图形、计算、深度学习和 AI 功能。
显卡天梯图
https://vga.zol.com.cn/soc/ 显卡天梯图