深度学习硬件
1.显卡是什么
显卡(图形处理单元,GPU,Graphics Processing Unit)是计算机中的一个硬件组件,负责处理图形相关的任务。它主要用于生成图像、渲染视频、以及进行图形和视觉计算。显卡的工作不仅限于输出计算机屏幕上的图像,还在很多计算密集型任务中发挥重要作用,例如视频编辑、3D建模、游戏渲染、以及人工智能训练和推理等。
简而言之,显卡是计算机系统中专门用于处理和输出图像的设备,同时也可以在某些计算密集型任务中提供加速。
2.显存是什么
显存(视频随机存取内存,Video RAM)是显卡中的专用内存,用来存储与图形处理相关的数据。显存保存着图像、纹理、几何数据、渲染缓存等内容,供GPU快速访问。显存是GPU进行图形计算时的工作空间。(随机存取存储器RAM(Random Access Memory))
显存的大小直接影响显卡的性能,特别是在需要处理大量图形数据(如高分辨率游戏、3D建模、视频编辑等场景)时。如果显存过小,GPU可能会被迫频繁从系统内存中交换数据,这样会导致性能下降。在高负载情况下,显存越大,显卡能处理的图形和数据就越多,性能也就越好。
显存是专门为图形处理设计的内存,通常只能由GPU直接访问,速度更快,专注于图形和视频数据的存储和处理。
3.CPU与GPU的区别
GPU的核远远多于CPU,GPU用的是专用内存即显存,一般16-32GB,但是显存带宽非常高,使得GPU的读写速度非常快,普通CPU的内存虽然可以做的比较大比如32GB-1TB,但主内存的带宽相对显存而言低得多。换来的代价就是说GPU的控制流比较弱,而CPU在控制流方面做的很好。
CPU:可以处理通用计算。性能优化考虑数据读写效率(时间上和空间上)和多线程。
GPU:使用更多的小核和更好的内存带宽,适合能大规模并行的计算任务。
4.FLOPS
TFLOPS(Tera Floating Point Operations Per Second,万亿次浮点运算每秒)是衡量计算机性能的单位,特别是在科学计算、图形处理和机器学习等需要大量数学运算的领域。它表示系统每秒钟可以执行的浮点运算次数。

5.单机多卡并行
一台机器可以安装多个GPU。
在训练和预测时,可以将一个小批量的计算切分到多个GPU上,同时完成计算的过程来达到加速运算的目的。
数据并行:假设有n块显卡,将小批量分成n块,每个GPU拿到完整的参数来计算一块数据的梯度,这样做通常性能更好。
模型并行:通常用于模型大到单GPU放不下的时候,将模型分成n块,每个GPU拿到一块模型计算她的前向和反向结果。