地快引言:最近在FAST開(kāi)源項目群中對嗎還2016 SIGCOMM論文ClickNP進行了讨論市內,我們(men)總結了五個問題。我們(men)與ClickN刀師P的第一作者李博傑進行了溝通(tōng)和讨論,在此對博傑表示感謝。下面把北些關于ClickNP的五個問題和博傑的回複向現區大(dà)家(jiā)分享一下,希望大(dà)家(jiā)能有所收獲,并多多看如發表意見。
問題懂廠一:FPGA在數據中心交換中大(dà)有可為(wèi)。随着多核處理器(q訊車ì)能力提升(特别是核數提升),數據中心端系統連接網絡的第一跳交換機已經逐的作漸由外部TOR交換機遷移到服務器(qì)内部的OVS交換機章不,一些複雜的網絡處理功能也由TOR上實現轉移到OVS上實現。由于OVS科湖性能受限,在網卡上對交換進行加速是趨勢。Cli得是ckNP研究的點十分關鍵,實現的各種網絡功能對于第一跳交換機來說站醫(shuō)也十分關鍵,因此研究的意義很重要。而數據中心網絡中協議發展很快,熱生使用FPGA來實現對這些協議的處理十分合适,通(tōng鄉匠)過FPGA邏輯的重構可以支持各種新的,甚至是未來出現的協去錯議。
另討微外,随着OVS/FPGA成為(wèi)第海訊一跳交換機,因此TOR交換機已經逐漸變成彙聚交換機的角色,對TOR藍少交換機的編程(如(rú)利用p4)意義可能已經不(bù)大藍妹(dà)。因此個人感覺類似Barefoot的可編程芯片在討大數據中心中不(bù)一定有很好(hǎo)的發展理什前景,因為(wèi)TOR和其他(tā)慢老彙聚交換機以及核心交換機隻需要簡單和快速即可。
&nbs術但p; 博傑回複:我和你們(men)的觀點一緻,了你微軟的策略也是在端上而非網絡裡實現網絡功能。網絡就做三層路由,因為(wèi)微聽商軟跟Intel是同盟嘛。然而其他(tā)公司不(bù)一定員體這麼想,比如(rú)Google跟Cisco是同盟件門,他(tā)們(men)比較想把複雜性放在網絡裡面,這時(sh兵資í)可編程交換機就有用了。在現實中,這兩種方案我海為認為(wèi)不(bù)是對立的,比如(rú)微軟數據中心在端慢熱上用FPGA做NFV,又在網絡裡用可編程交換機(Azure cloud swi章秒tch,Broadcom trident遠用 II)做靈活的Scheduling和負載均衡器(qì身了)的Data path offloading。
問題二:H窗業LS/OpenCL面向的用戶群體應該是各種應用開(k裡謝āi)發人員,用于面向應用算法加速,(如(rú)神經網絡算法處理雨遠加速,基因計算加速等等)。而這些完全人沒有也錢議不(bù)需要掌握底層FPGA結構和編程我間的知識。而網絡設備研制是網絡設備制造商專業開(kāi)發人員負責,因此應該使用日坐Verilog等寄存器(qì)傳輸級的硬件描述語言開短湖(kāi)發,以追求更高的性能和更低(dī)的功耗。論文用HLS/O風男penCL來設計幾乎标準的,功能變化頻率很低(dī)的網秒廠絡設備,應該是沒有必要,現實中也是沒有需求的。
&通站nbsp; 博傑回複:在傳統數據中心網絡中也許網絡功能相對畫腦固定,但在雲數據中心中網絡功能經常變化,這也是各大(dà)雲服務商老器使用虛拟化網絡功能的原因。比如(rú)流表的Match和Actio女知n、壓縮算法、負載均衡策略、數據包調度策略、訊明RoCE等傳輸協議,都是不(bù)斷演進的。我們(me白東n)使用FPGA也是為(wèi)了兼具靈活外是性和性能,解決CPU做網絡功能的性能瓶頸。話少
雜物您說(shuō)的用HLS/OpenCL沒有金店必要,這一點微軟産品部分也是認同的。因此C西化lickNP目前隻是研究部門在用。産品部門有專業的硬件工(gōng)程師寫分長Verilog,部署規模那麼大(dà),用Verilog寫出來的代碼區慢資(zī)源占用明顯少于HLS生成的(ClickNP論文中也在輛有比較),因此他(tā)們(men)選擇了Verilog路線。
林我
&nb物如sp;問題三:關于性能評測的方法有些看不(bù)懂(dǒng樂農),例如(rú)表2中,LPM_tree邏輯最大(dà)頻率為(w了又èi)221.8MHz,最大(dà)的性能也是221.8MPP機舊S,而Hash_TCAM的最大(dà)頻率和性能值也是一緻的,這說(shuō)如你明這不(bù)是一個測試結果,而是人為(wèi)的認為(w個高èi)通(tōng)過流水就可以讓每個時(shí)鐘(房山zhōng)周期出一個結果?這種估計太樂觀了吧。例會數如(rú)一次LPM查表需要n次訪存,必須完全實現頻門n級流水線才能現實中是很難實現的。
&nb嗎廠sp; 博傑回複:ClickNP中所有的Element都是完全多自流水的,用HLS的說(shuō)法是II=1。這也是HLS相做湖比Verilog編程的一種優勢。Verilo外來g寫流水線費時(shí)費力,而且不(bù)知道能把多少個組音服合邏輯運算合并到一個時(shí)鐘(zhōng)身在周期中。HLS工(gōng)具則可以根據邏輯延遲估算一個時議雜(shí)鐘(zhōng)周期能做多少事,自動排好(hǎo)流水公廠,所生成的Verilog代碼不(bù)僅不(b請樹ù)會(huì)浪費硬件資(zī)源,而且能在流水慢站深度(延遲)和時(shí)鐘(zhōng)頻率間厭城取得(de)平衡,更不(bù)用說(shuō)開(kāi)發效率的差别了。
司麗
問題四分唱:作者使用的BRAM TCAM的實現,應該是把FPGA的邏輯單元用作64*年海1的寄存器(qì)使用,難道不(bù)是用Verilog等寄存器門哥(qì)傳輸級語言編程+相關的綜合約束實現的,也是玩你由HLS綜合實現的嗎?HLS這麼強,這個有點颠覆我的認識了廠笑。
 近件; 博傑回複:BRAM TCAM的實現是Xilinx的一篇論愛見文裡提出的,基本思路是把一個較長(cháng)的匹配拆分家習成多個較短(duǎn)的匹配,然後對每個n位的短(duǎn金大)匹配預先計算出所有可能(2的n次方),直接匠了查表。
&n可們bsp; ClickNP論文裡提到的E秒我lement都是用C語言編寫,HLS工(gōng)具編譯出來的。懂醫我承認在HLS裡面實現涉及到Memory的處理比較麻煩,師厭因此訪存有延遲,HLS工(gōng)具隻會多章(huì)根據最差的可能安排Pipeline紙信,然而硬件工(gōng)程師可以合理安排這些訪存,這使得(d司金e)它們(men)之間不(bù)存在沖突。解決訪存依賴就是編譯器(qì)看些的一種優化。當然還有其他(tā)類型的手工(gōng)優外匠化,但沒有寫進論文,因為(wèi)這些優化是針對HLS編譯器(qì)特性的,而有黑不(bù)具有普适性。
機農 問題五:作者在今年SIG動頻COMM綜述和ClickNP論文撰寫體會(huì)中,着重提出的軟件Elem年業ent和硬件Element協同處理的問題費劇在論文中描述不(bù)充分?是篇幅原因?個人感覺這個應該寫詳細她問一些,而4.2.1中對訪存依賴的描述應該不(bù)是很重要(抱歉商森,可能沒有理解作者用意),因為(wèi)對于寄存器(qì)傳店唱輸級的編程來說(shuō),這個問題不(bù外訊)存在,隻有使用HLS才有這個問題,而個人感覺HLS不(暗水bù)是NF實現應該使用的方法(第二點已經指出)。
&n樂看bsp; 博傑回複:在軟硬件協同處理方面我們(men)的例如鐘子(zǐ)确實不(bù)太充分,隻有一個Pack年空etCapture和一個L4 Loadbalancer。不(bù現技)過這一部分沒有太多東西可說(shuō),就花日是把複雜的部分通(tōng)過PCIE chann短信el發到CPU,處理之後再通(tōng)過得厭PCIE channel發回去。編譯器(qì)并不(bù)能自動做外老軟硬件之間的切割。
PS:女子歡迎大(dà)家(jiā)關注FAST公衆号,并對我們(體風men)提出的話題發表更多的觀點,同時(shí)我們(men)會(huì)友知向大(dà)家(jiā)推送FAST的最新成果和林如相關資(zī)料。
&n嗎長bsp; 我們(men)創建了一個FAST項目交流群,歡迎大做歌(dà)家(jiā)加入和衆多老師專家(jiā動黑)一起讨論網絡交換方面的問題,下面是FAST項目畫吧交流群的二維碼。