计算机视觉之CPU和GPU

转载自:计算机视觉如何入门

如果说你要做计算机视觉跟图像处理,那么肯定跳不过 GPU 运算,GPU 运算这一块可能也是接下来需要学习或者自学的一个知识点。

因为可以看到,当前大部分关于计算机视觉的论文,很多实现起来都是用 GPU 去实现的,但是在应用领域,因为 GPU 的价格比较昂贵,所以 CPU 的应用场景相对来说还是占大部分。
而 CPU 跟 GPU 的差别主要在哪里呢? 它们的差别主要可以在两个方面去对比,第一个叫性能,第二个叫做吞吐量。

性能,换言之,性能会换成另外一个单词叫做 Latency(低延时性)。低延时性就是当你的性能越好,你处理分析的效率越高,相当于你的延时性就越低,这个是性能。另外一个叫做吞吐量,吞吐量的意思就是你同时能够处理的数据量。
而 CPU 跟 GPU 的差别在哪里呢?主要就在于这两个地方,CPU 它是一个高性能,就是超低延时性的,他能够快速的去做复杂运算,并且能达到一个很好的性能要求。而 GPU是以一个叫做运算单元为格式的,所以他的优点不在于低延时性,因为他确实不善于做复杂运算,他每一个处理器都非常的小,相对来说会很弱,但是它可以让它所有的弱处理器,同时去做处理,那相当于他就能够同时处理大量的数据,那这个就意味着它的吞吐量非常大,所以 CPU重视的是性能,GPU重视的是吞吐量。

所以大部分时候,GPU 他会跟另外一个词语联系在一起,叫做并行计算,意思就是它可以同时做大量的线程运算,为什么图像会特别适合用 GPU 运算呢?这是因为 GPU 它最开始的设计就是叫做图形处理单元,它的意思就是我可以把每一个像素,分割为一个线程去运算,每一个像素只做一些简单的运算,这个就是最开始图形处理器出现的原理。 它要做图形渲染的时候,要计算的是每一个像素的变换。所以每一个像素变换的计算量是很小很小的,可能就是一个公式的计算,计算量很少,它可以放在一个简单的计算单元里面去做计算,那这个就是 CPU 跟 GPU 的差别。
基于这样的差别,我们才会去设计什么时候用 CPU,什么时候用 GPU。如果你当前设计的算法,它的并行能力不是很强,从头到尾从上到下都是一个复杂的计算,没有太多可并性的地方,那么即使你用了 GPU,也不能帮助你很好提升计算性能。

所以,不要说别人都在用 GPU 那你就用 GPU,我们要了解的是为什么要用 GPU ,以及什么样的情况下用 GPU,它效果能够发挥出来最好。

猜你喜欢

转载自blog.csdn.net/tkzc_csk/article/details/81194385