然而,隨著信息技術的進步和應用的日益豐富,長期占據(jù)配角的顯卡,其核心處理器——圖形處理器GPU也逐漸發(fā)揮更多作用,不斷涌現(xiàn)在人們的關注焦點之中。
GPU是Graphic Processing Unit的簡稱,它直接決定了計算機顯卡的性能表現(xiàn)和產(chǎn)品質量。尤其是在圖形渲染、3D動畫制作等工作站、高性能計算領域,都嚴重依賴GPU的功能(有助于減少對CPU計算性能的依賴,分擔CPU的計算渲染工作)。
CPU和GPU本是連個互不相同的領域,它們有著各自的廠商。然而,傳統(tǒng)的老牌芯片廠商AMD,將CPU和GPU合二為一,推出了獨一無二的APU產(chǎn)品。 APU是Accelerated Processing Unit的簡稱,中文名為“加速處理器”。它是AMD“融聚未來”理念的產(chǎn)品,它第一次將中央處理器和獨顯核心做在一個晶片上,同時具有高性能處理器和獨立顯卡的處理性能,支持DX11游戲和最新應用的“加速運算”,可大幅提升電腦運行效率,實現(xiàn)CPU與GPU的真正融合。
與此相對應的是,Nvidia也順應了這種從單一使用CPU向CPU與GPU并用的“協(xié)同處理器”發(fā)展趨勢,打造了CUDA統(tǒng)一計算設備架構(Compute Unified Device Architecture),允許編程者充分利用CPU和GPU的各自優(yōu)點,開發(fā)出更加高效的應用平臺。CUDA的廣泛應用造就了GPU計算專用 Tesla GPU的崛起,并且在全球已經(jīng)擁有超過700多個GPU集群。
英特爾至強融核協(xié)處理器
既然提到了GPU集群和加速處理器,就自然不能忽略今年英特爾最新推出的“至強融核”(Intel Xeon Phi)協(xié)處理器。該處理器兼容x86編程模型,能夠為高性能計算進一步實現(xiàn)優(yōu)化,通過與強大靈活高效的至強處理器平臺協(xié)同,能夠獲得 10Petaflops(萬萬億次浮點計算)級別的超級計算能力。
下面,我們分別對CPU、GPU、APU和MIC(Xeon Phi)進行分析介紹,并將在本文最后進行綜合對比分析,探討未來的計算應用誰主沉浮……
下面,我們陸續(xù)對這些處理器進行講解。 在介紹CPU的時候,我們有必要談談其發(fā)展歷史。早期計算機,比如史上第一臺電子計算機ENIAC,它們都通常會根據(jù)任務的不同,通過物理連接來執(zhí)行相應的認任務。因此,這些計算機也通常被稱為“固定程序計算機”。那時候的CPU被定義為處理軟件執(zhí)行的裝置,早期真正意義上的CPU其實是與“存儲程序計算機”一同出現(xiàn)的。
工作人員在操作ENIAC主控制面板
CPU可劃分成晶體管和集成電路的CPU與微處理器CPU兩種。上世紀五十年代至六十年代期間,晶體管CPU體積得到大幅縮減,使得能夠更為復雜、更為可靠的CPU能夠構建在一個或者多個印刷電路板上。
DEC PDP-8/I的CPU、內(nèi)存核心和外部總線接口(中等規(guī)模集成電路)
在微處理器方面,CPU的歷史可以追溯到1971年。當時英特爾推出晶體管數(shù)量為2300顆的首個商用處理器4004微處理器,該處理器奠定了PC和智能系統(tǒng)發(fā)展的基礎。
英特爾80486DX2微處理器(圖片來自維基百科)
在CPU發(fā)展史中,也包含有AMD、IBM和SPARC、ARM等品牌的產(chǎn)品,不過我們可從英特爾的CPU發(fā)展進程來大體了解整個CPU的發(fā)展概況。英特爾的Tick-Tock模式,以制程和架構交替更新來不斷提升CPU的性能,突破性能瓶頸,滿足不斷變化增長的計算能力需求。
進入新世紀以來,CPU進入了更高速發(fā)展的時代,以往可望而不可及的1GHz大關被輕松突破。在市場分布方面,仍然是Intel和AMD公司兩雄爭霸。而在企業(yè)級市場,尤其是在服務器和高性能計算領域,則以英特爾的至強系列、IBM的Power系列和AMD的皓龍系列著稱。
簡要介紹了CPU的發(fā)展情況之后,下面我們來談談它在計算機中扮演的角色。CPU通常都具有以下幾個方面的基本功能:
1. 指令順序控制
這是指控制程序中指令的執(zhí)行順序。程序中的各指令之間是有嚴格順序的,必須嚴格按程序規(guī)定的順序執(zhí)行,才能保證計算機工作的正確性。
2. 操作控制
一條指令的功能往往是由計算機中的部件執(zhí)行一序列的操作來實現(xiàn)的。CPU要根據(jù)指令的功能,產(chǎn)生相應的操作控制信號,發(fā)給相應的部件,從而控制這些部件按指令的要求進行動作。
3. 時間控制
時間控制就是對各種操作實施時間上的定時。在一條指令的執(zhí)行過程中,在什么時間做什么操作均應受到嚴格的控制。只有這樣,計算機才能有條不紊地自動工作。
4. 數(shù)據(jù)加工
即對數(shù)據(jù)進行算術運算和邏輯運算,或進行其他的信息處理。
在多核和制程已經(jīng)達到22nm級別工藝的當代,CPU的發(fā)展速度十分驚人。不僅能遠遠滿足以往的各種繁重數(shù)據(jù)查詢、處理和順序串行計算,而且通過多個多核處理器,也能勝任各種并行計算需求。在不遠的將來,由于并行計算的廣闊前景,CPU更多的會以多處理器架構或者CPU+GPU異構計算來實現(xiàn)。在這一點上,未來計算應用的核心地位,非CPU所能撼動。
剛才我們提到并行計算,其實這恰恰是GPU的優(yōu)勢所在。GPU是顯示卡的“心臟”,有時也被稱為VPU(visual processing unit)。它相當于CPU在電腦中的作用,它決定了該顯卡的檔次和大部分性能,同時也是2D顯示卡和3D顯示卡的區(qū)別依據(jù)。
GPU(圖形處理器)可用于嵌入式系統(tǒng)、移動電話、個人電腦、工作站、游戲機,甚至某些大型計算機集群等。GPU已經(jīng)不再局限于3D圖形處理了,GPU通用計算技術發(fā)展已經(jīng)引起業(yè)界不少的關注,事實也證明在浮點運算、并行計算等部分計算方面,GPU可以提供數(shù)十倍乃至于上百倍于CPU的性能。
GeForce 6600GT (NV43) GPU
GPU通用計算方面的標準目前有OPEN CL、CUDA、ATI STREAM。其中,OpenCL(全稱Open Computing Language,開放運算語言)是第一個面向異構系統(tǒng)通用目的并行編程的開放式、免費標準,也是一個統(tǒng)一的編程環(huán)境,便于軟件開發(fā)人員為高性能計算服務器、桌面計算系統(tǒng)、手持設備編寫高效輕便的代碼,而且廣泛適用于多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構以及數(shù)字信號處理器(DSP)等其他并行處理器,在游戲、娛樂、科研、醫(yī)療等各種領域都有廣闊的發(fā)展前景。
GPU的出現(xiàn)的時間明顯要晚于CPU,而且GPU最早還是由著名的圖形顯卡公司——NVIDIA,在1999年發(fā)布 GeForce256圖形處理芯片時首先提出GPU的概念。
GeForce GTX 275 GPU
介紹GPU發(fā)展歷史,就不能不提1983年英特爾公司推出的 iSBX 275,它是iSBX多模塊板,插在iSBC系列單板上,由它提供黑白或彩色圖形顯示功能。在板上安裝的82720圖形顯示控制器(GDC)的控制下,直接可支持直線、圓、點、弧、矩形、區(qū)域填充等高級繪圖命令。從而給用戶繪圖工作帶來便利,同時減輕了主CPU的負擔。
Amiga 1000
1985年,首個配備有GPU功能的PC——Commodore Amiga面世。該GPU支持畫線,區(qū)域填充,并包含流處理器可加快操作,并結合多個任意位圖功能。1986年,德州儀器發(fā)布了首個內(nèi)嵌圖形處理能力的微處理器——TMS34010,它可以運行通用代碼,但還是側重于面向圖形處理的指令集。1990-1991年間,該芯片奠定了Windows加速卡圖形架構( TIGA )的基礎。
基于TMS34020芯片的TIGA架構
1987年,IBM 8514圖像系統(tǒng)發(fā)布,成為了IBM PC兼容2D圖像處理器的首個視頻卡。1993年,S3 Graphics推出了第一款單芯片的2D圖像加速器,名為S3 86C911。其后,86C911催生了大量的仿效者。隨著OpenGL API和DirectX類似功能的出現(xiàn),GPU增加了可編程著色的能力?,F(xiàn)在,每個像素可以經(jīng)由獨立的小程序處理,當中可以包含額外的圖像紋理輸入,而每個幾何頂點同樣可以在投影到屏幕上之前被獨立的小程序處理。
GPU使顯卡減少了對CPU的依賴,并進行部分原本CPU的工作,尤其是在3D圖形處理時。GPU所采用的核 心技術有硬體T&L、立方環(huán)境材質貼圖和頂點混合、紋理壓縮和凹凸映射貼圖、雙重紋理四像素256位 渲染引擎等,而硬體T&L技術可以說是GPU的標志。但隨著GPU處理能力的提升,其耗電需求也更加明顯,而且比目前的CPU消耗更多的電源。
目前市場上生產(chǎn)GPU的廠家,主要包括英特爾、AMD和NVIDIA、Matrox、S3 Graphics等。
在近期召開的Hot Chips大會上,AMD宣布計劃在微處理器設計上采用一種新的嘗試,使用高密度等方法來改進其代號為Excavator和Bulldozer系列處理器的性能,而這些技術通 常都是應用在GPU產(chǎn)品設計上面。
從中我們也不難看出,通過收購ATI,利用已有的CPU制造技術和收購獲得的GPU技術,實現(xiàn)CPU與GPU的真正融合,推出了APU加速處理器產(chǎn)品。
AMD APU“融聚”(Fusion)處理器
APU(Accelerated Processing Unit)中文名字叫加速處理器,是AMD“融聚未來”理念的產(chǎn)品,它第一次將中央處理器和獨顯核心做在一個晶片上,它同時具有高性能處理器和最新獨立顯卡的處理性能,支持DX11游戲和最新應用的“加速運算”,大幅提升了電腦運行效率,實現(xiàn)了CPU與GPU真正的融合。
AMD的APU平臺分兩種,一種是此前已經(jīng)能在市面上買到的E系列入門級APU,一種是近期才在歐美市場正式上市的A系列主流級APU,A系列APU分 A4/A6/A8三大系列。其最早推出APU產(chǎn)品,是去年1月的AMD Fusion系列處理器,面向主流市場的Llano APU在去年6月推出。
其實,我們更關心AMD的Fusion APU能否應用在未來的服務器市場上。AMD服務器工作站產(chǎn)品市場總監(jiān)John Fruehe曾經(jīng)表示,“AMD早就準備這么做了。”目前還僅限于消費級市場(桌面和移動終端)的APU,如果要想進入服務器市場,勢必要跨越軟件層面的生態(tài)系統(tǒng)構建。因為傳統(tǒng)的操作系統(tǒng)和各種應用軟件,都是基于處理器的類型來獲得支持。
傳統(tǒng)CPU廠商AMD,通過收購ATI獲得圖形處理器方面的更多技術,玩了一把CPU和GPU融合、博采眾長的絕藝。而同為競爭對手的NVidia,也同樣推出了基于自身技術的通用并行計算架構平臺CUDA,以及基于該架構的GPGPU通用計算圖形處理器。
CUDA是Compute Unified Device Architecture的簡稱,它包含了CUDA指令集架構(ISA)以及GPU內(nèi)部的并行計算引擎。它有助于傳統(tǒng)GPU獲得更高的解決復雜計算問題的能力。也是類似AMD推出的CPU+GPU融合的通用并行計算解決方案。
基于CUDA的Tesla GPU
從CUDA體系結構的組成來說,包含了三個部分:開發(fā)庫、運行期環(huán)境和驅動(如下圖所示:兩種API)。開發(fā)庫是基于CUDA技術所提供的應用開發(fā)庫。運行期環(huán)境提供了應用開發(fā)接口和運行期組件,包括基本數(shù)據(jù)類型的定義和各類計算、類型轉換、內(nèi)存管理、設備訪問和執(zhí)行調(diào)度等函數(shù)。驅動部分基本上可以理解為是CUDA-enable的GPU的設備抽象層,提供硬件設備的抽象訪問接口。
軟件層面CUDA架構圖
硬件層面CUDA架構圖
CUDA是用于GPU計算的開發(fā)環(huán)境,它是一個全新的軟硬件架構,可以將GPU視為一個并行數(shù)據(jù)計算的設備,對所進行的計算進行分配和管理。在CUDA的架構中,這些計算不再像過去所謂的GPGPU架構那樣必須將計算映射到圖形API(OpenGL和Direct 3D)中。
CUDA提供兩種API(Runtime API和Driver API)
眾所周知,GPU在處理密集型數(shù)據(jù)和并行數(shù)據(jù)計算方面優(yōu)勢比較明顯。因此,CUDA也比較適合大規(guī)模并行計算應用領域,比如光影處理、金融分析、醫(yī)療成像、油氣勘探、地理信息、基因分析和科學計算等等。
CUDA架構特點
在高性能計算領域,基于NVIDIA圖形處理器(GPU)上的并行計算體系架構,CUDA技術能夠給服務器和工作站帶來更強性能的同時,也能夠與基于CPU的服務器集群進行異構,并降低應用軟件開發(fā)門檻。
同為處理器業(yè)界廠商、而且長期占據(jù)頭把交椅的英特爾,自然也不會閑著。雖說英特爾在中低端也有自己的GPU產(chǎn)品,而且在2年前也推出了將GPU和CPU融為一體的產(chǎn)品,但它并不是第一個、也不是唯一一個推出這種整合方案的廠商。而且相比其他廠商目前的整合方案,英特爾在GPU市場上的差距還有一大截。
然而,英特爾很聰明,它懂得將自己的優(yōu)勢發(fā)揮得淋漓盡致。早在2010年全球TOP500榜單發(fā)布的時候,英特爾也正式宣布了其第一款MIC(Many Integrated Core,集成眾核)眾核架構產(chǎn)品Knights Ferry面向用戶提供測試的消息,此舉被認為是英特爾在Larrabee(英特爾GPU芯片代號)計劃轉型后最重要的高性能計算協(xié)處理器計劃,也預示著英特爾開啟了全新的超級計算速度、性能和兼容性時代。
英特爾集成眾核架構
MIC架構特點(高并行、高擴展、兼容已有編程模式)
在今年6月發(fā)布全新HCP TOP500排行榜之際,英特爾宣布所有基于這種MIC眾核架構的產(chǎn)品都將統(tǒng)一采用全新品牌——Xeon Phi(至強融核),其第一代至強融核產(chǎn)品將于今年底正式推出。MIC架構下的至強融核產(chǎn)品主要為高度并行的工作負載提供更好的性能,未來還將滿足包括數(shù)據(jù)中心和工作站等在內(nèi)的各個計算應用領域。
基于MIC架構的Knights產(chǎn)品家族發(fā)展路線圖
英特爾至強融核協(xié)處理器將采用創(chuàng)新的22納米3-D 三柵極晶體管制程技術,可在PCI-E插卡形態(tài)下集成超過50顆內(nèi)核和支持最低8GB容量的GDDR5內(nèi)存。此外,它還具備支持512b SIMD 指令的特點,可在單個指令控制下同時處理多個數(shù)據(jù)元素,從而能顯著提升性能。
可擴展的編程模式
至強融核品牌匯聚了至強強大的工藝處理實力和豐富成熟的關鍵業(yè)務、云計算、HPC等各類應用,屬于英特爾至強家族產(chǎn)品的組成部分?;趚86處理器架構的MIC,能夠更容易的進行應用程序編程,并且在多核、多個多核處理器廣泛應用的時代,能夠兼容原有的編程模式,而且在和多個集群上也可以進行性能調(diào)優(yōu)。
前面我們對CPU、GPU、 APU和GPGPU、MIC進行了簡要分析。下面我們來小結概況下。首先我們從未來發(fā)展趨勢來看,并行計算的應用會越來越多,這主要體現(xiàn)在原有的游戲、 3D動畫、特效渲染和其他科學領域。而由于CPU和GPU早期的設計思路的不同,CPU在通用計算領域和邏輯處理方面,擁有較為強大的計算性能,但對于數(shù)學計算方面,其速度并不如擁有海量處理核心的GPU快。相反,GPU雖然數(shù)學計算性能強大,大規(guī)模并行處理方面有突出表現(xiàn),但邏輯處理能力不足,不能勝任日常和通用型計算,而只能應用在某些計算領域。
經(jīng)過多年的發(fā)展,GPU已經(jīng)在很多領域得到應用,尤其是在超級計算機方面。比如中國“星云”和“天河一號”分別配備了AMD Radeon HD 4870 X2、NVIDIA Tesla C2050,通過使用特殊軟件讓GPU執(zhí)行并行數(shù)據(jù)操作,分擔CPU工作量,提升計算速度。
“天河一號A”采用至強CPU+Nvidia GPU異構計算模式
在此思路上,不少廠商也都紛紛提出了加速處理器、協(xié)處理器的概念。比如AMD的APU加速處理器和英特爾的至強融核協(xié)處理器,就是其中最為典型的代表。
至強融核協(xié)處理器
APU主打CPU和GPU融合,通過提升GPU的通用計算性能和協(xié)同計算,將具有高性能處理器和顯卡核心放置在同一個芯片上,大幅提升計算機運行效率?;贛IC架構的至強融核產(chǎn)品,專門面向百億億次計算時代而設計,將著眼于更多、更小的內(nèi)核和更寬的矢量單元,并且能上下兼容、保護用戶投資、實現(xiàn)更強擴展,在已有編程模式下,和已有的處理器(至強系列)之外,提供更為強大的并行計算效率。
另一方面,APU和至強融核都被各自廠商寄予了厚望。它們各自也都有著自己完整的發(fā)展路線圖。AMD的APU實現(xiàn)CPU和GPU融合,將通過物理整合、平臺優(yōu)化、架構整合和架構與系統(tǒng)整合四大步驟逐步推進;而英特爾的至強融核,其第一代產(chǎn)品將首先應用在HPC高性能計算領域,未來將會逐步擴展到包括服務器和工作站、數(shù)據(jù)中心在內(nèi)的各個企業(yè)級計算應用領域。
縱觀未來發(fā)展模式,僅憑單一的架構來實現(xiàn)更高的計算效率顯然并不現(xiàn)實。采用CPU+GPU的異構計算模式(包括CPU+協(xié)處理器、加速處理器等),勢必會迎來更大的發(fā)展浪潮。相比這種發(fā)展趨勢的擔憂,我們更應將注意力放在這種異構模式下的軟件生態(tài)系統(tǒng)建設上面。