英特爾的萬億次計算研究項目已經在處理器核心拓展問題上取得了豐碩成果,還先后完成了80核心、48核心(單芯片云計算機/SCC)兩種試驗芯片,而且號稱能夠擴充至不可思議的1000個核心。近日,Intel微處理器技術試驗室首席工程師Timothy Mattson又接受了媒體采訪,深入講解了這種技術的可行性。 問:如何才能做出1000核心的處理器? 答:挑戰(zhàn)在于,如果我們的晶圓廠能夠造出一顆1000核心的芯片,我們現在是否有能夠擴展到那種程度的架構呢?如果造出來,能否有效地為之編程? 48核心芯片的架構的確能夠滿足這些條件,這么說是因為我們沒有緩存一致性的約束。信息傳遞最差也能按照網絡的直徑拓展,后者大約相當于網絡節(jié)點數量的平方根。我有信心將SCC的架構擴展到1000個核心。 編程方面的回答也是肯定的:做為單芯片集群使用信息傳遞API。它能否廣為接受呢?核心間的緩存非一致性能否與 信息傳遞合作,讓普通程序員認可呢?如果答案也是肯定的,我們就有了通往1000核心的陽光大道。當然這也會帶來一系列更嚴峻的問題,最關鍵的就是應用模 型和應用程序是否能夠用到如此大規(guī)模的核心。我們正在合作致力于解決這些問題。 就我看來,自己的工作是在晶圓廠的能力所及范圍內盡量走得更遠,同時創(chuàng)造一個能夠有效發(fā)揮這些技術優(yōu)勢的編程環(huán)境。至于到底使用多少個核心、怎么組合,就交給應用研究和產品事業(yè)部吧。我的任務就是跑在前邊。 問:應用程序使用的最大核心數量是否存在某種瓶頸?比如100個,或者400個? 答:理論上能使用的核心數量沒有限制。問題要復雜得多,第一得看應用程序的并行規(guī)模,第二取決于程序引起的和負載失衡程度。我們稱之為阿姆達爾定律(Amdahl's Law)。 這條定律告訴我們,一個程序可以分成能夠隨著核心數量加速的部分和不能加速的部分,也就是并行和串行部分。如果以S代表串行部分, 通過簡單的數學計算就能證明最大加速程度就是1/S,而且與核心數量無關。所以說,核心數量的利用規(guī)模還得看應用程序,以及它在多大程度上可以并行執(zhí)行。 事實證明,將S做到1%以下是非常困難的,對于圖形這種大規(guī)模并行操作來說還好,但是更復雜的應用就讓人頭疼了。 問:Intel是否真的想做一顆1000核心處理器呢? 答:這取決于能否找到支持它的應用程序、需要它的應用模型、能夠接受它的市場。我們橫在努力尋找確實需要那么多核心的大量應用。舉個例子,如果向計算機輸入自然語言和姿勢等視覺線索,合成復雜3D模型并以視覺形式將結果呈現出來,就很容易消耗掉1000個核心。 從技術角度講,1000個核心也很容易利用,不過關鍵在于產品策略和市場需求。就像我說過的那樣,在我工作的研究世界里,我的工作就是走在時代之前,讓我們的產品事業(yè)部將最好的產品推向市場,并針對消費者的實際使用需求進行優(yōu)化。 問:是怎么想到1000核心這個主意的呢? 答:我是在研究摩爾定律的過程中想到1000這個數字的。如果每一代進化需要兩年時間,集成度都翻一番,那么從48核心往后四到五代,就到了1000。所以說,這其實就是個我們的工廠能夠在多長的時間內繼續(xù)跟上摩爾定律的問題。如果說我在Intel工作這17年學到了什么的話,那就是永遠不要小瞧我們的工廠。 問:Intel的產品路線圖上為什么沒有48核心處理器? 答:我需要澄清這種芯片的開發(fā)團隊的角色。我們的工作是推動創(chuàng)新,回答“可能會發(fā)生什么”這一問題。這是一項全職工作。產品路線圖要綜合我們有關這一問題的答案,然后解答“市場需要什么?”同樣是一份全職工作。 Intel產品路線圖反映的是產品事業(yè)部同事對未來市場需求的解讀。他們可能需要48核心處理器,也可能不需要。這個我不清楚。 |