解析英特爾MIC架構(gòu)與X86的兼容性

責(zé)任編輯:vivian

2012-08-15 15:27:14

摘自:驅(qū)動(dòng)者之家

Intel所宣稱(chēng)的MIC架構(gòu)優(yōu)越性如x86兼容等沒(méi)這么簡(jiǎn)單,其中的一些部分競(jìng)爭(zhēng)對(duì)手NVIDIA早在今年4月就已撰文指出過(guò)。下面就讓我們從一些公開(kāi)資料透露的內(nèi)容中分析一下到底在Intel MIC架構(gòu)中存在……

Intel于當(dāng)?shù)貢r(shí)間6月18日在德國(guó)漢堡正式發(fā)布了Larrabee GPU架構(gòu)的轉(zhuǎn)世,基于MIC(集成眾核)的計(jì)算加速協(xié)處理器Xeon Phi。目前的產(chǎn)品開(kāi)發(fā)代號(hào)為"Knights Corner",集成使用22nm 3-D Trigate/FinFET工藝制造的超50個(gè)Pentium P54C復(fù)刻版核心。

與此同時(shí)一些媒體如VR-Zone的專(zhuān)欄作者Theo Valich和3DCenter等也對(duì)其展開(kāi)了分析,不過(guò)他們似乎忘記了重要一點(diǎn)——Intel所宣稱(chēng)的MIC架構(gòu)優(yōu)越性如x86兼容等沒(méi)這么簡(jiǎn)單,其中的一些部分競(jìng)爭(zhēng)對(duì)手NVIDIA早在今年4月就已撰文指出過(guò)。下面就讓我們從一些公開(kāi)資料透露的內(nèi)容中分析一下到底在Intel MIC架構(gòu)中存在“免費(fèi)的午餐”與否。

MIC架構(gòu)的x86兼容性

既然是為超級(jí)計(jì)算機(jī)以及高端工作站所設(shè)計(jì),那么Intel自然會(huì)對(duì)Xeon Phi中的P54C核心進(jìn)行改進(jìn)。在Intel公開(kāi)的說(shuō)法中,Xeon Phi同樣屬于Intel 64(即AMD最早提出的x86-64架構(gòu))產(chǎn)品,那么實(shí)際是否如此呢?

回答是否定的,根據(jù)包括以下幾點(diǎn):在Intel為開(kāi)發(fā)者提供的指南[1]中明確表示,Knight Corner架構(gòu)只支持Intel 64位架構(gòu)指令集中的一部分子集,包括MMX、XMM、YMM寄存器操作在內(nèi)的指令不被支持。換句話(huà)說(shuō),Knights Corner拋棄了17年來(lái)Intel力推的MMX、SSE和AVX指令集的絕大部分。取而代之的是,資訊網(wǎng)站BSN透露Intel在Xeon Phi中加入了新的512bit寬度ZMM寄存器指令集,使得Xeon Phi的矢量單元(vector unit)和其他所有Intel處理器產(chǎn)品都不相同,這意味著Xeon Phi系列產(chǎn)品和其他Intel CPU在二進(jìn)制代碼上實(shí)際是不兼容的。

 

Intel在面向開(kāi)發(fā)者的博客中也總結(jié)了這一點(diǎn),內(nèi)部高速總線(xiàn)、高度并行數(shù)據(jù)處理所需的特殊矢量單元等特性綜合導(dǎo)致了上面的結(jié)果——為Xeon Phi所編寫(xiě)、編譯的代碼不能在其余CPU上運(yùn)行,反之亦然:為SIMD大量?jī)?yōu)化的代碼對(duì)Xeon Phi同樣沒(méi)有意義。此外Intel還重申Xeon Phi是一款協(xié)處理器,需要CPU的輔助才能發(fā)揮應(yīng)有的作用,從模式上來(lái)說(shuō)已經(jīng)和NVIDIA的Tesla加速卡類(lèi)似,偏離了原有的設(shè)想。

而Xeon Phi在對(duì)于開(kāi)發(fā)者的導(dǎo)向上也打破了此前和AMD的默契,此前Intel的開(kāi)發(fā)文檔中均表態(tài)鼓勵(lì)程序員使用SSE2/AVX指令集并稱(chēng)所有的 Intel64架構(gòu)產(chǎn)品均支持SSE2——現(xiàn)在這一“潛規(guī)則”也已煙消云散。并且Intel是否會(huì)將Xeon Phi中的特有指令集導(dǎo)入其余產(chǎn)品如服務(wù)器/臺(tái)式機(jī)/筆記本CPU中也暫且不得而知。

不存在能自動(dòng)并行化代碼的“魔法”編譯器

有人可能會(huì)提出:那么去除掉不兼容部分的二進(jìn)制代碼呢?NVIDIA CTO Steve Scott早在今年四月份就撰文[3]告訴我們,這些代碼經(jīng)過(guò)簡(jiǎn)單的再編譯是有可能運(yùn)行在MIC架構(gòu)上的,但存在兩大問(wèn)題:如果使用MPI API(one rank/core),MIC加速卡的50多個(gè)CPU核心將會(huì)分享8GB的內(nèi)存,這遠(yuǎn)遠(yuǎn)小于目前HPC應(yīng)用中1-2GB/每CPU核心的數(shù)量,而且50多個(gè)CPU核心同時(shí)通訊將會(huì)導(dǎo)致網(wǎng)絡(luò)傳輸堵塞,OpenMP API的情況也只是好一點(diǎn);另外根據(jù)阿姆達(dá)爾定律,代碼中不能并行化的部分將成為極大的瓶頸——別忘了Xeon Phi的每個(gè)核心單線(xiàn)程能力實(shí)際上和十來(lái)年前的初代奔騰P54C沒(méi)什么兩樣,并且目前多數(shù)x86 CPU上運(yùn)行的代碼并行度和線(xiàn)程數(shù)量都不高,簡(jiǎn)單編譯自然無(wú)法發(fā)揮Xeon Phi的能力。

Scott表示,不管是現(xiàn)在還是未來(lái),不會(huì)存在一個(gè)“魔法”編譯器,使得原有的代碼可以很好地自動(dòng)并行化。在超級(jí)計(jì)算機(jī)領(lǐng)域甚至每個(gè)應(yīng)用的代碼更換系統(tǒng)后都需要重新編譯一遍,目前還看不到哪個(gè)公司(包括Intel、NVIDIA或者其他任何人)能幫助程序員從這一工作中解脫出來(lái)。

此外,Scott引述的美國(guó)國(guó)家計(jì)算中心(NICS)的MIC架構(gòu)性能演示[4]也側(cè)面說(shuō)明Xeon Phi仍未解決Larrabee架構(gòu)的一些問(wèn)題——隨著線(xiàn)程數(shù)量的提高性能提升幅度越來(lái)越小,并且實(shí)際線(xiàn)程數(shù)量還遠(yuǎn)未達(dá)到HPC級(jí)別。

NICS的MIC架構(gòu)初步試驗(yàn)結(jié)果

Intel在2008年進(jìn)行的Larrabee模擬測(cè)試

總結(jié)

以上解釋與說(shuō)明只指向一個(gè)事實(shí):在MIC架構(gòu)上編寫(xiě)應(yīng)用并不比走CUDA/OpenCL GPGPU的道路工作量小。即使是號(hào)稱(chēng)通用性最強(qiáng)的OpenCL,代碼也必須根據(jù)硬件的架構(gòu)特征做大量的優(yōu)化與改動(dòng),否則得到的性能數(shù)據(jù)毫無(wú)實(shí)際意義。聯(lián)系到目前的實(shí)際情況,毫無(wú)疑問(wèn)NVIDIA的CUDA無(wú)論性能還是走在了市場(chǎng)的最先端,而OpenCL和Intel要稍微落后一些。

當(dāng)然,NVIDIA CTO Steve Scott在鼓吹CPU+GPU混合系統(tǒng)的優(yōu)勢(shì)的同時(shí),他在原文的評(píng)論里也表示Intel在軟件開(kāi)發(fā)環(huán)境上仍然具有一定優(yōu)勢(shì):即使是需要大量修改代碼并重新編譯,具有x86或其他Intel SIMD ISA擴(kuò)展開(kāi)發(fā)經(jīng)驗(yàn)的程序員面對(duì)MIC架構(gòu)也能很快上手,而CUDA或者OpenCL的編程模式則完全不同;另外CUDA目前主要走C/C++的道路,在 FORTRAN方面成績(jī)遠(yuǎn)遠(yuǎn)不如Intel可提供成熟編譯器的程度。Intel自己也聲稱(chēng),使用相對(duì)不受平臺(tái)限制的高級(jí)語(yǔ)言則不會(huì)遇到二進(jìn)制代碼不兼容的問(wèn)題。

總之,筆者仍然堅(jiān)持自己的觀(guān)點(diǎn):在超級(jí)計(jì)算領(lǐng)域最后的贏(yíng)家一定是軟件開(kāi)發(fā)環(huán)境以及Ecosystem打造情況最好的廠(chǎng)商,Intel的財(cái)力使其最容易來(lái)達(dá)到這一目標(biāo),但目前的Xeon Phi還有待于進(jìn)一步的檢驗(yàn),與Tesla相比還為時(shí)過(guò)早。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)