一、 FPGA背景介紹
FPGA是Field-Programmable Gate Array的英文縮寫,英文直譯叫做“現(xiàn)場可編程門陣列”,一般都叫做“可編程硅芯片”。計(jì)算機(jī)的處理器是在預(yù)定義的電路中運(yùn)行軟件應(yīng)用程序,與此相反,對FPGA進(jìn)行編程會使芯片內(nèi)部的線路重新連接,從而直接在硬件中執(zhí)行所需的功能。
每一塊FPGA芯片都是由有限多個帶有可編程連接的預(yù)定義源組成,可實(shí)現(xiàn)可重配置數(shù)字電路和I/O模塊并允許電路接觸外部環(huán)境。
FPGA資源說明書中通常介紹了可編程邏輯模塊的數(shù)量、固定功能邏輯模塊(如乘法器)的數(shù)目及存儲器資源(如嵌入式塊RAM)的大小。FPGA芯片中還有很多其它的部分,但是以上指標(biāo)通常是在為特定應(yīng)用選擇和比較FPGA時的最重要參考指標(biāo)。
可重配置邏輯模塊(configurable logic block, CLB)是FPGA的基礎(chǔ)邏輯單元。CLB有時又稱為片(slice)或邏輯單元,由兩個基本元器件構(gòu)成:觸發(fā)器和查找表(LUT)。不同F(xiàn)PGA產(chǎn)品系列的區(qū)別在于觸發(fā)器和LUT的組合方式,因此理解觸發(fā)器和LUT是至關(guān)重要的。
二、 FPGA作用
在計(jì)算加速領(lǐng)域,傳統(tǒng)CPU處理能力的需要突破已經(jīng)成為共識,目前的途徑主要有以下幾類:
途徑一,ASIC:經(jīng)歷了幾十年的發(fā)展演變,為專門目的而設(shè)計(jì)的ASIC,由于面向特定用戶的需求,在加速效率上可圈可點(diǎn)。但是,設(shè)計(jì)周期長、成本貴、應(yīng)用范圍窄的通病,使ASIC僅適合于批量很大或者對產(chǎn)品成本不計(jì)較的場合。
途徑二,GPU:隨著近年來機(jī)器學(xué)習(xí)等領(lǐng)域的突飛猛進(jìn),GPU也早已經(jīng)不再局限于3D圖形處理,其在浮點(diǎn)運(yùn)算、并行計(jì)算等部分計(jì)算方面的特性已經(jīng)引起業(yè)界越來越多的關(guān)注,尤其是目前最大的獨(dú)立芯片生產(chǎn)銷售商N(yùn)VIDIA有些如日中天的感覺,但其在應(yīng)用廣度上的通用性仍然有待時間的檢驗(yàn)。
途徑三,F(xiàn)PGA:它作為半定制的ASIC而出現(xiàn),既解決了定制電路的不足,又在性能與應(yīng)用廣度上顯示出優(yōu)勢,英特爾已經(jīng)積極布局,推出CPU+FPGA架構(gòu),也有廠商推出了單獨(dú)的FPGA架構(gòu),這些都使FPGA進(jìn)入數(shù)據(jù)中心加速的主角地位。
下面是一個廠商提供的測試數(shù)據(jù):
可以看出,這個廠商FPGA與服務(wù)器CPU的性能對比,單位功耗性能在機(jī)器學(xué)習(xí)推斷方面提高了11倍;數(shù)據(jù)分析SQL查詢方面提升了33倍;視頻處理轉(zhuǎn)碼提高40倍;存儲壓縮提高40倍;網(wǎng)絡(luò)vSwitch可提高23倍。
三、 AWS的FPGA
亞馬遜AWS提供了新的EC2實(shí)例F1,這種新的EC2實(shí)例是具有現(xiàn)場可編程門陣列 (FPGA) 的計(jì)算實(shí)例。可以進(jìn)行編程,為應(yīng)用程序創(chuàng)建自定義硬件加速。F1 實(shí)例易于編程,并且配備了開發(fā)、模擬、調(diào)試和編譯硬件加速代碼所需的各種資源,包括 FPGA Developer AMI 和硬件開發(fā)工具包 (HDK)。FPGA 設(shè)計(jì)完成后,您可以將其注冊為 Amazon FPGA Image (AFI),然后將其部署到您的 F1 實(shí)例,只需單擊幾下即可完成部署。您可以多次重復(fù)使用您的 AFI,并可以根據(jù)需要跨多個 F1 實(shí)例使用。
Amazon EC2 F1 現(xiàn)已推出預(yù)覽版,具有兩種不同的實(shí)例大小,且每個實(shí)例包含多達(dá)八個 FPGA。F1 實(shí)例配有最新的 16nm Xilinx UltraScale Plus FPGA。每個 FPGA 都具有 64 GiB 本地 DDR4 ECC 受保護(hù)內(nèi)存,并配有專用 PCIe x16 連接。每個 FPGA 大約包含 250 萬個邏輯元件以及大約 6800 個數(shù)字信號處理 (DSP) 引擎。與其他 Amazon EC2 按需實(shí)例一樣,您將按小時為 F1 計(jì)算容量付費(fèi),無需簽訂長期合約,也無須支付預(yù)付款。FPGA DeveloperAMI 或 HDK 都是免費(fèi)的,您可以在您的 F1 實(shí)例上根據(jù)需要對 FPGA 多次進(jìn)行編程,無需額外付費(fèi)。
四、 AWS FPGA的優(yōu)勢
快速部署自定義硬件加速。借助 F1 實(shí)例,您只需在 AWS 管理控制臺中單擊幾下,即可在 AWS 上部署自定義 FPGA。F1 實(shí)例可以擁有一個或多個與其關(guān)聯(lián)的 FPGA 設(shè)計(jì),使您能夠快速且靈活地在同一個實(shí)例上運(yùn)行多個 AFI。此外,F(xiàn)1 實(shí)例還為您提供了編程、模擬、調(diào)試和編譯硬件加速代碼所需的易于訪問的工具。
可預(yù)測的性能。FPGA 通過一種專用的 PCI Express(PCIe) 結(jié)構(gòu)連接到您的 F1 實(shí)例,從而使各個 FPGA能夠共用同一內(nèi)存空間,并能夠以高達(dá) 12GBps 的速度相互通信。PCI Express 結(jié)構(gòu)與其他網(wǎng)絡(luò)相隔離,且 FPGA 不會跨實(shí)例、用戶或賬戶進(jìn)行共享。此設(shè)計(jì)可確保您在使用 FPGA 時只有您的邏輯在其上運(yùn)行,有助于提供一致的性能。
改變 FPGA 的經(jīng)濟(jì)性。借助 F1 實(shí)例,您無需自行購買 FPGA 或購買專門的硬件來運(yùn)行 FPGA,即可為您的工作負(fù)載部署硬件加速,從而大幅降低為應(yīng)用程序部署硬件加速所需的成本。如此一來,您便能夠?qū)?FPGA 用于更多工作負(fù)載,如基因組學(xué)研究和財(cái)務(wù)風(fēng)險(xiǎn)建模。FPGA可以按小時付費(fèi),無限次燒寫。
可使用您現(xiàn)有的 FPGA 算法。您可以輕松地將您現(xiàn)有的加速算法引入AWS,并在 F1 實(shí)例中使用它們。F1 實(shí)例中的 FPGA 及 HDK 中的開發(fā)人員工具與熱門 FPGA 供應(yīng)商 (如 Xilinx、Altera 和其他供應(yīng)商) 提供的硬件加速代碼和設(shè)計(jì)工具兼容。
五、 AWS FPGA的特性
可編程的硬件加速。借助 F1 實(shí)例,您可以輕松地使用 FPGA 為您的工作負(fù)載部署硬件加速。FPGA 是可編程的集成電路,您可以使用軟件進(jìn)行配置。與僅使用 CPU 的服務(wù)器相比,您可以使用 FPGA 將您的應(yīng)用程序速度提高達(dá) 30 倍。此外,由于 F1 實(shí)例中的 FPGA 是可編程的,因此,您可以靈活地更新和優(yōu)化您的硬件加速,且無需重新設(shè)計(jì)任何硬件。
專用 FPGA。每個 F1 實(shí)例都具有多達(dá)八個 FPGA,且這些 FPGA 均專用于該實(shí)例,不會在實(shí)例、用戶或賬戶之間共享。這可確保 FPGA 的全部力量將僅用于該實(shí)例,還能通過用戶和賬戶隔離提高安全性。
可重復(fù)使用的安全 Amazon FPGA Image (AFI)。您所創(chuàng)建的用于對 FPGA 進(jìn)行編程的設(shè)計(jì)被稱為 Amazon FPGA Image (AFI)。AWS 提供了一種用于獲取、管理和加密 AFI 的服務(wù)。注冊 AFI 之后,可以將其與 Amazon 系統(tǒng)映像 (AMI) 相關(guān)聯(lián),也可以與正在運(yùn)行的 F1 實(shí)例關(guān)聯(lián)。您可以同時將多個 AFI 與同一個 F1 實(shí)例或 AMI相關(guān)聯(lián),且一個實(shí)例在運(yùn)行時可在多個 AFI 之間切換,無需重新啟動。如此一來,您便能夠快速地連續(xù)測試和運(yùn)行多個硬件加速。AFI 與 AMI 相關(guān)聯(lián)后,您還可以向AWS Marketplace 中的其他客戶提供您的 FPGA 加速。
硬件開發(fā)工具包。AWS 提供了硬件開發(fā)工具包 (HDK),幫助您快速開發(fā)硬件加速。HDK 包括代碼示例、編譯腳本、調(diào)試接口以及為 F1 實(shí)例開發(fā) FPGA 代碼所需的許多其他工具。您可以在 AWS 提供的 AMI 或您的本地開發(fā)環(huán)境中使用 HDK。
FPGA Developer AMI。FPGADeveloper AMI 包括一個預(yù)先打包的工具開發(fā)環(huán)境,其中含有用于模擬 FPGA 設(shè)計(jì)、編譯代碼及構(gòu)建和注冊 AFI 的腳本和工具。FPGA Developer AMI 包括用于調(diào)試和編譯代碼的工具。您可以在 Amazon EC2 實(shí)例上部署 FPGA Developer AMI,并快速預(yù)配置您所需的資源,以便編寫和測試您的 FPGA 設(shè)計(jì)。
六、 AWS FPGA的實(shí)例詳情
七、 AWS FPGA的工作方式
開發(fā):使用硬件開發(fā)工具包 (HDK) 及一整套設(shè)計(jì)工具和模擬器來開發(fā)自定義 Amazon FPGA Images (AFI)。
部署:直接在 F1 實(shí)例上部署 AFI,并利用 EC2 的所有可擴(kuò)展性、敏捷性和安全性優(yōu)勢。
提供:在 AWS Marketplace 中為其他客戶提供您設(shè)計(jì)的AFI。
購買:購買 AWS Marketplace 中列出的構(gòu)建好的 AFI,從而快速實(shí)施常見的硬件加速。
看一個簡單的例子。先登入到開發(fā)環(huán)境AMI,如下圖所示:
進(jìn)入AMI之后,安裝一些依賴包,啟動License管理器,然后就能打開Xilinx的FPGA開發(fā)工具Vivado了。所以所謂的AMI其實(shí)就是一個操作系統(tǒng),包含了Xilinx的FPGA開發(fā)工具和亞馬遜的支持包。
可以使用VHDL和Verilog來編寫FPGA代碼,然后編譯、模擬、并且進(jìn)行校驗(yàn)。下面是一段Verilog代碼:
module up_counter(out, enable, clk, reset);
output [7:0] out;
input enable, clk, reset;
reg [7:0] out;
always @(posedge clk)
if (reset) begin
out 《= 8‘b0;
end else if (enable) begin
out 《= out +1;
end
endmodule
通過命令行啟動Vivado,用來圖形化編程:
寫一段Verilog或者OpenCL代碼,并編譯綜合成硬件邏輯。
F1硬件開發(fā)工具包:
八、 AWS FPGA的用途
使用 F1 實(shí)例部署硬件加速在許多高性能計(jì)算 (HPC) 應(yīng)用程序中非常有用,可解決需要高帶寬、增強(qiáng)型聯(lián)網(wǎng)和較高計(jì)算能力的復(fù)雜科學(xué)、工程和業(yè)務(wù)問題。F1 實(shí)例尤其適用于有時間要求的應(yīng)用程序,如臨床基因組學(xué)、實(shí)時視頻處理和財(cái)務(wù)風(fēng)險(xiǎn)分析。
基因組學(xué)研究:必須由基因組學(xué)研究人員處理的生物數(shù)據(jù)的數(shù)量和復(fù)雜性不斷增加,逐步達(dá)到了 PB 級范圍。研究人員和臨床醫(yī)生必須非常快速地處理這些數(shù)據(jù)集,以滿足醫(yī)生及其患者的需求。對于此類有時間要求的使用案例,F(xiàn)1 實(shí)例是理想的解決方案。
財(cái)務(wù)分析:金融服務(wù)行業(yè)對多種應(yīng)用程序的 HPC 功能需求一直在不斷增加,包括風(fēng)險(xiǎn)建模和分析、針對安全性的事務(wù)分析、高頻交易等。金融服務(wù)組織可以使用 F1 實(shí)例來提高風(fēng)險(xiǎn)建模和分析的準(zhǔn)確性,從而顯著改進(jìn)他們的決策制定流程。
實(shí)時視頻處理:高性能廣播級視頻應(yīng)用程序 (如圖片處理、視頻分析及視頻轉(zhuǎn)碼和壓縮) 需要使用實(shí)時分析功能。F1 實(shí)例是滿足這些應(yīng)用程序要求的理想解決方案,且不會影響視頻質(zhì)量。
大數(shù)據(jù)搜索和分析:許多大數(shù)據(jù)應(yīng)用程序?qū)?shù)據(jù)分析和搜索的數(shù)量、多樣性和速度要求不斷提高,導(dǎo)致客戶正在尋求硬件加速來滿足這些要求。對于這些應(yīng)用程序,客戶可以利用 F1 實(shí)例的增強(qiáng)性能來滿足其大數(shù)據(jù)分析和搜索要求。
-
FPGA
+關(guān)注
關(guān)注
1640文章
21899瀏覽量
611355 -
AWS
+關(guān)注
關(guān)注
0文章
435瀏覽量
24901
發(fā)布評論請先 登錄
相關(guān)推薦
單片機(jī)中的定時計(jì)數(shù)器的四種工作方式詳解
51單片機(jī)定時器工作方式
鼠標(biāo)的工作方式
Wifi模塊的工作方式功能是什么?
一圖詳解PLC的工作方式

一文看懂矩陣鍵盤的特點(diǎn)及工作方式

一文總結(jié)藍(lán)牙模塊的工作方式匯總,很全值得收藏!

ups不間斷電源工作方式
AD級聯(lián)的工作方式配置和AD雙排序的工作方式配置詳細(xì)說明

51單片機(jī)定時器工作方式1、2原理詳解

評論