OpenPOWER CAPI簡介 - 給CPU直接開掛!從OpenPOWER的CAPI+FPGA看第二代異構(gòu)計(jì)算
OpenPOWER CAPI簡介
OpenPOWER是以IBM、NVIDIA、Mellanox、Google、TYAN為首的5家公司于2013年8月發(fā)起的一個(gè)技術(shù)推廣聯(lián)盟,截止到2015年6月,OpenPOWER會(huì)員數(shù)量超過了130家,來自于中國的廠商就超過了20家。
OpenPOWER所推廣的技術(shù)就是基于IBM POWER8及以后的處理器與平臺(tái)技術(shù),這其中POWER8處理器所具備的一致性加速處理器接口(CAPI,Coherent Accelerator Processor Interface)就是一個(gè)重要的技術(shù)點(diǎn),也正是它讓FPGA迅速成為了新一代異構(gòu)計(jì)算的亮點(diǎn)。
?
CAPI的基本原理就是通過在POWER處理器(從POWER8開始)內(nèi)部設(shè)置一個(gè)一致性加速處理器代理(CAPP,Coherent Accelerator Processor Proxy),而在外置的加速卡上,則內(nèi)置POWER處理器服務(wù)層(PSL,POWER Service Layer),其與CAPP配合,為加速卡在CPU上打通了一個(gè)“后門”。加速卡(PSL)與CPU(CAPP)之間采用成熟的PCIe總線+CAPI協(xié)議進(jìn)行數(shù)據(jù)傳輸,但不用走復(fù)雜的PCIe I/O模式,并獲得了與CPU對(duì)等訪問虛擬內(nèi)存地址的能力。目前POWER8內(nèi)部共有兩個(gè)CAPP,單CPU可外接兩個(gè)CAPI加速卡
CAPI最為關(guān)鍵的重點(diǎn)就在于一致性(Coherent),它是能實(shí)現(xiàn)CAPI外設(shè)與CPU對(duì)等訪問內(nèi)存的關(guān)鍵,否則在應(yīng)用編程上仍然要有較大的調(diào)整。而之所以能實(shí)現(xiàn)這一設(shè)計(jì),是因?yàn)樵贗BM提供的PSL硬核模塊(可以集成于合作伙伴的芯片,或?qū)懭隖PGA)中包含有256KB的緩存,而在CPU內(nèi)部,CAPP則負(fù)責(zé)維護(hù)CAPI一側(cè)的緩存行目錄,以保證CPU級(jí)的緩存一致性(CC,Cache Coherency )。這就相當(dāng)于在CPU內(nèi)部額外增加了一個(gè)特殊的處理核心(相當(dāng)于給CPU開了一個(gè)外掛),其對(duì)于內(nèi)存的訪問與其他“正常的”CPU核心是對(duì)等的,納入到統(tǒng)一的CC范疇,這就與傳統(tǒng)的通過PCIe插卡實(shí)現(xiàn)加速的方式有了本質(zhì)的不同。
?
在具體的FPGA加速應(yīng)用中,應(yīng)用透過CAPP與PSL的連接,掛載加速卡指向已經(jīng)設(shè)置好的內(nèi)存數(shù)據(jù),PSL與CAPP一起協(xié)同,讓FPGA里的加速功能單元(AFU,Accelerator Functional Unit)可以與CPU實(shí)現(xiàn)對(duì)等訪問——可直接看到應(yīng)用所指向的虛擬內(nèi)存地址,并通過PCIe總線與應(yīng)用溝通
在CAPI+FPGA的應(yīng)用中,用戶先將相關(guān)應(yīng)用的加速算法,以HDL(目前主要是Verilog HDL和VHDL)寫入FPGA,構(gòu)成加速功能單元(AFU),它就是上文提到的那個(gè)“外掛的特殊CPU核心”。然后再通過PSL與CAPP的協(xié)同,將AFU“嵌入”到CPU里,被應(yīng)用發(fā)現(xiàn)并直接調(diào)用。由于緩存一致性的保證,AFU可以直接讀寫應(yīng)用所管理的虛擬內(nèi)存空間,以一種嵌入式的外掛處理模式實(shí)現(xiàn)應(yīng)用的加速。從某種意義上說,“外掛”的AFU的作用有點(diǎn)像CPU的加速指令集(比如SSE、MMX等),但可靈活變換且效率明顯更高。
?
在非CAPI加速體系中,傳統(tǒng)的加速卡是以一個(gè)I/O設(shè)備存在的,這必然需要虛擬地址的重新影射,從而在內(nèi)存中會(huì)生成3個(gè)數(shù)據(jù)副本,并需要大量的驅(qū)動(dòng)訪問指令,后果就是延遲的增加
?
?
在CAPI體系下,CAPI加速器與CPU實(shí)現(xiàn)了對(duì)等訪問,共享虛擬地址,數(shù)據(jù)無需轉(zhuǎn)手,直接在加速器與應(yīng)用之間進(jìn)行溝通。在實(shí)際使用時(shí)也很簡單,CAPI加速卡可以安裝在任何提供PCIe3.0接口的OpenPOWER Linux服務(wù)器上。應(yīng)用軟件只需要調(diào)用一個(gè)CAPI函數(shù),即可直接利用CAPI加速,而在對(duì)Linux更新驅(qū)動(dòng)后,即可直接調(diào)用原有IM/GM等兼容接口函數(shù)
?
?
由于CAPI接口并非傳統(tǒng)意義上的I/O驅(qū)動(dòng)模式,直接走硬件代理與CPU溝通,所以從應(yīng)用的全局視角,數(shù)據(jù)的訪問步驟明顯降低(FPGA與CPU對(duì)等訪問),讓數(shù)據(jù)訪問效率大幅度提高,總延遲約是傳統(tǒng)模式的1/36,同時(shí)這種應(yīng)用加速設(shè)計(jì),對(duì)于應(yīng)用的編程修改影響最小
?
?
一個(gè)典型的CAPI加速器,從準(zhǔn)備加速到完成加速的溝通流程相當(dāng)?shù)暮啙嵜髁耍梢曰究偨Y(jié)為——應(yīng)用:CAPI加速器,我看到你了;CAPI加速器:應(yīng)用,我已經(jīng)為你準(zhǔn)備好了;應(yīng)用:我要處理的數(shù)據(jù)在內(nèi)存地址AddrX處,剩下的工作就交給你了;CAPI加速器:好的,沒問題;(開始循環(huán)加速)……CAPI加速器:報(bào)告應(yīng)用,已經(jīng)處理完畢;應(yīng)用:好的,你先休息吧,有事我再叫你
從以上圖片可以看出,由于CC特性的加入,讓CAPI加速卡避開了傳統(tǒng)I/O設(shè)備的驅(qū)動(dòng)模式,直接以“硬件代理”的方式嵌入應(yīng)用的執(zhí)行,因此在總體的命令開銷方面有明顯的減少,這直接帶來的效果就是延遲大幅降低——總延遲約只有傳統(tǒng)加速模式的1/36,并且?guī)砹烁蟮暮锰帯捎跊]有了傳統(tǒng)I/O設(shè)備層,應(yīng)用平臺(tái)為了適配加速器的編程修改非常小,應(yīng)用開發(fā)者完全可以將應(yīng)用做成自適應(yīng)模式,在非CAPI平臺(tái)上采用傳統(tǒng)的處理模式,當(dāng)發(fā)現(xiàn)系統(tǒng)有CAPI加速器則自動(dòng)打開CAPI模式,這顯然非常有利于CPAI加速模式在相關(guān)應(yīng)用領(lǐng)域里的普及。
在具體的應(yīng)用環(huán)境中,目前CAPI還不能用于虛擬化平臺(tái)(比如OpenKVM),但完全支持基于Linux核心的Docker容器平臺(tái)(現(xiàn)在的CAPI全面支持Ubuntu 14.10)。按照IBM未來的發(fā)展規(guī)劃,新一代CAPI正在路上,它將基于PCIe 4.0規(guī)格(也可能會(huì)采用新的總線接口),并稍加改動(dòng),連接帶寬較PCIe 4.0稍微提高,以抵銷CAPI協(xié)議的開銷,從而讓加速器可以充分利用到PCIe的帶寬。另外,CAPI的虛擬化(多個(gè)應(yīng)用可以分時(shí)復(fù)用加速器)也將是必然的,并且單一PSL未來可以掛載多個(gè)AFU,在FPGA內(nèi)部可以同時(shí)具備4個(gè)AFU,PSL分別為它們保存各自的虛擬空間地址,并與CAPP一起保持緩存一致性,這就相當(dāng)于給系統(tǒng)同時(shí)配備了4個(gè)外掛核心。在操作系統(tǒng)方面,未來還將支持AIX、RedHat等OS,這將意味著除了PowerLinux平臺(tái),傳統(tǒng)的AIX POWER服務(wù)器上的應(yīng)用也將能享受到CAPI加速。
CAPI+FPGA應(yīng)用實(shí)戰(zhàn)
借助于OpenPOWER聯(lián)盟,很多廠商都投入到了CAPI+FPGA的加速卡設(shè)計(jì)中,中國的恒揚(yáng)科技股份有限公司(Semptian)即是其中之一,其最新推出的Semptian NSA-120是一款基于XILINX Kintex UltraScale FPGA的CAPI PCIe板卡,采用PCIE x8 Gen3 接口規(guī)格,支持兩路DDR3 1600 SODIMM(容量為2x8GB),而首先投入的AFU,是針對(duì)大數(shù)據(jù)存儲(chǔ)中常用的糾刪碼(Erasure Code)的編/解碼加速。
?
糾刪碼是應(yīng)對(duì)降低海量分布式存儲(chǔ)占用空間的常用手段,相對(duì)于傳統(tǒng)的3復(fù)本冗余的存儲(chǔ)模式(相當(dāng)于3x容量占用),糾刪碼冗余的存儲(chǔ)容量只相當(dāng)于原數(shù)據(jù)量的1.4x,降低了超過50%的存儲(chǔ)空間需求,但在大規(guī)模數(shù)據(jù)讀寫過程中,糾刪碼的實(shí)時(shí)編/解碼運(yùn)算對(duì)于服務(wù)器CPU來說將是一個(gè)比較大的占用,在分布式應(yīng)用架構(gòu)中,這意味著將影響應(yīng)用本身的性能
?
?
通過Semptian NSA-120的加速,獲得了明顯的糾刪碼的性能提升,如果再多加一塊Semptian NSA-120(雙CPU配置時(shí)最多可插4塊),性能還會(huì)進(jìn)一步提高
?
?
為了進(jìn)一步方便ISV與AFU的開發(fā)者,恒揚(yáng)科技專門提供了NPL(NSA Platform Layer),即FPGA基礎(chǔ)平臺(tái),幫助AFU開發(fā)者硬件無感知的開發(fā)AFU算法單元
根據(jù)恒揚(yáng)科技大數(shù)據(jù)采集與分析產(chǎn)品經(jīng)理張軍的介紹,目前FPGA的編程環(huán)境已經(jīng)有了很大的改善,這其中OpenCL開發(fā)平臺(tái)的發(fā)展直到了重要的推進(jìn)作用。雖然現(xiàn)在仍然很初級(jí),但對(duì)于傳統(tǒng)的應(yīng)用開發(fā)者來說,借助OpenCL開放的標(biāo)準(zhǔn)化平臺(tái),已經(jīng)可以相對(duì)較為容易的上手,而在底層編程部分,仍然會(huì)通過FPGA廠商的專用工具進(jìn)行HDL編譯,再寫入FPGA。此外,F(xiàn)PGA廠商也在像NVIDIA那樣,提供自己的集成開發(fā)環(huán)境(IDE),它的作用相當(dāng)于CUDA之于GPGPU,為開發(fā)者提供更完整的工具包,加速FPGA的編程。比如賽靈思的 SDAccel開發(fā)環(huán)境,就可為賽靈思的FPGA加速OpenCL、C和C++內(nèi)核的開發(fā)與部署。相應(yīng)的CAPI-FPGA加速卡廠商,也會(huì)提供底層平臺(tái),方便開發(fā)者基于自己的板卡進(jìn)行AFU開發(fā)。比如恒揚(yáng)科技就提供了NPL和相關(guān)的SDK,可以讓開發(fā)者專心于AFU的算法實(shí)現(xiàn)。
另一個(gè)典型的CAPI加速實(shí)例則是外置存儲(chǔ)加速,IBM基于CAPI控制卡+自己的FlashSystem全閃存陣列,提供了一套NoSQL數(shù)據(jù)引擎,由于CAPI將傳統(tǒng)的PCIe控制卡的I/O開銷省去,大大降低了系統(tǒng)延遲,成為KVS數(shù)據(jù)平臺(tái)更好的選擇。
?
IBM基于支持CAPI+全閃存陣列而推出NoSQL數(shù)據(jù)加速引擎,配套全閃存陣列可以通過CAPI加速卡直接訪問應(yīng)用內(nèi)存空間,大大降低了數(shù)據(jù)傳輸?shù)难舆t,非常有利于單筆數(shù)據(jù)訪問量少,但I(xiàn)O密集的鍵值存儲(chǔ)(KVS,Key-Value Store)平臺(tái)
?
?
通過與非CAPI控制卡連接的性能相對(duì)比,可以看出由于CAPI連接并不是傳統(tǒng)的I/O驅(qū)動(dòng)模式,而近似于CPU直聯(lián),所以在IOPS性能與延遲性能上較傳統(tǒng)的PCIe控制卡有明顯的提升,不過如果是大數(shù)據(jù)塊傳輸,CAPI控制卡在總帶寬上可能會(huì)有一定劣勢(shì),但到下一代CAPI這將不再是問題
- 第 1 頁:給CPU直接開掛!從OpenPOWER的CAPI+FPGA看第二代異構(gòu)計(jì)算
- 第 2 頁:OpenPOWER CAPI簡介
- 第 3 頁:第二代異構(gòu)計(jì)算與未來應(yīng)用愿景
本文導(dǎo)航
非常好我支持^.^
(1) 100%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [電子說] Blackwell GB100能否在超級(jí)計(jì)算機(jī)和AI市場(chǎng)保持領(lǐng)先優(yōu)勢(shì)? 2023-10-24
- [電子說] 3線串行數(shù)據(jù)通訊EEPROM的使用 2023-10-23
- [電子說] 浩辰軟件深耕CAD領(lǐng)域 致力于成為行業(yè)標(biāo)桿企業(yè) 2023-10-23
- [電子說] SymPy:四行代碼秒解微積分 2023-10-21
- [電子說] 強(qiáng)固型智慧工廠解決方案:BOXER-6406-AND 2023-10-21
- [電子說] 飛秒激光器在醫(yī)學(xué)上的應(yīng)用 2023-10-21
- [電子說] TCP/IP協(xié)議和OPC協(xié)議的區(qū)別 2023-10-20
- [電子說] 機(jī)器視覺系統(tǒng)的基本原理 機(jī)器視覺技術(shù)的發(fā)展現(xiàn)狀和應(yīng)用 2023-10-19
( 發(fā)表人:郭婷 )