人們傾向于認為“X-核”指的是相同的核
在SoC中,“核”的數量通常代表集成多少個通用處理器(CPU)。在這種情況下,為了讓名稱有意義,構成X-核的所有核心必須是同類的。例如,英偉達Tegra 4芯片打著“四核”標簽,盡管它實際上有5個處理器(其中1個只在低功率模式下運行)。目前高通驍龍芯片則有四個“Krait”核心,Krait是一項與ARM兼容的定制設計。
核越多越好?未必 “常識”告訴我們,核越多越好。畢竟,如果我們需要更多計算資源,增加核心數量不是很符合邏輯嗎?可惜事實并非如此。
一個“無限快”的單核處理器會很棒
在一個不受已知物理定律約束的理想世界里,一個無限快的單核處理器與無限快的存儲和內存相連接,會是一個完美的組合。它更符合“人類”軟件工程師的天然思維方式(線性而非并行),能夠加快任何軟件的運行。長期以來PC一直以這種方式演進。
當奔騰4達到功率和熱量極限時
事實上,在一個具體問題發(fā)生之后,多核才真正得到消費者認可:當奔騰4處理器(P4)達到極限。最初的奔騰4設計采用一種很長的執(zhí)行管線,希望讓未來同樣架構的版本達到4GHz (當時只有1.4GHz)。但由于熱量和功率消耗問題,奔騰4永遠無法接近該預想主頻。因此,為了維持性能的不斷提高,采用多核,每個核心消耗較少功率并產生較少熱量,是短期內唯一可行的解決方案。
不是每個軟件都能隨著核心的增加而擴展
多核只有都用得上才算厲害。多核不錯,但并非萬能藥。如今,工程師們不得不將程序執(zhí)行分割組合,以便通過多線程在多個核心上同時執(zhí)行和同步。這聽起來不算壞,再加上一些巧妙的設計,能取得比較可觀的效果,但是——
對于并行計算來說,最重要的是“任務性質”。當數據能夠獨立處理時,多線程運行良好,性能也能隨著核心數量的增加而增強。但是當數據處理依賴之前的結果時,程序將無法進一步分割,核心只能保持空閑狀態(tài)。簡而言之,一些應用并不適合多核環(huán)境,而且并行計算仍然是研究熱點。更多核心是很不錯,但前提是讓它們都保持充分運轉。
“更多”并不總是“更好”
為了找到一個更實用的答案,讓我們看看PC領域:畢竟,它與移動領域較為接近。在PC上,幾乎沒什么動機去增加更多的核心(4個以上),因為很多應用并不需要那么多核。增加核心只會增加硅片面積(成本),也可能會消耗更多功率——而并沒有帶來性能的額外提升。
合理的方式是根據實際用途,只在必要時增加核心數量。目前的業(yè)界共識似乎是4個工作核心就是最佳數量。將來可能發(fā)生變化,但是沒有顯著證據表明8個工作核心會引起性能的大幅提升,除了Antutu等基準測試的跑分數更高。從這種意義上說,8個工作核心可能的確是一件蠢事。
增加更多核心恐怕只會造成虛擬的基準測試結果與用戶實際使用感受之間更大的差異。
功率效率考慮與GPU計算
最后,請注意移動終端上正出現OpenCL等“計算”應用程序接口(API)。它們使編程人員能夠使用專門的處理器(如GPU)陣列,以比CPU更高的功率效率執(zhí)行一般的數學運算。由于大多數“本質上并行”的任務能夠卸載到更高功效的處理器上,沒有明顯的理由去增加CPU處理器的數量。
最后,異構計算(使用許多不同類型的核心)很可能是多核策略的真正答案。
結論:不要讓“核心”成為新的“百萬像素”
有一件事很明確:手機還不“夠快”,人們對其下一個手機速度能快一倍的概念感到興奮。這是一個了不起的目標,值得去投資,但是簡單地說“核越多越好”是十分“愚蠢”的。
計算性能是很多因素的綜合結果:核心、處理器、頻率和內存子系統。關注現實世界的性能和功率效率,要比關注這其中任何單一元件更為明智。
如果“核心”成為了新的“百萬像素”,那真是件憾事。如果這樣,我們肯定會陷入跟攝影界相同的營銷泥潭:業(yè)內人人都知道增加像素并不意味著提高圖像質量,但是大家都投入時間和資金去推銷這個指數,只因為它傳遞的信息更簡明。雖然這對拍照功能的營銷很有效,但這的確很不幸。