找回密码
 立即注册
查看: 308|回复: 0

CPU vs GPU,谁才是算力之王?

[复制链接]
发表于 2022-3-6 14:52 | 显示全部楼层 |阅读模式
GPU,学名可编程图形处理单元,俗称可编图形硬件,一般被行外称为显卡(GPU不是显卡,它是显卡中的核心处理单元)。

GPU概念产生于20世纪70、80年代交替年间,主要用于游戏和视频游戏方面,那时的全部战力仅仅能够快速合成几张图片。十年后,80、90年代交替时,出现了基于数字信号处理芯片,它的主要特点就是贵,当然性能得到了极大提高。1991、1995年对2D加速器的支持得到升级。



1998年是划时代的一年, NVIDIA(英伟达)宣布modern GPU研发成功,进入GPU可编程时代,是历史性突破。与之前的GPU不同,程序员可以将代码运行在GPU的处理单元中,而之前的GPU仅仅能处理固定功能,一旦设计完成,用户不能根据需求扩展功能,最多可以参与简单的设置(固定管线着色器)。

1998年后,modern GPU的发展又分为四个阶段:

第一代,代表者有NVIDIA的TNT2、 ATI的Grage 、3Dfx的Voodoo3。这一时期的GPU功能很有限,只能用于纹理组合的数学计算,或者像素值的计算。

第二代,1999年到2000年(都是时代之交),这一时期的GPU具备了三维坐标转换和光照计算能力,OpenGL和DirectX7(图形接口簇)相继支持应用程序通过硬件进行坐标变换。同时对纹理的操作扩展到3维的CubeMap。代表作有NVIDDIA的GeForce256、MAX, ATI的Radeon 7500等。

第三代,2001年,支持顶点编程能力的显卡面世(暂不支持像素编程能力)。

第四代,至今,市面的显卡同时支持了顶点(vertex)和片段(fragment,也可翻译成片元)编程能力。当前课程中的重要一环就是“顶点和片段着色器”。

那么同学们想一想,为什么要发展GPU呢?CPU不是也能执行程序吗?还要显卡做什么呢?

先来看一张图:



GPU:控制器少,计算单元多。

CPU:控制器很大,计算单元则很少。这里不要纠结计算单元的面积大小,这只是示意图。

GPU采用流式并行计算模式,每一个计算单元可以单独负责一个像素点,每个像素点不依赖旁边像素点的数据,所以每个计算单元都是独立并行的,不需要控制器额外干涉。

CPU处理则与之不同,线性处理较多,这条数据的可能依赖上一条数据的结果,同时还需要控制器参与取指令,指出下一条指令在内存中的位置。所以CPU的结构不适合独立的像素运算(像素一个一个的算效率极低)。

GPU在控制方面弱于CPU,但在并发算力方面远远胜于CPU。例如黑客们破解密码时,需要大量的尝试性计算,他们首选必是GPU。

所以,但看计算能力,GPU由于高并发能力,算力远远大于CPU;但说到分布、有序、控制力上,CPU要胜过GPU。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-10 03:42 , Processed in 0.136561 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表