chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

?

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

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

異構(gòu)計(jì)算簡(jiǎn)史

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

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

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

?

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

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

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

?

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

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

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

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ǔ)上進(jìn)一步發(fā)展的產(chǎn)物。與CPU不同的是,它的邏輯是硬件可編程的,而CPU則是通過軟件編程來執(zhí)行相應(yīng)的計(jì)算,和專用集成電路ASIC,Application Specific Integrated Circuit)相比,它又相當(dāng)于一種半成品的邏輯芯片,ASIC則是針對(duì)某類應(yīng)用進(jìn)行專門的固化設(shè)計(jì),以達(dá)到最優(yōu)的性能。

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

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

?

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

?

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

?

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

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

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

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

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

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

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

?

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

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

非常好我支持^.^

(1) 100%

不好我反對(duì)

(0) 0%

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

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

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

      ?