FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,F(xiàn)PGA 的基本結構包括可編程輸入輸出單元,可配置邏輯塊,數(shù)字時鐘管理模塊等。為增進大家對FPGA的認識,本文將對FPGA以及FPGA的應用予以介紹。如果你對FPGA或是對本文內(nèi)容具有興趣,不妨繼續(xù)往下閱讀哦。
一、FPGA
FPGA和GPU內(nèi)都有大量的計算單元,因此它們的計算能力都很強。在進行神經(jīng)網(wǎng)絡運算的時候,兩者的速度會比CPU快很多。但是GPU由于架構固定,硬件原生支持的指令也就固定了,而FPGA則是可編程的。其可編程性是關鍵,因為它讓軟件與終端應用公司能夠提供與其競爭對手不同的解決方案,并且能夠靈活地針對自己所用的算法修改電路。
同樣是擅長并行計算的FPGA和GPU,誰能夠占領人工智能的高地,并不在于誰的應用更廣泛,而是取決于誰的性能更好。在服務器端,有三個指標可供對比:峰值性能、平均性能與功耗能效比。當然,這三個指標是相互影響的,不過還是可以分開說。
GPU上面成千上萬個核心同時跑在GHz的頻率上是非常壯觀的,最新的GPU峰值性能甚至可以達到10TFlops 以上。GPU的架構經(jīng)過仔細設計,在電路實現(xiàn)上是基于標準單元庫而在關鍵路徑上可以用手工定制電路,甚至在必要的情形下可以讓半導體fab依據(jù)設計需求微調(diào)工藝制程,因此可以讓許多core同時跑在非常高的頻率上。
相對而言,F(xiàn)PGA首先設計資源受到很大的限制,例如GPU如果想多加幾個核心只要增加芯片面積就行,但FPGA一旦型號選定了邏輯資源上限就確定了。而且,F(xiàn)PGA里面的邏輯單元是基于SRAM查找表,其性能會比GPU里面的標準邏輯單元差很多。最后,F(xiàn)PGA的布線資源也受限制,因為有些線必須要繞很遠,不像GPU這樣走ASIC flow可以隨意布線,這也會限制性能。
FPGA可以根據(jù)特定的應用去編程硬件,例如如果應用里面的加法運算非常多就可以把大量的邏輯資源去實現(xiàn)加法器,而GPU一旦設計完就不能改動了,所以不能根據(jù)應用去調(diào)整硬件資源。
目前機器學習大多使用SIMD架構,即只需一條指令可以平行處理大量數(shù)據(jù),因此用GPU很適合。但是有些應用是MISD,即單一數(shù)據(jù)需要用許多條指令平行處理,這種情況下用FPGA做一個MISD的架構就會比GPU有優(yōu)勢。
所以,對于平均性能,看的就是FPGA加速器架構上的優(yōu)勢是否能彌補運行速度上的劣勢。如果FPGA上的架構優(yōu)化可以帶來相比GPU架構兩到三個數(shù)量級的優(yōu)勢,那么FPGA在平均性能上會好于GPU。
二、FPGA應用
FPGA的一個新應用是芯片開發(fā)時的邏輯功效驗證。過去數(shù)字芯片在設計開發(fā)時,每開發(fā)至一個階段就必須對已經(jīng)完成的電路進行邏輯上、機制上的功效驗證,以了解設計是否有誤,關于此多是用計算機軟件程序來進行邏輯推演(Simulation),不過用計算機程序來進行驗證,其推演速度相當慢,所以每一項驗證都要經(jīng)過漫長等待才能知道結果。
對此或許有人會說:可以使用更快速的計算機來加快驗證,但這其實是雞與蛋的問題,計算機效能提升其實是因為芯片效能愈來愈高,芯片效能愈來愈高原因可用摩爾定律來解釋,在摩爾定律下,芯片開發(fā)速度變快、同時也讓芯片更復雜,所以「計算機的更快速」與「芯片的更復雜」是連動的,使用了更快速的計算機,也意味著要推演、驗證更復雜設計的芯片,最根本的問題并還沒有真正解決。
不過,由于FPGA的電路密度、運作效能在近年來大幅提升,所以開始有人提議用FPGA來取代純計算機執(zhí)行的驗證軟件,如此推演速度就可以獲得大幅提升。舉例來說,IBM、Sony、Toshiba三家業(yè)者所共同合作開發(fā)的Cell芯片,當芯片還在開發(fā)階段時就已經(jīng)使用FPGA來推演驗證,以加速了解設計上的正確性。更具體來說,就是將新芯片的邏輯電路加載到FPGA,讓FPGA充當新芯片來執(zhí)行。
改采FPGA方式來驗證,其優(yōu)點不僅是加速驗證程序,也可以節(jié)省驗證成本,過去為了加速驗證,必須動用大量的計算機,讓眾多的計算機同時都執(zhí)行驗證程序,才能讓驗證速度提升,有時其計算機的用量甚至要用及整個運算機房內(nèi)的計算機,而今改成FPGA方式驗證后,計算機用量就可大幅減少。
要注意的是,由于芯片的電路愈來愈復雜,即便使用高階、大容量(邏輯閘)的FPGA,都很難單獨用一顆FPGA就仿真出整個新芯片,所以通常是同時用上多顆FPGA芯片,每顆FPGA芯片仿真部份的新芯片電路,然后再將多個FPGA芯片進行串連,用多個芯片來同時仿真一顆新芯片。
另外,F(xiàn)PGA雖可以進行芯片設計的功效驗證,但并不代表整個芯片的設計開發(fā)流程都可以加速,芯片電路設計的部份依舊需要工程師人工設計,只有功效驗證上可以獲得加速。再者,功效驗證完全正確后并不代表芯片就此設計完成(除非該芯片確定直接以FPGA方式出貨),后續(xù)在正式投產(chǎn)之前,還要經(jīng)過頻率收斂、電路化簡等其它實體電路特性的調(diào)修,這方面FPGA也無從給予幫助。
以上就是小編這次想要和大家分享的有關的FPGA的內(nèi)容,希望大家對本次分享的內(nèi)容已經(jīng)具有一定的了解。如果您想要看不同類別的文章,可以在網(wǎng)頁頂部選擇相應的頻道哦。





