一,CPU和GPU

1、概念区分

CPU,全称central processing unit,即中央处理器,是一台计算机的运算核心和控制核心, 主要是负责多任务管理、调度,它是领导者,负责指挥。

GPU,全称Graphic Processing Unit,即图像处理单元,是显卡上的核心处理芯片,主要是用于大量的重复计算。一个GPU具有数千个计算核心,可以有效地并行处理工作负载。GPU不等于显卡,显卡是由GPU、显存、供电模块等组成的。

2、CPU和GPU对比

CPU和GPU由于设计目标不同,它们分别针对了两种不同的应用场景。具体区别参考:

 

CPU主要是负责多任务管理、调度,它是领导者,负责指挥。CPU擅长逻辑控制、串行运算和通用类型数据运算。

GPU是专为执行复杂的数学和几何计算而设计的,在大量的重复计算、处理图形渲染场景,性能优于CPU。

GPU是一种专用的单用途处理器,设计用途单一,GPU内核要比CPU内核小得多,GPU有成千上万的专用内核,特别适合于处理数据并行计算的问题,算力惊人。擅长大规模并行计算,适用于一些计算量很大,但又没什么技术含量的重复计算应用场景,这些计算任务可拆分,任务之间没有依赖性,互相独立,例如挖矿和很多图形学的计算。这些计算可以分解为多个相同的简单小任务。

GPU有几部分组成 gpu主要负责什么_gpu

GPU有几部分组成 gpu主要负责什么_应用场景_02

CPU可以理解为全栈工程师,也可以下基层干活,但更适合当领导来指挥;

GPU可以理解为搬砖的程序员,人多势众,咱们工人有力量。

 

GPU有几部分组成 gpu主要负责什么_gpu_03

 

二、why use GPU
1、大规模并行设计;
2、只作为加速卡扩展到现有系统中,并不会取代系统cpu;
3、代码设计有很多高并发操作;

 

三、why not use GPU
1、固定显存大小GPU,不可升级或配置;显存不足了尴尬。
2、电源大功率的需求;
3、仍然需要主机服务器和cpu来操作;
4、需要专门的开发工具,没有运行标准的x86代码: 开发工具单一,例如cuda,只支持NVIDIA卡,不支持其它GPU。
5、代码设计可能很难进行并行运算。
6、应用场景不适合。 当前大多应用程序的瓶颈都在I/O处理上,不需要太高的运算处理性能,例如,大多数互联网公司为缓解业务压力,都是部署集群模式,瓶颈多在硬盘读写和网络通信上。不适用于数据密集型和I/O密集型系统。
7、贵。

四、GPU使用场景:
1、AI深度学习
      深度学习训练和推理在线服务、图像识别、图像内容鉴别、语音识别。
2、视频处理
      大规模高清视频转码、4K/8K高清直播、多人视频会议、片源修复
3、科学计算
      影视渲染制作、碰撞模拟、计算金融、基因工程、气象预测
4、图形可视化
      工程设计、非线性编辑、远程教育应用、3D展示

 

五、Thinking
    多核cpu和多核gpu的出现意味着主流处理器芯片现在是并行系统。此外,它们的并行性继续按照摩尔定律进行扩展。
    真正的挑战在于开发能够透明地扩展并行性的应用软件,以利用不断增加的处理器内核数量,就像3D图形应用程序透明地将并行性扩展到具有大量不同内核数量的多核gpu一样。

    GPU是垂直领域的一颗星。文本时代正在向语音时代和视频时代过渡,至少在ToC方向,GPU还是很有前景的。