女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>主機配件>cpu>

給CPU直接開掛!從OpenPOWER的CAPI+FPGA看第二代異構(gòu)計算

2017年11月17日 11:49 ZD至頂網(wǎng)服務(wù)器頻道 作者:趙效民 用戶評論(0
關(guān)鍵字:計算機(82752)

什么是異構(gòu)計算?可能在很多人看來感覺高深莫測,我們可以先用一個比喻來簡單的解釋一下。比如在做簡單的整數(shù)算數(shù)時,知道算法口訣的人,心算即可,但遇到比較復(fù)雜的算數(shù)問題時,就得需要一個計算器了,但在這個運算過程中,一些簡單的計算可以提前由心算完成再輸入計算器,比如計算“(5+2)÷26”,可能我們直接就輸入“7÷26”了。又或者是完全交給計算器進行計算,但這也需要人腦控制手指進行計算器的數(shù)值輸入,此時你的大腦與計算器就構(gòu)成了完成這道數(shù)學(xué)計算任務(wù)的“異構(gòu)計算系統(tǒng)”。

?

日常生活中最常見的異構(gòu)計算——人腦+計算器

就像你的大腦的結(jié)構(gòu)與計算器完全不一樣,異構(gòu)計算,顧名思義就是在系統(tǒng)內(nèi)參與計算的執(zhí)行單元在指令集架構(gòu)(ISA, Instruction Set Architectures)層面是不同的。最為典型的例子,就是通用計算圖形處理器(GPGPU,General-Purpose computing on Graphics Processing Units),與現(xiàn)場可編程門陣列 (FPGA,F(xiàn)ield-Programmable Gate Array)。從嚴格意義上講,ISA相同,只是處理核心大小同的組合,并不算是異構(gòu)計算,比如英特爾的x86處理器+MIC(集成眾核加速器),以及ARM處理器的big.LITTLE大小核心的混合設(shè)計。

異構(gòu)計算簡史

為什么要用異構(gòu)計算,想想開頭的例子就清楚了,如果人腦就是主流的通用處理器的話,那么異構(gòu)計算就是為這個處理器額外配備的“計算器”,用來執(zhí)行更高復(fù)雜度的計算或應(yīng)用,而這種復(fù)雜度主要指的就是超大規(guī)模的并行處理,對于更擅長串行處理的CPU來說是一個極大的互補。

異構(gòu)計算的概念本身其實并不新鮮,最早可以追溯到30年前(在某些定義中,則是以指令集的處理模式來區(qū)分異構(gòu),但基本上已并非是主流概念),可要談到異構(gòu)計算的真正崛起,則要從2001年用GPU實現(xiàn)通用矩陣計算開始,而標志性事件發(fā)生在2005年,GPU終于在執(zhí)行LU分解(用于解線性方程組)的性能方面戰(zhàn)勝了CPU,從那之后,基于GPU的大規(guī)模并行計算方案開始嶄露頭角。

CPU+GPGPU是目前最為知名的異構(gòu)計算組合,也是第一代異構(gòu)計算的典型代表

?

CPU+GPGPU是目前最為知名的異構(gòu)計算組合,也是第一代異構(gòu)計算的典型代表

2007年,NVIDIA推出了專門用于簡化GPU應(yīng)用編程的統(tǒng)一計算設(shè)備架構(gòu)(CUDA,Compute Unified Device Architecture),它標志著GPU的通用計算應(yīng)用開發(fā)開始走向易用、成熟。時至今日,GPU+CPU的異構(gòu)計算系統(tǒng)已經(jīng)越來越多的出現(xiàn)在高性能計算系統(tǒng)(HPC),大大彌補了CPU在浮點運算方面的能力。

當(dāng)然,在GPGPU之前其實還有多種芯片在向通用計算領(lǐng)域邁進,其中之一就是FPGA,它是最可匹敵于GPGPU的異構(gòu)計算技術(shù)。

?

2012年英特爾發(fā)布的Atom E6x5C嵌入式處理器,就已經(jīng)在單Socket封裝上整合了Altera的FPGA,但這個FPGA的主要任務(wù)不是計算,而是針對不同應(yīng)用場景的I/O定制化與指定的信號處理,很難用于通用場合

FPGA于1985年誕生,很快就開始嘗試在通用計算領(lǐng)域的運用,可以說比GPGPU的出現(xiàn)還要早。GPGPU所擅長的浮點運算,F(xiàn)PGA同樣也在積極參與,但成果遠沒有GPGPU顯著(看看超級計算機全球TOP500的排名配置就知道了),而在整數(shù)型運算方面,雖然FPGA更有優(yōu)勢,可惜那時的計算量除非個別應(yīng)用,普遍并不大,CPU自己就能搞定,所以FPGA加速更多用于細分應(yīng)用市場,應(yīng)用規(guī)模相對來說并不大。不過,隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能、機器學(xué)習(xí)等新興的大規(guī)模數(shù)據(jù)處理需求的不斷涌現(xiàn),現(xiàn)在它的機會要來了,而且底層互聯(lián) 技術(shù)也比當(dāng)前的異構(gòu)系統(tǒng)更為先進,它就是由OpenPOWER CAPI所開辟的新一代異構(gòu)計算平臺,主打CAPI+FPGA的組合。

而在我看來,它們其實是開啟了第二代異構(gòu)計算的時代。

FPGA如何為應(yīng)用加速?

從第一款FPGA芯片于1985年由Xilinx(賽靈思)正式推出至今,已經(jīng)有30年歷史,它是在可編程陣列邏輯(PAL,Programmable Array Logic)、通用陣列邏輯(GAL,Generic Array Logic)、復(fù)雜可編程邏輯器件(CPLD,Complex Programmable Logic Device) 等技術(shù)的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。與CPU不同的是,它的邏輯是硬件可編程的,而CPU則是通過軟件編程來執(zhí)行相應(yīng)的計算,和專用集成電路ASIC,Application Specific Integrated Circuit)相比,它又相當(dāng)于一種半成品的邏輯芯片,ASIC則是針對某類應(yīng)用進行專門的固化設(shè)計,以達到最優(yōu)的性能。

從字面意思上就可以想像得到FPGA是一個可隨意定制內(nèi)部邏輯的陣列,并且可以在用戶現(xiàn)場進行即時編程修改內(nèi)部的硬件邏輯,這一點是CPU和ASIC都無法做到的。要想明白FPGA的原理,的確需要一定的數(shù)字電路基礎(chǔ),在此只做簡要的介紹,以解釋為什么FPGA可以在某些工作上比CPU更為出色。

FPGA的內(nèi)部主要是由用于實現(xiàn)硬件邏輯的邏輯塊(LB,Logic Block)、負責(zé)LB互聯(lián)的內(nèi)部互聯(lián)交換節(jié)點(IS,Interconnection Switch)以及負責(zé)輸入輸出的I/O Block組成,它們都是可編程的,而隨著技術(shù)的進步,F(xiàn)PGA芯片里也越來越多的集成相關(guān)的固定器件與硬核(IP)電路,如乘法器、數(shù)字信號處理器(Digital Signal Processor)等,以進一步加速相關(guān)的運算,并完善相關(guān)的功能(比如I/O)

?

FPGA的內(nèi)部主要是由用于實現(xiàn)硬件邏輯的邏輯塊(LB,Logic Block)、負責(zé)LB互聯(lián)的內(nèi)部互聯(lián)交換節(jié)點(IS,Interconnection Switch)以及負責(zé)輸入輸出的I/O Block組成,它們都是可編程的,而隨著技術(shù)的進步,F(xiàn)PGA芯片里也越來越多的集成相關(guān)的固定器件與硬核(IP)電路,如乘法器、數(shù)字信號處理器(Digital Signal Processor)等,以進一步加速相關(guān)的運算,并完善相關(guān)的功能(比如I/O)

?

LB是FPGA內(nèi)的基本邏輯單元,是FPGA可實現(xiàn)邏輯編程的基礎(chǔ),而在LB中最常用的邏輯編程器件就是查找表(LUT,Look Up Table,又稱直譯表),通過編程它可以實現(xiàn)輸入與輸出的直接對應(yīng)關(guān)系,從而實現(xiàn)了輸入與輸出的硬邏輯,在應(yīng)用時,直接根據(jù)輸入的值,通過LUT給出相應(yīng)的輸出值。輸入的組合根據(jù)輸入端口數(shù)量而定,比如4個端口就可實現(xiàn)16種輸入組合(2的4次方),而一個LB可以包含有多個LUT,實現(xiàn)更復(fù)雜的邏輯組合

?

LB是FPGA內(nèi)的基本邏輯單元,是FPGA可實現(xiàn)邏輯編程的基礎(chǔ),而在LB中最常用的邏輯編程器件就是查找表(LUT,Look Up Table,又稱直譯表),通過編程它可以實現(xiàn)輸入與輸出的直接對應(yīng)關(guān)系,從而實現(xiàn)了輸入與輸出的硬邏輯,在應(yīng)用時,直接根據(jù)輸入的值,通過LUT給出相應(yīng)的輸出值。輸入的組合根據(jù)輸入端口數(shù)量而定,比如4個端口就可實現(xiàn)16種輸入組合(2的4次方),而一個LB可以包含有多個LUT,實現(xiàn)更復(fù)雜的邏輯組合

FPGA的內(nèi)部總體架構(gòu),主要是由實現(xiàn)硬件邏輯的邏輯塊(LB)、負責(zé)LB互聯(lián)的內(nèi)部互聯(lián)交換節(jié)點(IS)以及負責(zé)輸入輸出的I/O Block組成。由于幾乎所有的邏輯電路都是通過不同門電路的組合來實現(xiàn)的,所以FPGA其實就是提供了數(shù)量眾多的門電路,讓用戶用硬件描述語言(HDL,Hardware Description Language)自行設(shè)計它們各自的邏輯狀態(tài)與相互之間的邏輯關(guān)系,從而讓被編程的FPGA變成為某種專用芯片,所以說FPGA是ASIC的半成品,不無道理。

事實上,F(xiàn)PGA在早期的一個重要的用途就是為了更好的設(shè)計ASIC,畢竟等ASIC生產(chǎn)出來再實驗的成本太大,而通過FPGA可以提供進行復(fù)雜的邏輯測試,來驗證ASIC的設(shè)計,并進行反復(fù)的優(yōu)化,當(dāng)邏輯優(yōu)化到相當(dāng)水平后,再以更為直接的邏輯實現(xiàn)方法形成ASIC電路,以達到更好的性能。但隨著FPGA自身的性能、能力與可實現(xiàn)邏輯的復(fù)雜度的不斷提升,已經(jīng)逐漸可以直接代替一些中等規(guī)模的ASIC來使用,并在整體功耗上,保持對CPU的明顯優(yōu)勢。

在國內(nèi)率先開發(fā)CAPI+FPGA加速卡解決方案的恒揚科技股份有限公司,大數(shù)據(jù)采集與分析產(chǎn)品經(jīng)理張軍這樣形容FPGA,“FPGA就是一張白紙,(最終的邏輯電路)想畫什么完全由設(shè)計師決定,而 CPU或者等其他軟件編程的器件就像鉛筆畫素描畫(已經(jīng)有了框架),設(shè)計師是在上面涂色彩。” 事實上,F(xiàn)PGA可以實現(xiàn)怎樣的能力,主要就取決于它所提供的門電路的規(guī)模。

現(xiàn)在主流的FPGA內(nèi)部均采用了SRAM編程方式(SRAM本身就是一個邏輯部件可用于LUT,而SRAM晶體管可用于內(nèi)部互聯(lián)鏈路的選通組合),可以實現(xiàn)快速的硬件編程,并能無限次的重復(fù)使用。雖然SRAM的特性決定了關(guān)機后內(nèi)部邏輯組合就會消失,但基于SRAM的編程在每次開機時都可以從外部的Flash芯片即時加載FPGA配置文章,加載(編程)速度為毫秒級,所以完全不影響使用。在處理性能上,由于FPGA的邏輯實現(xiàn)是通過硬件編程來獲得,所以開發(fā)人員可以將指定的算法邏輯,直接以FPGA內(nèi)部不同門電路的硬邏輯組合來實現(xiàn),而且現(xiàn)在越來越多的FPGA內(nèi)部都增加了固化的乘法器、DSP等處理單元,進一步加快了相關(guān)運算的處理速度。

從某種角度上說,F(xiàn)PGA內(nèi)部其實并沒有所謂的“計算”,最終結(jié)果幾乎是“電路直給”,因此執(zhí)行效率就大幅提高。當(dāng)然,由于采用的是通用的門電路組合,在某些效率上FPGA仍然不及ASIC極致,但是可重復(fù)更新內(nèi)部邏輯的靈活性,再加上在固定算法上遠高于CPU的效率,讓FPGA在應(yīng)用領(lǐng)域迅速得到重視。然而需要指出的是,用FPGA的門電路實現(xiàn)整數(shù)運算邏輯,要比實現(xiàn)浮點運算邏輯簡單得多,所以FPGA的加速優(yōu)勢也更多的體現(xiàn)在整數(shù)性運算,而整數(shù)運算正是當(dāng)前主流企業(yè)級應(yīng)用的主要運算方式,而這也是為什么GPGPU更多的用于浮點運算領(lǐng)域(如HPC),F(xiàn)PGA更多用于整數(shù)加速領(lǐng)域的一大原因。

賽靈思總結(jié)的,目前FPGA相對于主流的x86處理器,在某些領(lǐng)域里的加速比,以及目前數(shù)據(jù)中心里可用到FPGA加速的領(lǐng)域,可以說80-90%的大規(guī)模并行密集應(yīng)用都可以被FPGA加速,尤其是以整數(shù)應(yīng)用為主。當(dāng)然,并不是說FPGA不能用于浮點運算,但相對來說,整數(shù)型加速對于FPGA更容易實現(xiàn),相對于GPGPU也有更明顯的優(yōu)勢。另外,請注意很多IT基礎(chǔ)設(shè)施的底層信息處理方面,如安全、加密、網(wǎng)絡(luò)加速、鍵值存儲也在FPGA的應(yīng)用范疇之內(nèi),其“實用性”顯然比GPGPU更為廣泛

?

賽靈思總結(jié)的,目前FPGA相對于主流的x86處理器,在某些領(lǐng)域里的加速比,以及目前數(shù)據(jù)中心里可用到FPGA加速的領(lǐng)域,可以說80-90%的大規(guī)模并行密集應(yīng)用都可以被FPGA加速,尤其是以整數(shù)應(yīng)用為主。當(dāng)然,并不是說FPGA不能用于浮點運算,但相對來說,整數(shù)型加速對于FPGA更容易實現(xiàn),相對于GPGPU也有更明顯的優(yōu)勢。另外,請注意很多IT基礎(chǔ)設(shè)施的底層信息處理方面,如安全、加密、網(wǎng)絡(luò)加速、鍵值存儲也在FPGA的應(yīng)用范疇之內(nèi),其“實用性”顯然比GPGPU更為廣泛

但是,傳統(tǒng)的FPGA加速設(shè)計,均是以I/O總線與CPU平臺相連,比如常見的PCIe,在系統(tǒng)內(nèi)部以一個I/O設(shè)備存在,所以在實際的應(yīng)用中,對于應(yīng)用開發(fā)者本身來說仍然有較大的難度。這次CAPI的出現(xiàn),則從根本上解決了這個難題,從而以FPGA的加速優(yōu)勢得以獲得更充分的發(fā)揮。

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

( 發(fā)表人:郭婷 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?