摩爾定律說「可以便宜地做進積體電路裡的電晶體數,每兩年(實際上差不多是 20 個月)就會加倍一次」。這原本是早年英特爾共同創辦人 Gordon Moore 觀察 1958 年到 1965 年間晶片的電晶體數進化而得到的結論,當時 (1965 年) 他預計這個趨勢會繼續維持 10 年,但沒想到四十五年後的今天,摩爾定律依然正確 -- 當然這當中其實有些自我實現預言的味道,因為今天的半導體業大致上是以摩爾定律預言的結果,做為研發目標的。

扯遠了。今天的主題是 NVIDIA 的副總 Bill Dally 在富比士雜誌的專欄裡表示「摩爾定律已死」,因為現代的 CPU 太過度強調序列運算的能力,而序列運算的速度是很難隨著單純的電晶體數增加而增加的。這樣下去,既使電晶體數能 20 個月加倍一次,效能卻不會跟上,反而只是徒耗資源而已。那應該怎麼做呢?NVIDIA 的意思是我們應當捨棄長的 Pipeline,並專注在多個極度有效率的平行運算核心上 -- 而這正是 NVIDIA 平行運算的強項。如此一來,隨著電晶體數的增加,NVIDIA 可以輕易地增加核心數,達到讓運算速度隨著電晶體數增長,而且不用增加時脈的目的。

老實說,我覺得這根本是說好玩的而已。就像 Bill 自已承認的,目前並大部份程式是以序列運算的方式寫成,要將所有的程式改成平行運算的會是個非常浩大的工程,更不要說目前根本沒有多少程式設計師熟悉平行運算程式的開發。在可預見的未來,我想被 Bill 形容成「硬在火車上加上翅膀假裝自已是飛機」的多核心序列 CPU 仍然還會是主流吧!