亚洲天堂网_国产中出_日韩激情网_97se.com_中国亚洲老少妇色视频

FPGA為什么比CPU和GPU快

發布時間:2018/3/16 瀏覽數:2927

    CPU和GPU都屬于馮·諾依曼結構,指令譯碼執行,共享內存。FPGA之所以比CPU、GPU更快,本質上是因為其無指令,無共享內存的體系結構所決定的。

    馮氏結構中,由于執行單元可能執行任意指令,就需要有指令存儲器、譯碼器、各種指令的運算器、分支跳轉處理邏輯。而FPGA的每個邏輯單元的功能在重編程時就已經確定,不需要指令。

馮氏結構中使用內存有兩種作用:①保存狀態。②執行單元間的通信。

1)保存狀態:FPGA中的寄存器和片上內存(BRAM)是屬于各自的控制邏輯的,無需不必要的仲裁和緩存。

2)通信需求:FPGA每個邏輯單元與周圍邏輯單元的連接在重編程時就已經確定了,并不需要通過共享內存來通信。

計算密集型任務中:

在數據中心,FPGA相比GPU的核心優勢在于延遲。FPGA為什么比GPU的延遲低很多?本質上是體系結構的區別。FPGA同時擁有流水線并行和數據并行,而GPU幾乎只有數據并行(流水線深度受限)。

處理一個數據包有10個步驟,FPGA可以搭建一個10級流水線,流水線的不同級在處理不同的數據包,每個數據包流經10級之后處理完成。每個處理完成的數據包可以馬上輸出。而GPU的數據并行方法是做10個計算單元,每個計算單元也在處理不同的數據包,但是所有的計算單元必須按照統一的步調,做相同的事情(SIMD)。這就要求10個數據包必須同進同出。當任務是逐個而非成批到達的時候,流水線并行比數據并行可實現更低的延遲。因此對流水式計算的任務,FPGA比GPU天生有延遲方面的優勢。

ASIC在吞吐量、延遲、功耗單個方面都是最優秀的。但是其研發成本高,周期長。FPGA的靈活性可以保護資產。數據中心是租給不同租戶使用的。有的機器上有神經網絡加速卡,有的有bing搜索加速卡,有的有網絡虛擬加速卡,任務的調度和運維會很麻煩。使用FPGA可以保持數據中心的同構性。

通信密集型任務中,FPGA相比GPU、CPU的優勢更大。

①吞吐量:FPGA可以直接接上40Gbps或者100Gbps的網線,以線速處理任意大小的數據包;而CPU則需要網卡把數據包接收過來;GPU也可以高性能處理數據包,但GPU沒有網口,同樣需要網卡,這樣吞吐量受到網卡和(或)者CPU的限制。

②延遲:網卡把數據傳給CPU,CPU處理后傳給網卡,再加上系統中的時鐘中斷和任務調度增加了延遲的不穩定性。

綜上所述,在數據中心里 FPGA 的主要優勢是穩定又極低的延遲,適用于流式的計算密集型任務和通信密集型任務。

FPGA 和 GPU 最大的區別在于體系結構,FPGA 更適合做需要低延遲的流式處理,GPU 更適合做大批量同構數據的處理。

成也蕭何,敗也蕭何。缺少指令同時是 FPGA 的優勢和軟肋。每做一點不同的事情,就要占用一定的 FPGA 邏輯資源。如果要做的事情復雜、重復性不強,就會占用大量的邏輯資源,其中的大部分處于閑置狀態。這時就不如用馮·諾依曼結構的處理器。

FPGA 和 CPU 協同工作,局部性和重復性強的歸 FPGA,復雜的歸 CPU。

Copyright 2017-2025 © 嘉興麥特萊博軟件開發工作室
  • 網站備案號:浙ICP備18008591號-1