cpu和gpu的区别
-
gpu是作为一个附属型的处理器出现和存在的,它主要处理计算机中与图形计算有关的工作,并将数据更好的呈现在显示器中;
换言之,cpu就好像是公司中的CEO,什么都要管;而gpu则是CEO下面的一个某方面领域的老大,例如市场部总经理,专注管某一方面的内容。
cpu的整体效用的提升,在一定程度上依赖于gpu。
-
当然更困难的事情还需要cpu和gpu协同进行处理,例如视频渲染、图形分析等等;
cpu和gpu的协和合作,才能最大程度上发挥电脑的性能。
图片是cpu
-
为什么cpu解码叫软解,gpu解码叫硬解?
这个不需要太复杂的解释。硬解码和软解码,与CPU、GPU没半点关系。不是说CPU进行解码都叫软解码,只要CPU内设计了硬件解码器,也就是一套解码电路,调用这种解码器进行解码就算硬解码。这个和CPU、GPU没关系。只要是调用了专用解码电路,就是硬解码。
软解码,则是在软件层面上,编写解码算法,利用CPU的通用计算、处理形式,达到解码的目的。这个过程要大量调用CPU的寄存器,CPU要取指、译指。CPU将解码过程完全视为一段程序的操作。通过人为编写解码算法,进行解码,就叫软解码。这个过程比较繁琐,效率没硬解码好。
一般来说,GPU中内建大量专用视频解码电路,可执行很多硬解码。但这并不是说CPU无法做硬解码,只要有解码电路,CPU一样可以做。Intel在Sandy Bridge中开始引入的Quick Sync Vedio,就是一种硬件编解码机构。解码电路自然不算软件。你可以把解码电路理解为ASIC,专用集成电路的感觉。这部分电路就专门用来负责对某一类解码,比如UVD3。这是硬件层面上的电路结构,需要占用芯片面积,同时要产生额外耗电。优点嘛,效率高,只需启用该电路,视频解码经这部分电路可以迅速解码,也无需额外编程,对软件开发人员也是福音。但缺点就是这部分电路只能做UVD3解码,如果不用这个功能,这部分电路还要耗电、发热。
Remember,在计算机硬软件设计上,专一性和通用性是非常重要的一对矛盾。本质就是兼容与效率的冲突!!!所有设计人员必须面对,必须平衡的一对关系,这是电子科学的哲学之一。
CPU本身是硬件,这个毫无疑问。但CPU更追求通用性,即多面手角色,啥都能干,至于干得怎么样,就取决于程序开发者的水平了。所以,CPU的表现,一个取决于CPU本身,还一个取决于软件开发者的实力。这恐怕就是为什么有人会说CPU算软件的原因。
GPU同样是硬件,但它是一类在设计初衷上有偏向的硬件——专司视觉计算。说白了,GPU就是一片并行计算器,计算多维矢量是它的长项。但没有人寄希望于让一颗GPU运行Windows操作系统吧。在GPU的长项上,GPU绝对完虐CPU。但这并不代表CPU不能做视觉输出,毕竟它是多面手,但效率没专用的芯片好罢了。声卡专司音频编解码,也是同样的道理。
回到问题上来。因为视频输出都是由显卡完成的,所以,视频的硬件解码电路,一般做在GPU里。其实做在CPU里也完全不是问题。