國內首款 FPGA 雲服務器,性能是通用 CPU 服務器 30 倍以上

版權聲明:本文由薛梁 原創文章,轉載請註明出處: 
文章原文連接:https://www.qcloud.com/community/article/628340001485134638算法

來源:騰雲閣 https://www.qcloud.com/community編程

 

FPGA(Field Programmable Gate Array)現場可編程門陣列,做爲 ASIC 領域中的一種半定製電路而出現已有 30 年的歷史了,它既解決了定製電路的沒法改變功能的不足,又克服了原有可編程器件門電路數有限的缺點,可應用的場景也很普遍。安全

就在 2017 年 1 月 20 日,騰訊雲推出國內首款高性能異構計算基礎設施——FPGA 雲服務,利用雲服務的方式將只有大型公司才能長期支付使用的 FPGA 服務推廣到了更多企業。企業能夠經過 FPGA 雲服務器進行 FPGA 硬件編程,可將性能提高至通用 CPU 服務器的 30 倍以上。同時,與已經深刻人心的高性能計算的表明 GPU 相比,FPGA 具備硬件可編程、低功耗、低延時的特性,表明了高性能計算的將來發展趨勢。服務器

而在火熱的深度學習領域,企業一樣能夠將 FPGA 用於深度學習的檢測階段,與主要用於訓練階段的 GPU 互爲補充,FPGA 還可應用於金融分析、圖像視頻處理、基因組學等須要高性能計算的領域,是這類對效率要求高的行業應用的最佳選擇。微信

基於此,InfoQ 採訪了由騰訊雲基礎產品中心、騰訊架構平臺部組成的騰訊雲 FPGA 聯合團隊,向讀者介紹 FPGA 的基本原理和設計初衷,應用場景以及它給行業帶來的價值。網絡

騰訊雲 FPGA 的開發歷史及背後的團隊力量

隨着芯片製程逼近理論極限,能夠預見通用處理器(CPU)性能提高空間愈來愈有限。而騰訊本身的業務隨着移動互聯網的快速增加,數據體量的急劇膨脹,伴隨着對這些數據的計算需求也在迅猛上漲。騰訊在 2013 年開始考慮如何解決計算需求的增加,而 FPGA 做爲一種可編程的加速硬件彼時進入了你們的視野。有了解決計算需求的想法後,須要經過實踐驗證 FPGA 實際的能力。架構

騰訊的 QQ、微信業務,用戶天天產生的圖片數量都是數億級別,經常使用的圖片格式有 JPEG 格式、WebP 格式等,WebP 圖片格式比 JPEG 圖片格式存儲空間小30%。爲節省存儲空間,下降傳輸流量,提高用戶的圖片下載體驗,一般採用 WebP 格式進行存儲及傳輸分發,而圖片轉碼所帶來的計算消耗須要上萬臺 CPU 機器支撐。天然 FPGA 開發落地的第一個切入點就是圖片轉碼:將 JPEG 圖片格式轉成 WebP 圖片格式。框架

在圖片轉碼的實踐中,FPGA 聯合團隊取得了 FPGA 處理延時相比 CPU 下降 20 倍,FPGA 處理性能是 CPU 機器的 6 倍,驗證了 FPGA 能進行計算加速的能力,同時也加強了 FPGA 聯合團隊的自信心。性能

(圖1)圖片轉碼中 FPGA 和 CPU 延時對比學習

(圖2)圖片轉碼中 FPGA 和 CPU 吞吐率對比

圖片轉碼項目完成後,深度學習映入了 FPGA 聯合團隊的眼簾,一方面深度學習須要密集的計算,另外一方面深度學習在將來應用上有着巨大的商業價值。深度學習基於深度神經網絡理論,用在圖片分類的神經網絡是其中的一個分支:卷積神經網絡(CNN)。團隊使用 FPGA 對 CNN 計算進行加速,加強違規圖片檢測能力,最終在深度學習的實踐中取得了 FPGA 處理性能是 CPU 機器 4 倍的戰績。

騰訊雲 FPGA 項目實踐的結果,見證了 FPGA 在數據中內心能夠提供強大的計算能力和足夠的靈活性,來應對數據中心對硬件加速的挑戰。通過以前的 FPGA 實踐,FPGA 聯合團隊得到了在數據中心使用 FPGA 的經驗,將來也將在數據中心的計算、網絡、存儲三個方向進一步探索,重構數據中心基礎架構。

雲端的數據中心業務突飛猛進,更須要一種高性能、高靈活的底層硬件結構,因此 FPGA 聯合團隊經過雲端開放 FPGA 計算服務,從硬件層面加速雲計算在各個場景中的應用,下降企業的使用門檻和成本。

FPGA的特色解析

2016 年 3 月,英特爾宣佈正式停用「Tick-Tock」處理器研發模式,將來研發週期將從兩年向三年轉變。至此,摩爾定律對英特爾幾近失效。一方面處理器性能再沒法按照摩爾定律進行增加,另外一方面數據增加對計算性能要求超過了按「摩爾定律」增加的速度。

CPU 自己沒法知足高性能計算應用軟件的性能需求,致使需求和性能之間出現了缺口。在新的芯片材料等基礎技術沒有取得突破前,一種有效的解決方法就是採用專用協處理器的異構計算方式來提高處理性能。現有的協處理器主要有 FPGA,GPU 和 ASIC,FPGA 因爲其獨特的架構擁有其餘處理器沒法比擬的優點。

FPGA(Field Programmable Gate Array)現場可編程門陣列,能夠經過軟件從新配置芯片內部的資源造成不一樣功能硬件,就像用樂高積木能夠搭出航空母艦或變形金剛同樣。所以,FPGA 不只有了軟件的可編程性和靈活性,同時又有 ASIC 高吞吐和低延時的特性。並且,因爲有豐富的 IO,FPGA 還很是適合用做協議和接口轉換的芯片。

FPGA 在數據中心最大的特色就在高吞吐的同時能作到低延時。FPGA 內部的資源都是能夠重配置的,所以它能夠很容易進行數據並行和流水並行,且易於在數據並行和流水並行之間平衡。而 GPU 幾乎只能作數據並行。

與 ASIC 相比,FPGA 的可編程性體現出很大的優點。如今數據中心的各類算法每時每刻都在更新變化,沒有足夠穩定的時間讓 ASIC 完成長週期的開發。好比在一種神經網絡模型出來以後開始把它作成 ASIC,也許還未投片生產,這個神經網絡模型已經被另外一種神經網絡模型所替代。不一樣的是,FPGA 能夠在不一樣的業務需求之間作平衡。好比說白天用於爲搜索業務排序的機器;在晚上請求不多的狀況下,能夠將這些 FPGA 從新配置成離線數據分析的功能,提供對離線數據進行分析的服務。

另外因爲 FPGA 有高速 SERDES 等豐富的接口,並且能靈活控制實現的粒度和操做數據,所以很是適合進行協議處理和數據格式的轉換。好比說 FPGA 能夠很方便的接入以太網數據,並對以太網包進行包過濾等處理。

和 CPU、GPU、ASIC 在設計上的區別

(圖3)處理器芯片對比

CPU/GPU 屬於馮·諾依曼結構,任務執行須要經歷取指、譯碼、執行、訪存以及寫回等過程。CPU 爲達到足夠高的通用性,其指令流的控制邏輯至關複雜。GPU 使用 SIMD 單指令多數據流並行等方式進行計算加速。

FPGA/ASIC 在使用時硬件功能模塊已固定,無需分支判斷等複雜控制邏輯,同時大大下降了訪存次數。所以在能效上能夠比 CPU 高出 1 到 2 個數量級。

ASIC 是一種專用的芯片,是爲了某種特定的需求而專門定製的芯片。ASIC 與通用芯片相比,體積小、功耗低、計算效率高、芯片出貨量越大成本越低。可是缺點也很明顯:開發週期很長,算法是固定的,一旦算法變化就可能沒法重用。

而 FPGA 則是「軟硬件一體」的架構,軟件就是硬件。FPGA 基本原理是在芯片內集成大量的數字門電路以及存儲器,用戶能夠經過燒入 FPGA 配置文件來來定義這些門電路以及存儲器之間的連線,進而獲得不一樣的硬件功能。

就開發難度而言,ASIC > FPGA > GPU > CPU。目前主流的 FPGA 開發語言是硬件描述 HDL,須要開發者具有必定的相關技能。隨着業界 OPENCL、HLS 等類 C 高級語言的推動,FPGA 的開發難度和週期也會有所改善。

FPGA 部署在哪裏?與 CPU 之間如何通訊?

騰訊雲的 FPGA 主要部署在數據中心的服務器中。騰訊雲將 FPGA 芯片加上 DDR 內存、外圍電路和散熱片,設計成 PCIE 板卡。這種 FPGA 板卡被安裝在服務器的主板上,用戶經過網絡遠程訪問服務器,開發調試 FPGA,並用其加速特定業務。

FPGA 與 CPU 之間是經過 PCIE 鏈路通訊的。CPU 內部集成了 DDR 內存控制器和 PCIE 控制器。在 FPGA 芯片內部也用可編程邏輯資源實現了 PCIE 控制器、DDR 控制器和 DMA 控制器。通常通信分三種狀況:

(1)指令通道

CPU 向 FPGA 芯片寫入指令,讀取狀態。CPU 直接經過 PCIE 訪問到 FPGA 芯片內掛載的存儲器或內部總線。

(2)數據通道

CPU 讀寫 FPGA 板卡上 DDR 的數據時,CPU 經過 PCIE 配置 FPGA 芯片內的 DMA 控制器,輸入數據的源物理地址和目的物理地址。DMA 控制器控制 FPGA 卡上的 DDR 控制器和 PCIE 控制器,在 FPGA 卡上的 DDR 內存和 CPU 鏈接的 DDR 內存之間傳輸數據。

(3)通知通道

FPGA 經過 PCIE 向 CPU 發送中斷請求,CPU 收到中斷請求後保存當前工做現場,而後轉入中斷處理程序執行,必要時會關閉中斷執行中斷處理程序。CPU 執行完中斷處理程序後,會從新打開中斷,而後重載到以前的工做現場繼續執行。

目前FPGA行業面臨的問題

在行業內,微軟在數據中心使用 FPGA 架構,Amazon 也推出了 FPGA 的計算實例,那麼是否是說明整個行業對 FPGA 的使用比較普遍呢?實際上,FPGA 是個硬件芯片,它自己不能直接使用,也缺少相似操做系統這樣的系統軟件支持。長期以來,FPGA 行業在數據計算加速方向能夠分爲如下幾個參與方:

  1. 芯片原廠:Xilinx 和 Altera(已被 Intel 收購)提供 FPGA 的芯片,直供或者給代理商分銷。

  2. IP提供商:提供各類功能的 IP,好比訪問 DDR 內存的 IP,支持 PCIE 設備的 IP,圖片編解碼的 IP。一些共同的通用 IP 由芯片原廠提供。

  3. 集成商:集成商提供硬件和軟件的支持。因爲直接用戶缺少硬件設計和製造能力,每每但願集成商提供成熟完善的硬件,並完成IP的集成,提供驅動和使用方式,方便最終用戶的使用。

  4. 用戶:最終使用者。在數據中心領域,用戶通常目的是但願使用 FPGA 對計算進行加速。

在 FPGA 行業,芯片原廠並不提供直接使用的硬件板卡,這個工做由集成商完成。因爲硬件板卡使用量小和分擔設計、生產成本,硬件板卡價格每每高於芯片價格,甚至達到十倍之多。

IP 提供商由於擔憂產權泄露,一般不會迅速提供可用的可執行文件(網表文件)給用戶,而是須要簽署一系列的協議和法律文件,甚至有的 IP 提供商根本不提供給用戶測試的機會。這樣就形成最終用戶很可貴到可用的硬件板卡,更難以及時得到使用最新工藝芯片的硬件板卡,形成用戶沒法快速對不一樣IP進行驗證,從而挑選適合自身業務的IP。另外,FPGA 的開發使用硬件描述語言,缺少軟件領域很是普遍使用的框架概念,致使開發週期漫長。通常來講,FPGA 開發週期是軟件開發的三倍左右。

綜上所述的這些問題,決定了雲對 FPGA 行業的顛覆和革命。

騰訊雲 FPGA 平臺具體能解決哪些問題

騰訊雲 FPGA 平臺解決的是 FPGA 整個行業的一些問題。FPGA 用戶比較少,屬於一個相對封閉的圈子,FPGA 開發門檻高、開源的優質 IP 比較缺少、芯片價格昂貴等問題一直爲你們所詬病。

針對開發者,騰訊雲 FPGA 平臺提供了 FPGA 的底層硬件支撐平臺,相似操做系統的部分功能,簡化了開發者對底層通用設備的訪問,好比 DDR 和 PCIE 這些通用設備,可使開發者更聚焦到業務功能的開發。

FPGA 行業內的 IP 提供者和使用者缺少一個公開的交易平臺和信用保證機制,IP 交易環節冗長,價格不透明,很難達成交易,獲取 IP 後還須要搭建硬件平臺來驗證 IP 性能,這些都嚴重影響產品上市進程,常常耗時幾個月之久。騰訊雲提供了 FPGA IP 商店,IP 開發者和 IP 提供商能夠經過 FPGA IP 商店爲其餘客戶無償或有償地提供 FPGA IP 和對應的測試程序。這些 IP 都是基於騰訊雲 FPGA 的標準硬件來開發定製的,IP 的驗證和測試能夠很方便地在雲平臺上完成,一個 IP 的交易能夠由幾個月縮短到一天以內,提升交易效率,也使得 IP 交易變得更加透明。

針對一些但願使用低延時的高質量計算服務的小型公司而言,可使用 FPGA 雲計算加速服務,不用耗費大量人力進行高性能計算方面的開發,很簡單地就能夠把高性能的雲計算服務集成到本身的網絡平臺,達到提高用戶體驗的目的。好比:低延時的圖片格式轉換、基於深度學習的圖片分類等服務,相似的服務後續還會進一步豐富。

對於學校的 FPGA 教學而言,之前學校須要爲每一個學生購買一個開發板卡,有了騰訊雲平臺以後能夠節省學校購買開發板的成本,如今只須要給每一個學生申請一個 FPGA 雲平臺的帳戶便可,學生登陸上去直接能夠根據 demo 進行學習開發便可。騰訊雲平臺同時會爲用戶提供便於學習的操做指導和實驗課程方案,用戶學習的東西更接近企業的實際應用場景,能夠很好地跟未來的工做須要對接起來。

此外,大容量的 FPGA 芯片價格比較昂貴, 一個很重要的緣由是 FPGA 芯片缺乏量大的爆款產品,而騰訊雲 FPGA 平臺能夠彙集大量的客戶來使用騰訊的標準 FPGA 硬件設備,這樣會增大該 FPGA 芯片的供應量,同時也便於芯片廠商下降成本,逐漸緩解 FPGA 芯片昂貴的問題。

從這些能夠看出 FPGA 雲化意義重大,能夠推進整個 FPGA 行業的發展,給 FPGA 產業鏈的各方帶來收益。

FPGA 在互聯網業務中的應用優點

  • 圖片轉碼

隨着移動互聯網的發展,用戶天天上傳的圖片量愈來愈龐大,公司目前用於圖片轉碼的業務主要有 QQ 相冊、微信等,而業務中使用的圖片格式大都爲 JPEG 格式、WebP 格式等,而圖片轉碼所帶來的計算消耗須要上萬臺 CPU 機器支撐。因此 FPGA 在互聯網業務中第一個應用場景就是圖片轉碼:JPEG 圖片格式轉成 WebP 圖片格式。項目取得了 FPGA 處理延時相比 CPU 下降了20倍,FPGA 處理性能是 CPU 機器的 6 倍。

爲了更進一步提高圖片的壓縮率,同時隨着 HEVC 高性能編碼標準的發展,HEVC 的 I 幀圖片壓縮率和以前的 WebP/JPEG 等編碼標準有了很大的提高,HEVC 的 I 幀圖片壓縮率和 WebP 相比提升 20~30% 左右,和 JPEG 相比提升更多,平均能到 50% 左右,所以,不管從下載帶寬節省仍是後臺存儲成本下降,以及用戶下載圖片體驗等角度來看,HEVC 標準都有很大優點。而採用 HEVC 的問題在於 HEVC 的幀壓縮計算複雜度很是高,採用 CPU 進行轉碼成本很高,致使很難在業務中全面推廣。爲了加強圖片轉碼能力,騰訊繼續使用 FPGA 對圖片轉碼進行加速。

經測試,完成 WebP/JPEG 格式圖片轉成 HEVC 格式圖片,測試圖片大小爲 1920x1080,FPGA 處理延時相比 CPU 下降 7 倍,FPGA 處理性能是 CPU 機器的 10 倍,FPGA 機型單位成本是 CPU 機型的 1/3。

  • 圖片分類

深度學習近年來在語音識別、圖片分類和識別、推薦算法等領域發揮了愈來愈大的做用。在移動互聯時代,爲了加強圖片檢測的處理能力,下降圖片檢測成本,騰訊使用 FPGA 對 CNN 計算進行加速。

研發團隊使用 FPGA 完成 CNN 算法的 Alexnet 模型,FPGA 處理性能是 CPU 機器的 4 倍,FPGA 機型單位成本是 CPU 機型的 1/3。

FPGA能讓開發者/團隊更「任性」

對於外部開發者和開發團隊來講,首先,騰訊雲 FPGA 提供統一的硬件平臺。開發者無需關注 FPGA 基礎設施,免去了重複開發硬件平臺面臨的問題和挑戰,快捷部署,幾分鐘就能夠部署完畢一臺全新的 FPGA 平臺。FPGA 芯片豐富的邏輯資源能夠爲開發者「任性」實現功能提供保障。統一的平臺也便於開發團隊快速彈性擴展硬件平臺,從而提升業務容災可靠性。

其次,騰訊雲 FPGA 提供完備的開發環境,不須要專門人員開發驅動環境。開發語言多樣性,HLS,OPENCL,RTL 知足不一樣類別的開發人員需求,下降學習開發門檻,簡單易用。

再者,騰訊雲 FPGA 提供豐富的 IP 功能,不只有大量免費 IP 和有償的 IP 服務,並且交易流程透明、安全、可靠。加速開發者開發進度的同時也爲開發團隊提供一個將本身開發的 IP 進行交易的平臺。

最後,騰訊雲 FPGA 提供專業安全防禦。部署到雲上,將享受與雲服務器同等的雲安全基礎防禦和高防服務。免去傳統 FPGA 數據存儲和傳輸安全所帶來的困擾。

能夠看到,傳統的 FPGA 開發面臨的硬件平臺穩定性、開發語言門檻高、調試周期長、驅動軟件聯合調試等問題都將獲得改觀,開發者和開發團隊可以從繁雜和重複的工做中快速釋放出來,有更多的時間和精力投入到創新的工做中去,這將爲整個技術研發的氛圍增長更多的創新因子,創造更多的價值。

將來,FPGA 的行業價值

當前 AI 火爆,得益於 FPGA 的高密度計算能力以及低功耗的特性,FPGA 率先在深度學習在線預測方向(廣告推薦、圖片識別、語音識別等)獲得了較大規模的部署。用戶也經常將 FPGA 與 GPU 進行對比,GPU 的易編程性、高吞吐與 FPGA 的低功耗、易部署等特性也各有千秋。相較於 GPU 以及 ASIC,FPGA 的低延時以及可編程性也是其核心競爭能力。

對於行業來講,雲是一種共享服務的思想,用戶不以佔有的方式使用硬件和軟件,而是共享複用,所以大大下降了使用成本,提高了資源的使用效率。FPGA 雲服務,可讓行業參與方都得到價值:

  1. 芯片原廠:不須要通過層層代理,增長成本,而是能夠經過雲提供硬件板卡複用的服務。由於硬件統一採購和維護,也大大提高了穩定性和可靠性。

  2. IP提供商:能夠把IP放到雲平臺的市場中去,最終用戶使用時,雲平臺完成部署和交付,用戶不須要接觸可執行文件(網表文件),所以不存在產權泄露的風險。這將鼓勵IP提供商的服務方式,能夠提供按時長計費,買斷計費,乃至試用版免費等方式,用戶也能夠迅速驗證。

  3. 設計和開發:雲提供框架方式,封裝了經常使用的系統級操做(DDR 內存的訪問、DMA、PCIE 設備控制等),能夠支持硬件描述語言,也支持 OPENCL 以及相似 C 的高級語言。提供通用的驅動和調用庫,不須要用戶編程。對高階用戶而言,也可使用 OPENCL 或者硬件描述語言實現本身的功能。

FPGA 最初的應用場景是在通訊行業,那麼其高通訊帶寬以及實時性處理能力能夠爲數據中心基礎架構帶來什麼改變呢?當前,FPGA 能夠在 IDC 大顯神威的地方,例如低延時網絡架構、網絡虛擬化、高性能存儲以及網絡安全等等。可喜的是,咱們看到微軟以及亞馬遜等同行已經使用 FPGA 在其公有云網絡中進行了諸多積極嘗試,騰訊雲當前也在多個方向進行積極的探索和實踐。

能夠預見的是,藉助於 FPGA,咱們的數據中心會更加的綠色高效。

相關文章
相關標籤/搜索