張冬:OpenPOWER CAPI為什么這么快_第1頁
張冬:OpenPOWER CAPI為什么這么快_第2頁
張冬:OpenPOWER CAPI為什么這么快_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

張冬:OpenPOWERCAPI為什么這么快?在第七屆云計算大會的PMC技術專場上演講嘉賓連續(xù)進行了七場技術演講,其中,PMC數(shù)據中心存儲架構師張冬沒有過多談論市場和行業(yè)問題,而是從底層技術出發(fā),對OpenPowerCAPI進行了分析和闡述,為我們介紹了CAPI為什么能這么快。之前,POWERCPU只是IBM在做小型機的時候使用,OpenPOWER開放后,成立了OpenPower基金會,基金會大部分成員都非常專注于CAPI(相干加速器處理器接口)上的利用,比如將外置的網絡、GPU、閃存等設備通過CAPI直接與CPU相連接,并在此基礎上根據不同的主流應用場景進行開放的、定制化的系統(tǒng)設計,PMC除了關注這些外,還關注CAPI與NVMe進行協(xié)作的問題。傳統(tǒng)架構的缺點和瓶頸

現(xiàn)在無論是2路、4路、8路還是32路服務器,他們架構中的CPU之間的互聯(lián)有的是直聯(lián),有的通過NC(NC就類似以太網絡里面的網橋)。核心之間要傳輸數(shù)據方式中,最高效的是共享內存,代碼里寫死。最低效的方法就是走網絡,封裝一堆的包出去,發(fā)送一個數(shù)據給遠端的某個線程,調用一堆接口,走到協(xié)議棧,再到設備驅動,然后到網絡,接著收包解析,這個過程非常慢。所以超級計算機沒法做到CPU之間進行高速網絡共享內存因為成本太高,沒法將幾萬個CPU連接起來,只能走網絡了,這也是松耦合系統(tǒng)的一個妥協(xié)。沒有CAPI的FPGA為什么也不太行

面對現(xiàn)在大數(shù)據分析、模式匹配、熱點識別等,要求非常大的計算量,傳統(tǒng)CPU出現(xiàn)瓶頸。普通的CPU其實也能計算,但是計算速度太慢,比如,只有64位寬來處理1GB數(shù)據,那便需要循環(huán)拆分N次才能算完,普通的CPU無法迅速處理這么大的運算量。在多路CPU系統(tǒng)中,線程看到的都是單一的虛擬地址空間,這個虛擬地址空間會被操作系統(tǒng)映射到真實的物理空間里,但是所有的CPU看到都是同一份物理地址空間。所有CPU看到單一物理地址空間;所有Threads看到單一虛擬地址空間;PCIE物理地址空間映射到CPU物理地址空間;CPU物理地址空間也映射到PCIE物理地址空間。有人想到硬件加速,做法就是把某個專業(yè)計算在電路層面展開,展開成更寬的位寬,更多的并行計算單元,去除一些不必要的緩存優(yōu)化和流水線優(yōu)化等,其實這就是專用運算芯片所做的,F(xiàn)PGA(Field-ProgrammableGateArray,即現(xiàn)場可編程門陣列)是現(xiàn)場可編程的專用芯片上述就是所謂的硬加速。在CAPI之前的FPGA怎么接入系統(tǒng)使用的呢?它是把FPGA做到一塊PCIe卡里,F(xiàn)PGA通過CPU的PCIe控制器訪問到主機內存空間。PCIe和CPU各自有各自的地址空間,CPU不能直接訪問PCIe的地址,要先訪問自己的地址,PCIE物理地址空間映射到CPU物理地址空間,反之CPU物理地址空間也需要映射到PCIE物理地址空間,這是個很費勁的過程。在CAPI之前的FPGA怎么接入系統(tǒng)使用的呢?它是把FPGA做到一塊PCIe卡里,F(xiàn)PGA通過CPU的PCIe控制器訪問到主機內存空間。PCIe和CPU各自有各自的地址空間,CPU不能直接訪問PCIe的地址,要先訪問自己的地址,PCIE物理地址空間映射到CPU物理地址空間,反之CPU物理地址空間也需要映射到PCIE物理地址空間,這是個很費勁的過程。數(shù)據出了ALU,面對復雜的路由網絡,目的地址為內存地址,但是其相對外部網絡的復雜性在于,目標的位置是不固定的,還可能有多份拷貝。NeedCoherency!硬件透明搞定CacheCoherency。CC不負責多線程并發(fā)訪問cacheline時的互斥,互斥需要程序顯式發(fā)出lock,底層硬件會鎖住總線訪問周期。如圖所示是個四核CPU,每個CPU內部還有很多東西,每一個CPU的每個核心都有各自的緩存控制器,三級緩存控制器,每個CPU還包含內存控制器,PCIe控制器,QPI控制器(互聯(lián)CPU相關),還有緩存一致性的控制器,他們全都接入一個高速的總線里面。多個線程看到的數(shù)據應該是時刻一致的,需要廣播許多信息,這就是CacheCoherency,CacheCoherencyAgent負責把消息推送出去以及接受其他CPU發(fā)出的探尋。多CPU之間廣播量非常大,所以需要一個目錄來記錄本地的核心里面都有哪些緩存地址被緩存下來了。其他的CPU如果發(fā)廣播來探尋,本地直接把目錄查一下,如果沒有命中緩存就直接不再往后端核心緩存控制器發(fā)消息,這樣可以提升性能。所以說CC(CacheCoherency)很重要的,要確保線程看到同樣的東西,同一個時刻,這叫實時一致性,且不允許異步。但是它不負責兩個線程,如果互相都在寫這

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論