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