【x86 興衰史】奠定 Intel Xeon Phi 技術基礎的「x86 處理器顯示卡」:Larrabee

作者 | 發布日期 2017 年 09 月 30 日 16:01 | 分類 GPU , 處理器 , 零組件 follow us in feedly

Intel 終於在今年 8 月處理器業界年度盛事之一的 IEEE HotChips 29,公布了針對深度學習最佳化的新款 Xeon Phi「Knights Mill」,Intel 鴨子划水多年的 MIC(Many Integrated Core,整合眾核架構)總算又多了一點曝光度,但你知道 Intel 的超級多核心產品線,是早在十年前,醞釀於極度瘋狂的「x86 處理器架構顯示卡」嗎?



喔齁。

2006 年底至 2007 年中的顯示卡市場,正處於 GPGPU 隨著 DirectX 10 與統一著色器架構的實用化,而開始萌芽的關鍵時刻,nVidia GeForce 8 系列成為初代 CUDA 的載具,AMD Radeon HD 2900 則開雙倍浮點精確度之先河,因此一談到繪圖晶片通用運算這檔事,完全不缺抬槓的話題。

但當時最歡樂異常的焦點,並非集中在顯示晶片雙雄的新產品,而是聚焦於 Intel,著手超級多核心多執行緒 x86 處理器架構的「顯示卡」,你可把它當成「Intel 的 GPGPU」,雖然它從未在市場現身過。

Intel 首度在 2007 年 4 月北京 IDF(Intel Developer Forum)公開 Larrabee 這個研發代號,並公開嗆聲「Larrabee 出現後,會使顯示核心在兩到三年內消失」。但事實上,早在 2006 年底某份未刻意保密的研討會簡報,詳細描述了 Larrabee 規格概觀,規格比較表還不小心一併爆破了從希伯來文的「砂橋」(Gesher)正名而來的 Sandy Bridge 處理器。

像 Intel 這樣的大公司,很難隱藏所有祕密,不提公開的專利,光歷年 IDF 和各類學術活動的議程簡報,就多次無預警避開該公司法務和行銷的耳目,讓多年後才會開花結果的機密計畫,提前曝光在世人眼前。

加上該文件內,出現某張爆炸性的顯示卡架構圖,和大剌剌的「Discrete High End GPU」字樣,國內外無數知名網站的討論區,就開始暴動了,還意外波及乏人問津到連蚊子都不想騷擾的筆者部落格,甚至還有電腦雜誌的編輯,高潮到寫下「因為一切軟體搞定,這將是歷史上首款往前相容未來 3D API 的顯示卡架構」。

一圖勝千言,你可清楚看到,這是 16 核心的 x86 處理器,實際上核心數絕不會這麼少。

接著你就了解,每個支援四條多執行緒的循序執行(In Order)核心,那顯眼的 SIMD-16,意謂整顆 16 核心處理器,每個時脈可進行 256 個 32 位元單倍浮點精確度 SIMD 運算,帳面上優於 nVidia 最高階顯卡 GeForce 8800 GTX 的 128 個。

但你會不會隱約感覺到……有什麼恐怖的祕密藏在這張簡報裡?似乎有什麼不能告人的機密,被前面的方塊圖擋住了?

各位,歡聲雷動吧,感謝原始文件是 PowerPoint 格式,移除擋在前面的動畫圖片,世界奇觀般的「x86 處理器架構顯示卡」,包括 GDDR 記憶體、外接電源、視訊輸出、音訊輸入等近代顯示卡的必備特徵,一絲不掛在讀者眼前裸奔了。

接連幾年的故事,就是 Intel 慢慢面對現實,被迫承認如此瘋狂的構想,無力追趕急速進步的 GPU,而「轉進」高效能運算和人工智慧的過程。

Larrabee 全貌如下:

  • 「相對」於 8 核心而言的超級多核心架構,核心初步規劃 16 至 24 個(直到加碼至 48 核),時脈 1.7Ghz~2.5GHz,標準設計功耗約 150W,單晶片理論效能最高可達 1 Tera Flops,當 32 核、時脈 2GHz,更達 2 Tera Flops,為同時期 8 核心 x86 處理器「Sandy Bridge」的 5 至 10 倍。
  • 預定 2009 年問世,採用 45nm 或 32nm 製程,晶粒面積不明,但封裝後的晶片面積高達 2450.25(49.5×49.5)平方公厘,果然頗具高階顯示晶片的威勢。
  • 核心複雜度約為 P54C(沒有 MMX 指令集的 Pentium)等級,不具備非循序指令執行能力(Out-Of-Order Execution,OOOE),支援 4 條同時多執行緒,以掩蓋來自運算與記憶體存取的延遲,24核 心就是 96 條執行緒,48 核心則 192 執行緒,以此類推。但跟 GPU 相比,仍小巫見大巫。

  • 每個核心擁有 16 組 32 位元運算單元,總計 512 位元寬,可同時執行 16 個單倍精確度浮點運算(SIMD-16),亦可處理 32 位元整數與 64 位元雙倍精確度浮點。此外,每個核心內建 32kB 第一階資料與 32kB 指令快取,延遲僅有一時脈週期。

  • LNI(Larrabee New Instructions,或稱 LRBni)SIMD 擴充,包含約 100 個新指令,定義聚集(Gather)/分散(Scatter)指令、32 個 512 位元寬資料暫存器,與 8 個 16 位元遮罩暫存器,使 Larrabee 更接近向量電腦。

  • 單一處理器核心 4 個執行緒,各自有獨立的資料暫存器,共用 256kB 第二階快取,透過環狀匯流排(Ring Bus)連接所有第二階快取、記憶體控制器,及材質處理等固定功能單元。該匯流排理論傳輸頻寬介於 435.2GB/s 至 640GB/s,每時脈週期 256byte。
  • 雙通道記憶體控制器支援 DDR3、FB-DIMM 或 GDDR5,視不同的記憶體種類,單顆 Larrabee 最高記體容量介於 4GB 至 32GB,理論頻寬 40GB 至 128GB。另外,Larrabee 支援虛擬記憶體共享,與系統處理器之間可共用定址空間,彼此互通有無。
  • 內建 3 組雙埠 CSI(日後改稱 QPI),單向理論傳輸頻寬 17GB/s,延遲 50ns,可建構多處理器環境。是的,Larrabee 是可以做為執行作業系統的運算平台,並不限於「外掛」的顯示卡或運算卡。

現在開始插播腦殘問答時間。

Larrabee 是什麼?

Larrabee 不是什麼特殊品種的蜜蜂(不過謠傳 Intel 內部相關團隊的電子郵件簽名檔,全員都會統一放一隻蜜蜂的圖示),而是 Intel 發神經搞出來的超級多核心/多執行緒 x86 處理器,號稱「單晶片運算能量 1 Tera Flops」,沿用已成骨灰、設計圖捐給美國政府的 P54C 等級、連 MMX 都沒有的 Pentium 核心,筆者還滿擔心大多數讀者,早就遺忘初代 Pentium 長得什麼樣子了。

兼具「CPU 的可編程性」與「GPU 的高平行度」,完美的交會點就是 Larrabee,充分彰顯了 Intel 內 x86 義和團的瘋狂野心。

為何 Intel 要開發 Larrabee?

看在 AMD 在 2006 年購併 ATI、擺明要整合處理器和顯示晶片、與未來兩者指令集架構的份上,輸人不輸陣,Intel 勢必有所回應,只是讓人意想不到 Intel 所謂「重新啟動獨立顯示晶片計畫」竟是讓眾人眼鏡碎滿一地的誇張設計,從 i740 到 Larrabee,根本是時空跳躍等級的差距。

在高效能運算市場,nVidia 的 CUDA,是對 Intel 更明顯的威脅,對 Intel,開發 Larrabee 是不得不為。

那 Intel 幹麼吃飽太閒,要用 x86 指令集,而不是 XScale(前 StrongARM)或 IA-64(Itanium)?

看在既有 x86 龐大軟體資源的份上,在編譯器領域長期投入龐大投資的 Intel,可盡量多賣出幾套他們的軟體開發工具。事實上,Intel 最熱中談論 Larrabee 的部門,就是急速膨脹的軟體事業群。

此外,太多顯示晶片技術專利掌握在 nVidia 和 AMD 手上,假若 Intel 不希望被拿著 ATI 專利的 AMD 天天找上法院喝咖啡,這的確是避開專利麻煩的途徑,還很可能是唯一的手段。

像 Intel 的 GMA-X3000 的 Triangle Setup 竟然還是用統一著色器硬幹出來的,「專利地雷」的潛在威脅有多大,由此可見一斑,歡迎來到專利恐怖主義的時代。

Larrabee 是史上第一顆「單晶片 1 Tera Flops」的產品?

完完全全不可能,2008 年底 AMD Radeon HD 4800 就先聲奪人了,而且 Larrabee 是起碼拖到 2009 年才會問市的產品,在這之前,IBM、Sony 也肯定推出理論運算效能到達 1 Tera Flops 的新版 Cell 處理器。2007 年宣布註定落後競爭對手、還嗆可讓競爭者 3 年內消失的高技術風險產品,想想也滿屌的。

Larrabee 最瘋狂的地方是?

幾乎純軟體的可程式化繪圖管線。請見 Intel 自己的呈堂證供,不要嚇壞。

Intel 的思維不外乎「老子就是市場的領導者」,寧可發揮自己的影響力,逼迫其他人跟進。更何況,Intel 並不希望 3D 繪圖的基礎架構詮釋權,長期被微軟等軟體廠商把持。從當初 Intel 蠻幹 IA-64 一路到 Larrabee,思考邏輯一點都沒改變。

nVidia 黃仁勳當時曾批評,未在可程式化與固定硬體功能取得平衡的 Larrabee,在老舊 x86 架構的拖累下,主要繪圖運算都靠可程式化實作,表現勢必糟糕,可惜最終我們也無從得知,到底會慘烈到什麼程度。

純軟體繪圖管線有什麼好處?

可充分發揮 x86 指令集號稱易於開發的「潛力」,也可對運算資源做出最大限度的利用。Intel 曾列舉了 3 款知名遊戲,做為其印證其理論基礎所言不虛的令箭。

x86 指令集究竟適不適合顯示系統?

為何 x86 處理器必須一路疊床架屋,延續指令集相容性,處理器微架構一用就好幾年,而顯示晶片卻相反,微軟 DirectX 的 Shader Model 在短短幾年就出好幾版,顯示晶片架構卻動輒大興土木?你有聽說過一台個人電腦,開機前要安裝「處理器驅動程式」嗎?當然沒有,但顯示晶片卻可透過驅動程式,與 I/O 裝置的間接性,維持對過往老舊應用程式介面的相容性。

既然如此,我們也可想見,以 nVidia 與 AMD 為首,內建巨大可程式化著色運算單元的高效能顯示晶片,其底層指令集架構與相對應的實作加速機制,不像 x86 之類的泛用指令集,有著巨大的歷史包袱,可隨時針對繪圖需求量身訂做。

那麼,Intel 選擇 x86 指令集第一個問題點就浮現出來了,x86 處理器與繪圖晶片雙雄的 GPU 相比,兩邊底層指令集架構的「血統純正度」,根本天差地遠,而我們也有充分的理由相信,後者絕對遠比前者更適合繪圖系統的需要。

指令品質,以卵擊石?

也許你會質疑,Intel 只要新增繪圖專用指令,不就得了?事實上,Larrabee 並非 Intel 首度嘗試將泛用處理器導入繪圖應用,早在 1988 年號稱「Cray on a chip」的 i860,就為此特別增加繪圖相關指令與 3D 繪圖功能單元。

但 x86 畢竟就是 x86,其先天不良加上後天失調的原罪,也限制了日後擴充的彈性。以暫存器數目來說好了,在 AVX 和 LRBni 之前,受限於指令編碼欄位,導致歷代 x86 指令集擴充一次頂多增加 8 個暫存器,但微軟 Shader Model 4.0 光是「暫存用的」暫存器就高達「4,096」個。

x86 的雙運算元指令格式(像 a+b=b)則是另一個問題點,除了大幅降低暫存器的利用效率(因會摧毀其中一個暫存器的資料,如需重複利用,就必須把資料搬移到其他的暫存器),也難以實作圖學常用的乘積和指令(Multiply-Add,如 a×b+c=d),必須使用記憶體當其中一個來源運算元(Source Operand),這也是到了 AVX 之後,才逐漸克服的瓶頸,但仍遠遠不夠。

種種不利因素累積下來,Intel 想拿殘破不堪的 SIMD 指令集擴充,去對抗重武裝的 GPU,無異以卵擊石。細心的讀者也可以注意到,Larrabee 第一階快取記憶體存取延遲只有 1 cycle,擺明用來彌補暫存器不足。但能否迎刃而解,筆者二話不說,打上大大的問號。

其實很多重要觀念,早已陳述於先前《一窩瘋「人工智慧晶片」前,你需要知道的幾件關於 GPGPU 的事》,請有興趣的讀者有空多看幾次。

純軟體的 3D 繪圖管線是否可行?

行文至此,讀者心中會產生疑惑:我哪管 x86 指令集適不適合,只要 Intel 真的有本事硬幹出一顆真的擁有 1 Tera Flops 效能的 x86 處理器,光憑藉著巨大的「賽豬公」數字,就充滿了無限的想像空間和璀璨光明的未來。

這讓筆者想起,十幾年前,某份描述 PS3 心臟 Cell 處理器的專利被曝光後,「單晶片浮點 1 Tera Flops」成為看似伸手可及的願景,就有不少人在猜測,PS3 會不會就此放棄獨立顯示晶片,整個 3D 繪圖管線統統透過軟體手段實作。

事後證明,還好 Sony 沒有發瘋,在 PS3 內,乖乖的擺了一顆 nVidia 從 G70 衍生而來的 RSX 顯示晶片,而 PS3 搭載的 Cell 處理器,也僅為「完全體」的四分之一規模。

「純軟體 3D 繪圖管線可不可行」是非常複雜且需長篇大論解釋的題目,唯一可以確定的是,就算要純軟體實作,x86 指令集的適用性,也肯定遠遠不及 Cell 的設計(如果不嫌棄 SPE 記憶體搬搬樂很麻煩)。Intel 公布的 Larrabee 架構圖標明了「Fixed Function」,Intel 看來也沒有喪心病狂到把全部的希望,都寄託在一堆簡單 x86 核心身上。

用 x86 處理器硬幹出顯示晶片是一回事,Intel 總得提供驅動程式給用戶下載吧?很不幸的,那時候的 Intel 繪圖驅動程式品質滿糟糕,自己也承認這方面不如繪圖晶片雙雄,連「正統」GPU 驅動程式都寫不好,變態至極的 Larrabee 難道會比較簡單?還可支援「未來」的 3D API?無異緣木求魚。

Larrabee 真正的殺手級應用是什麼?

回歸原點,Larrabee 真正的優勢,在於結合 x86 指令集的巨大軟體資源,與 Intel 的高效率編譯器,進軍高效能運算應用。

姑且不論 Larrabee 能否實現單晶片 1 Tera Flops 的效能表現,Intel 的確頗有機會藉 Larrabee,大舉入侵原本由特化 RISC 處理器獨領風騷的超級電腦市場,如 IBM 的 BlueGene。

事後證明,Intel 誤打誤撞走上一條正確的道路,只不過到頭來,不得不脫下褲子跟 nVidia 拚了。

國王的晶片

Intel 在 2008 年積極宣傳 Larrabee,不僅與顯示卡製造商洽談產品案,同時也設法說服 Sony、任天堂和微軟,使用 Larrabee 打造新一代遊戲機。江湖傳言,時任 SCEI 代表取締役社長、現任 Sony 執行長的平井一夫,曾受邀至 Intel 總部整整被洗腦了一週,差點決定採用 Larrabee 為 PS4 的心臟。

但時程一再延宕,才是 Larrabee 最大的罩門,原先預定 2008 年提供樣品、2009 年上市,卻整整延後了一年,偏偏 2009 到 2010 年這段期間,又是 nVidia、AMD 開始 GPGPU 硬體規格熟成期「頂上決戰」的起跑點,Intel 只能默默站在一旁看戲。

結果 2009 年 11 月 4 日,Intel 正式宣布 Larrabee 不會有消費性繪圖產品問世,變相判了「軟體實現一切昔日硬體實作功能的夢幻個人電腦 x86 處理器架構顯示卡」不可重新上訴的唯一死刑。

2010 年 5 月 25 日,Intel 透過官方部落格,昭告天下,Larrabee 也不會做為圖形處理器,而是轉進高效能運算市場,與 nVidia 的 Tesla 等專業運算卡正面較量。

同場加映:2008 年,已經和 AMD 長達 3 年合作關係的夢工廠(DreamWorks),轉向與 Intel 合作,改用 Nehalem 微架構處理器,搭配 Larrabee 專業繪圖卡,做為新世代的動畫繪製硬體平台,還由公司高層出面解釋琵琶別抱的緣由。讓人滿好奇 Larrabee 轉職為「國王的晶片」後,這檔慘劇最後如何收尾。

騎士行進曲:再次放棄獨立顯示卡市場,轉戰高效能運算最佳化的整合眾核架構

後來就是我們熟知的 MIC 發展史,一連串悠揚的「騎士行進曲」,然後 Intel 其餘的研究案,像 48 個 x86 核心「單晶片雲端電腦」和 80 個 96 位元寬度 VLIW 核心組成的 1 Tera Flops 單晶片,在此就先束之高閣了:

  • 2010 年,連同 Larrabee 圖形處理電路都一併繼承,32 核、45nm 製程的「Knights Ferry」為內部驗證概念的研發案。
  • 2012 年,第一世代,50 核、22nm 製程、只能當外接運算卡的「Knights Corner」則是 Xeon Phi x100 品牌的首發,也是 MIC 首度接受市場的考驗。
  • 2016 年,第二世代,72 個嶄新 Silvermont 核心、14nm 製程、結合 AVX-512 指令集與高效能嵌入式記憶體,並不再保留 Larrabee「繪圖遺產」的 Xeon Phi x200 系列「Knights Landing」,完備為可兼具獨立運算平台與外接運算卡雙重用途的產品,Skylake-SP 引進的晶片內網狀網路(Mesh Network),也是這時的成果。
  • 2017 年,以 Knights Landing 為基礎,針對人工智慧深度學習最佳化的衍生品「Knights Mill」,在 IEEE HotChips 29 正式發表。
  • 10nm 製程的第三世代「Knights Hill」,Intel 的超級多核騎士越爬越高,希望不會不小心摔下來。

我相信胸懷大志的電腦玩家,內心一定會有一股「有為者亦若是」的衝動:

當年無緣一親芳澤 3dfx 末代產品 Rampage,網路僅流傳幾張初版晶片的開機照片,好遺憾,假如可以弄到一張 Larrabee 顯示卡,裝在自己的電腦跑跑看,一定很酷。天啊,用 x86 處理器做的顯卡耶!

即使有 87% 的機率,跑起來慢得要命。

(首圖來源:Intel

延伸閱讀:

關鍵字: , , , , , ,