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