FPGA與CPU相比進一步強化了算力,尤其適合各類并行化計算;而與GPU相比,其更細粒度及靈活的并行化及流水線控制天然的對復雜算法有更強的適應性,能夠充分發揮出算力優勢,從而帶來計算效率的提升。針對數據中心算力不斷增強,算法不斷細分、復雜化的大背景下,FPGA具有更好的發展前景。
大家好,我是深維科技創始人/CEO 樊平,非常高興有這個機會跟大家分享和交流一下,如何基于FPGA來構造高性能的圖像處理解決方案。
1.解決方案提出的背景
隨著需求的快速增長,目前數據中心需要處理的圖像越來越多,處理內容包括圖像轉碼,像素級的操作、縮略圖處理以及各種圖像的智能分析,這些處理需求帶給數據中心的負擔日益加重。
2.FPGA圖像處理加速的潛力
2.1 深維科技在圖像方案上的性能數據
上圖是深維科技目前在圖像方案上已經做到的性能數據,第一是圖像的吞吐(每秒可以處理圖片的數量),目前CPU是根據E5的2650雙U服務器的性能去比較,加一張FPGA優良版的加速卡就可以做到20倍的吞吐。在業務流程里對延時相對都很敏感,深維可以在提升吞吐的同時降低延遲達5倍,數據中心的成本因為服務器成本和所有功耗成本的降低,使得整體的TCO的降低可以達到5倍以上,也就是降低到原來的20%以下。同時可以改善功耗,提高10倍能效比。這些性能都是通過深維科技一款名叫ThunderImage的產品為大家提供的。
2.2 ThunderImage介紹
除了剛才提到的性能,深維科技對豐富的圖片的格式進行了支持,例如JPEG圖片編解碼的處理。隨著目前高清圖片內容越來越多,大家需要對圖片的尺寸/壓縮率做進一步提升,這其中比較流行的一種格式是Google從VP8編碼提取出來的一套標準WebP。深維科技目前很好支持了WebP的M4和M6兩種模式,另外深維科技也支持其他圖片格式和一些圖片的縮放算法,像Lanczos這類比較復雜的濾波算法都可以支持。
用戶在數據中心進行方案集成過程中,傳統數據中心的設計環境是軟件,把FPGA導入到數據中心之后,對方案的可用性有非常高的要求。深維科技把整個方案做了很好的封裝,以ImageMagick和OpenCV標準開源框架為接口進行替換,用戶只需要改動幾行代碼之后就可以對接口完成替換。這樣的使用模式完全類似于軟件的形態,并且可以做到無縫兼容,包括一些像VIPS這類型的新框架深維科技都在逐步支持。
在業務部署的過程當中,深維科技從客戶得到很多關于細節的反饋,其中一個常見的問題是圖片在業務流程里部署時,客戶發現硬件的編解碼往往和參考軟件的結果存在不一致的現象,這是由于硬件做加速過程當中,為了適應加速的效果會對算法進行改動。
現在這款ThunderImage方案可以做到硬件編解碼和參考軟件結果完全一致的,每個比特的結果和CPU的流程跑出來的結果都可以做到嚴格一致,對實際業務的評估部署阻力會降低很多。ThunderImage方案可以做到每個像素都一樣,因此滿足了實際業務的場景需求。
深維科技的整個產品都可以部署在兩種平臺上,一種是云平臺,例如AWS和華為云,其他云平臺也會陸續發布出來。另一種是線下部署,深維科技在線下的本地部署支持了Linux的不同版本,可以比較方便匹配客戶不同的生產環境配置,服務器也可以支持英特爾和AMD兩款CPU的型號。目前硬件平臺可以支持Alveo U200、Huawei FX300以及一些早期的型號,根據客戶的場景可以比較快地適配到相應的板卡。
3.常見的業務場景
涉及圖片部分的產品有幾個典型的應用場景,第一是縮略圖的場景,整個流程包括圖片的上傳、JPEG解碼、縮放、JPEG編碼和推送客戶端,很好的適配了以下幾種典型場景:第一是手機的云相冊,客戶上傳大量的圖片到云端,在不同的終端上瀏覽上傳的圖片,在瀏覽時不需要把原圖轉成各種尺寸的圖像推送到客戶端,只需要在線算出不同的尺寸推送到客戶端,在電商平臺和社交網絡上都大量涉及到這樣的應用場景。
第二個場景是WebP轉碼,把JPEG格式轉成WebP格式,達到節省30%以上的帶寬或者存儲的目標。另外深維也支持配合類似AI Inference的任務,在AI Inference Engine上輸入圖像尺寸大部分都是小圖,小圖通常是CPU端去配合生成(預處理),在Inference之后還要有一些存檔和編碼的需求。目前方案很好地適配了預處理和后處理的場景,可以實現整個AI Inference的全流程加速。
4.生產環境集成
4.1 與OBS進行集成
關于如何與生產環境集成,深維科技與OBS有一個比較完整的方案,首先上圖是一個典型的場景,需要有大量的JPEG圖像上傳到OBS,上傳完之后的OBS包含了大量用戶圖片。第二個階段是用戶會從安卓、蘋果、Windows等不同的終端去發起一個訪問,這個訪問會發向CDN,由于大部分情況下本地各種終端之間存在差異,訪問的命中率會比較低,CDN會檢查并返回給OBS進一步請求圖片。請求之后OBS會調用ThunderImage以最高的性能反饋給OBS相應尺寸的圖片,最后推送到客戶端,與OBS這種常見生長環境集成的模式還是比較清晰的。
4.2 核心性能指標分析
如圖是性能指標的分析,第一個是QPS(每秒可以處理圖片的張數),這個核心指標是在1K圖片縮放到240×180的時候可以達到4900張的峰值,4900是目前深維科技在同類產品里所能看到的最好效果。另一個數字是吞吐(每秒按照能處理輸入圖像流量的大小),吞吐可以達到1.8GB,相應此時CPU的流量是136MB,大概有15倍左右的加速。另外在延遲方面,在4K轉640×480圖片尺寸的時候,ThunderImage可以做到58毫秒,此時CPU延遲已經達到1303毫秒,之間存在20倍左右的差距。在FPGA進行加速時,也就是將FPGA插到一個服務器里,服務器可以在性能有20倍的提升的同時做到CPU的利用率只有4%,純CPU版本是100%,因此整體加速效果是一致的,ThunderImage在各方面都有接近20倍的性能提升,有些方面性能提升還要更高一些。
4.3 通用計算方案
FPGA加速效果在圖片處理方案上是非常明顯的,在FPGA計算加速方向上已經有各類方案,包括GPU、CPU、FPGA和ASIC。方案的比較在整體上有兩個重要的約束:效率(追求性能)和靈活性。FPGA相對于GPU的底層有更細粒度的并行化和流水線的控制,能夠做比特級、任意數據不對齊的操作,所有這些靈活性和底層更細粒度控制帶來了更好的計算效率,相對于整體就會帶來低延時、更高的能效和性能,所以深維非常看好FPGA將會成為下一代數據中心非常重要的通用的計算加速載體。
FPGA相對ASIC有一個很明顯的好處,ASIC在整個設計生產環節需要18個到24個月流片周期,而且對量也有一定的要求。FPGA有這些好處的同時也存在編程比較困難的致命問題,因此FPGA的設計開發有著很大的挑戰,開發周期也會比較長。數據中心主要的用戶以軟件開發為主,軟件開發目前追求敏捷和快速迭代,這種長周期的開發形態非常制約業務部署。
4.4 軟、硬件開發方法區別
深維科技針對以上問題也提出了解決方案,如上圖所示,最左邊的是CPU的軟件開發流程:寫代碼、編譯,排除語法錯誤、運行,根據實際運行時的錯誤進行調試。
FPGA+CPU的開發流程傳統是基于硬件設計語言去做的,Verilog/VHDL設計流程涉及到的環節也需要寫代碼,對等同樣復雜度算法要增加10倍以上的代碼量,因此整個設計流程非常復雜。對比兩個系統開發流程就不難理解為什么基于硬件設計語言的FPGA開發過程往往需要半年到一年的周期,而不是軟件開發的周期只要數周到幾個月的時間。
賽靈思也注意到了設計流程的復雜度,于是在2012年收購了AutoESL公司,這家公司提供HLS高層次的設計方法,這個方法很好的支持了C和C++語言來編程FPGA,這種方式放到最右邊的框圖對流程進行相應的簡化,首先是系統層設計OpenCL,Kemel設計是使用是C和C++語言來寫代碼,但需要加一些標注。在軟件形式下去編譯仿真程序,排除語法錯誤、運行仿真程序,迭代多次后完成。在仿真環境上調好以后才需要上板生成FPGA程序,編譯成FPGA最后做一次,然后再上板去調。這個流程顯然已經簡化很多,而且不需要頻繁在硬件層面去調試,大部分工作都是在軟件環節去做。
5. 深維科技的核心能力:快速開發,全棧優化
很多客戶都已經試過了HLS這套開發方法,并對開發迅速這一特點有所體會,但是對于最后能不能達到預期的性能提升還存在一些問題。因為中間也經過很多年的嘗試和成熟收斂,HLS已經取得了比較好的效果,普遍的認識是HLS與RTL相比,后者在細節優化上要更好一些。深維科技目前做了一些嘗試,之前提到能夠做到20倍以上的性能加速,應該是超過了一些RTL的產品性能。
深維科技在實現性能加速的過程中做了一些特殊的工作,關于OpenCL和HLS系統設計的范圍,首先在CPU有一個Opencl描述的調度,數據是通過主機的DDL和板上FPGA加速卡的DDL進行交換。FPGA有一些相應的kernel,kernel目前是用HLS和C++來描述的。這樣的任務有幾個需要解決的問題,第一個問題是如何做到快速開發,如上文所述,使用C++和HLS就可以加快推出方案的速度。第二個問題是深維科技有面向行業的應用開發平臺,這樣可以簡化面向圖像處理應用領域時有通用的開發平臺,可以對很多類似的任務進行共享,例如調度、適配、框架這些事情。另外還有組件庫,深維科技把Codec和各種處理算法已經變成了一個標準的組件,可以在平臺上對其進行非常方便的組合。
另外針對開發速度變快之后性能如何提升的問題,深維科技提出了全棧優化的技術。全棧優化是從算法層、架構層到底層的優化技術,這也是由于HLS往往會遮蔽底層實現過程,當性能達不到要求時,深維科技把綜合布局、布線優化方面,在底層展開進行進一步優化,這主要依托于深維科技在EDA和FPGA芯片的設計經驗,為了提升效率,深維科技也有相應的EDA的工具。綜上,我們比較了一下整體研發的效果,在FPGA加速里有三類設計方法,第一類是CPU軟件設計方法,它的特點是流程復雜度低,但是產品性能也低,項目周期很短。第二類是FPGA+CPU用傳統RTL的設計方法,它的特點是流程復雜度非常高,性能比較高,但是項目周期非常長。第三類是深維科技目前在實踐的方法FPGA+CPU(HLS+DPComp),這其中涉及到深維科技自己的工具和方法,設計方法的流程復雜度中等且內部可控。整個項目周期能夠達到與軟件開發類似的周期(15周到數月),并且可以達到非常高的產品性能。
-
FPGA
+關注
關注
1629文章
21748瀏覽量
603955 -
gpu
+關注
關注
28文章
4743瀏覽量
129003 -
圖像處理
+關注
關注
27文章
1293瀏覽量
56781
原文標題:基于FPGA異構計算快速構建高性能圖像處理解決方案
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
鴻蒙原生頁面高性能解決方案上線OpenHarmony社區 助力打造高性能原生應用
友思特方案 精析“蟬翼”:FPGA圖像處理方案助力鋰電池高速產線檢測新升級
![友思特<b class='flag-5'>方案</b> 精析“蟬翼”:<b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>方案</b>助力鋰電池高速產線檢測新升級](https://file1.elecfans.com/web3/M00/00/14/wKgZO2dGeLKAWrU2ABPncrSOzYg415.png)
FPGA 實時信號處理應用 FPGA在圖像處理中的優勢
FPGA在圖像處理領域的優勢有哪些?
Molex莫仕發布革新熱管理解決方案,賦能高性能數據中心應對未來挑戰
LM98725高性能16位81 MSPS信號處理解決方案
![LM98725<b class='flag-5'>高性能</b>16位81 MSPS信號<b class='flag-5'>處理解決方案</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于安路科技FPSoC器件DR1系列的視頻采集/顯示/處理解決方案
![基于安路科技FPSoC器件DR1系列的視頻采集/顯示/<b class='flag-5'>處理解決方案</b>](https://file1.elecfans.com/web2/M00/F6/66/wKgaomZ_bbWAflyYAACmXPLmev8810.png)
采用創新的FPGA 器件來實現更經濟且更高能效的大模型推理解決方案
![采用創新的<b class='flag-5'>FPGA</b> 器件<b class='flag-5'>來</b>實現更經濟且更高能效的大模型推<b class='flag-5'>理解決方案</b>](https://file1.elecfans.com/web2/M00/F0/66/wKgZomZyje-AcBKyAAGXKpdnlrw187.png)
評論