一,CPU和GPU
1、概念区分
CPU,全称central processing unit,即中央处理器,是一台计算机的运算核心和控制核心, 主要是负责多任务管理、调度,它是领导者,负责指挥。
GPU,全称Graphic Processing Unit,即图像处理单元,是显卡上的核心处理芯片,主要是用于大量的重复计算。一个GPU具有数千个计算核心,可以有效地并行处理工作负载。GPU不等于显卡,显卡是由GPU、显存、供电模块等组成的。
2、CPU和GPU对比
CPU和GPU由于设计目标不同,它们分别针对了两种不同的应用场景。具体区别参考:https://www.cnblogs.com/biglucky/p/4223565.html
CPU主要是负责多任务管理、调度,它是领导者,负责指挥。CPU擅长逻辑控制、串行运算和通用类型数据运算。
GPU是专为执行复杂的数学和几何计算而设计的,在大量的重复计算、处理图形渲染场景,性能优于CPU。
GPU是一种专用的单用途处理器,设计用途单一,GPU内核要比CPU内核小得多,GPU有成千上万的专用内核,特别适合于处理数据并行计算的问题,算力惊人。擅长大规模并行计算,适用于一些计算量很大,但又没什么技术含量的重复计算应用场景,这些计算任务可拆分,任务之间没有依赖性,互相独立,例如破解密码、挖矿和很多图形学的计算。这些计算可以分解为多个相同的简单小任务。
CPU可以理解为全栈工程师,也可以下基层干活,但更适合当领导来指挥;
GPU可以理解为搬砖的程序员,人多势众,咱们工人有力量。
二、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还是很有前景的。