资深工程师解读5个被误解的CPU/GPU概念【南宫NG28】
发布时间:2024-08-18 人浏览
本文摘要:从英特尔1971年发售第一款商用微处理器4004到现在,处理器早已走到了三十多年的历程,目前,CPU处理器早已从服务器、PC发展到嵌入式、工控、消费、医疗等各个领域,但是从总体架构上来看,CPU的架构并没过于大提高,不过也有一些新的架构突破,作为一个仍然跟CPU做事的工程师,感觉很多人被一些概念误导,这里谈谈5个被误会的CPUGPU概念。
从英特尔1971年发售第一款商用微处理器4004到现在,处理器早已走到了三十多年的历程,目前,CPU处理器早已从服务器、PC发展到嵌入式、工控、消费、医疗等各个领域,但是从总体架构上来看,CPU的架构并没过于大提高,不过也有一些新的架构突破,作为一个仍然跟CPU做事的工程师,感觉很多人被一些概念误导,这里谈谈5个被误会的CPUGPU概念。 1、多核与多线程 驳回多核与多线程,很多人首先不会想起手机中的多核大战,而记得了多线程技术,从单核到双核到四核再行到8核,或许多核才是处理器发展的王道,但是大家想要过没?为什么到了8核之后多核之战就打住了呢?多线程技术究竟是不是优势? 只不过多核有个的缺失就是随着内核数量的提高,性能的提高并不跟核数减少成正比,按照阿姆约定律:一个程序不存在两部分,不能串行计算出来的部分S,和需要并行计算地部分P。两部分之和是整个程序,因此S+P=1。
这个程序如果在一个具备N个核心的处理器上运营,那么和它在一个单核处理器上运营比起,速度的提高是1/(S+P/N)。当N无穷大于无穷大时(即假设我们有无穷多个核心),速度提高的下限是1/S,即速度提高的下限各不相同程序无法被并行计算的部分。 这个定律的结果就是,即便我们需要有效地并行计算一个程序的95%,只剩5%不能串行计算出来的部分容许了这个程序的运营速度最少能提高1/5%=20倍。
而现有的程序中很少需要做95%以上部分的并行计算。这张图表明了对于4种有所不同类型的程序(分别有50%,75%,90%,95%的部分需要并行处理)的速度提高相对于处理器核心数量的关系,纵轴是相对于单核处理器速度提高的倍数,横轴是处理器核心的数量。可以看见4条曲线随着处理器核心数量的减少渐渐渐趋平缓。 现在的多核处理器还相比之下没有到享有1,000个核心的时候。
然而未来的某一天,不管是软件还是硬件工程师们或许不会满头大汗地向客户说明这个问题:为什么近期的1,000核处理器比旧的100核处理器慢没法多少? 所以多核的发展路子是有局限的,再行来想到多线程技术,多线程(英语:multithreading),是所指从软件或者硬件上构建多个线程所发继续执行的技术。具备多线程能力的计算机因有硬件反对而需要在刚好继续执行少于一个线程,进而提高整体处置性能。只不过这个技术是十分好的,现在英特尔在PC处理器领域基本是回头的多线程的路子。
它近期的CPU都是四核8线程。 多线程技术可以在不明显减少功耗和面积的条件下获取性能的平稳减少,举例来说,双核和单核双线程,每减少一个线程有50%平稳线性减少,但是对于多核来说,双核比单核有50%提高,但是三核只有30%提高,而四核只有20%的提高了。 而且从研发可玩性来说,多线程研发可玩性要弱于多核,多核是必须大量人工优化的,后期必须芯片厂商和系统厂商投放大量的人力物力,而归功于英特尔的普及,软件系统对多线程的反对早已很成熟期了,Linux早已反对多线程了,而且多线程研发是CPU自动分派任务不必人工参予,这样可以提高研发效率。 所以,未来CPU的发展除了从32位升级到64位,在多核多线程的应用于上不应当混杂进,多核多线程可以提高CPU的能效,解决问题性能和功耗的对立。
本文来源:南宫28-www.gdjiekangshi.com