摩尔定律说「可以便宜地做进集成电路里的晶体管数,每两年(实际上差不多是 20 个月)就会加倍一次」。这原本是早年英特尔共同创办人 Gordon Moore 观察1958 年到1965 年间芯片的晶体管数进化而得到的结论,当时 (1965 年) 他预计这个趋势会继续维持 10 年,但没想到四十五年后的今天,摩尔定律依然正确 -- 当然这当中其实有些自我实现预言的味道,因为今天的半导体业大致上是以摩尔定律预言的结果,做为研发目标的。
扯远了。今天的主题是 NVIDIA 的副总 Bill Dally 在富比士杂志的专栏里表示「摩尔定律已死」,因为现代的 CPU 太过度强调序列运算的能力,而序列运算的速度是很难随着单纯的晶体管数增加而增加的。这样下去,既使晶体管数能 20 个月加倍一次,效能却不会跟上,反而只是徒耗资源而已。那应该怎么做呢?NVIDIA 的意思是我们应当舍弃长的 Pipeline,并专注在多个极度有效率的平行运算核心上 -- 而这正是 NVIDIA 平行运算的强项。如此一来,随着晶体管数的增加,NVIDIA 可以轻易地增加核心数,达到让指令周期随着晶体管数增长,而且不用增加频率的目的。
老实说,我觉得这根本是说好玩的而已。就像 Bill 自已承认的,目前并大部份程序是以序列运算的方式写成,要将所有的程序改成平行运算的会是个非常浩大的工程,更不要说目前根本没有多少程序设计师熟悉平行运算程序的开发。在可预见的未来,我想被 Bill 形容成「硬在火车上加上翅膀假装自已是飞机」的多核心序列 CPU 仍然还会是主流吧!
【编辑推荐】