部署先進的網絡基礎設施不僅可以解決數(shù)據(jù)傳輸量激增的問題,而且還能在諸如邊緣、核心和云端等網絡的不同部分進行數(shù)據(jù)處理。不足為奇的是大部分數(shù)據(jù)要么是視頻,要么是圖像,并且這些數(shù)據(jù)正以指數(shù)級速度增長,并將在未來幾年內保持持續(xù)增長。因此,需要更多的計算資源來應對數(shù)據(jù)的大量增長(如圖1所示)。
由于應用的類型多種多樣,因此在數(shù)據(jù)中心中存在著各種各樣的視頻或圖像處理工作負載?;趯S眉呻娐罚ˋSIC)的解決方案通??商峁└叩男阅埽菬o法進行升級以支持未來的算法;基于中央處理器(CPU)的解決方案要比其更加靈活,但其時鐘主頻已經固定,而且已不再可能大幅提升處理器性能;圖形處理器(GPU)是提供視頻/圖像處理解決方案的另一種候選方案,但其功耗明顯高于基于現(xiàn)場可編程邏輯門陣列(FPGA)的解決方案。FPGA在視頻處理和壓縮領域內,是一種具有吸引力的選擇,因為它們提供了實現(xiàn)創(chuàng)新視頻處理算法所需的、平衡的資源。此外,F(xiàn)PGA提供了一種靈活的解決方案,可以縮短產品上市時間,并能在解決方案的整個生命周期內實現(xiàn)持續(xù)升級和部署新的功能。
表1:互聯(lián)網用戶和數(shù)據(jù)流的增長
來源:思科(Cisco)公司
圖1:全球互聯(lián)網視頻數(shù)據(jù)流(來源:思科)
33% CAGR 2017-2022:2017-2022年間的復合年增長率33%
Exabytes per Month:每月的Exabytes數(shù)量
基于FPGA的視頻解決方案的示例
本白皮書將介紹三種典型的視頻應用,以展示基于FPGA的解決方案在廣播行業(yè)中的優(yōu)勢。這些優(yōu)勢包括縮短處理時間、降低功耗,以及為服務提供商和終端用戶節(jié)省成本。
本白皮書將介紹基于FPGA的解決方案在以下三種應用中的優(yōu)勢:
· 視頻流
· 使用視頻編輯軟件來創(chuàng)作視頻內容
· 人工智能(AI)和深度學習–圖像識別是該應用的主要部分,其需要高性能的計算資源
視頻流傳送
為了使媒體流變得快速和高效,對視頻進行轉碼的需求已急劇增加。目前大多數(shù)產品都采用了一種基于軟件的方法,但該方法無法滿足高帶寬、廣播級視頻流的處理要求。視頻流和/或云服務提供商面臨著由基于軟件的解決方案所帶來的低吞吐量、高功耗、長延遲和占用空間大等挑戰(zhàn)。根據(jù)思科的一份題為《思科可視網絡指數(shù):預測與趨勢——2017-2022年白皮書》的報告,視頻流數(shù)據(jù)流量正在增加,并且到2022年時將占據(jù)整個互聯(lián)網數(shù)據(jù)流的82%。在包括視頻點播、流媒體直播和視頻監(jiān)控等所有應用中,視頻數(shù)據(jù)流量將逐年穩(wěn)步增長。
諸如Netflix和YouTube等視頻流應用的興起推動了對視頻轉碼的需求。傳統(tǒng)廣播和視頻流媒體之間最顯著的區(qū)別在于內容量和頻道數(shù)。為了支持從電腦到智能手機等各種接收設備,內容必須被轉碼成不同的分辨率和壓縮格式。因此,視頻流將消耗大量的計算資源。
圖2:視頻轉碼工作流程
Acquisition:獲取
content creator dramatically growing:內容創(chuàng)作者的數(shù)量在急劇增加
Editing:編輯
Uploading:上傳
Streaming Company:流媒體公司
Cloud Service Provider:云服務提供商
Transcoding:轉碼
different compression:不同的壓縮率
different resolution:不同的分辨率
different bitrates:不同的比特率
Distribution:發(fā)布
iPhone:iPhone手機
Andriod:安卓手機
PC Browser:電腦瀏覽器
流媒體和云服務提供商需要一種解決方案來緩解對計算需求的壓力。Achronix Speedster?7t系列FPGA器件中搭載了IBEX這種最先進的視頻處理半導體知識產權(IP)能夠解決這一重大問題。這種基于FPGA的解決方案可以提供高吞吐量的、低功耗的和占用空間小的系統(tǒng),而且無需犧牲靈活性。盡管基于ASIC的解決方案功能強大,但只能支持在設計時定義的功能集,而不能支持現(xiàn)場更新。
視頻內容創(chuàng)作
在過去,高清分辨率(HD)格式在視頻內容創(chuàng)作中占據(jù)主導地位。最近,標準分辨率已被提升至4K,甚至到8K,這使得視頻編碼或解碼面臨挑戰(zhàn)。用于這些較高分辨率的壓縮格式主要有Apple ProRes、Avid DNx和SONY XAVC。由于這些壓縮格式是專有的,因此ASIC或GPU并不能原生支持這些格式,而且CPU提供的性能也不佳。因此,在較高分辨率下創(chuàng)作視頻內容時,F(xiàn)PGA是最佳的解決方案。
圖3:視頻編輯工作流程
Import:導入
Editing Software:編輯軟件
Import(Decode):導入(解碼)
Export(Encode):導出(編碼)
Remote Edit:遠程編輯
Export:導出
在新的趨勢下,遠程后期制作的概念正變得越來越普遍。然而,現(xiàn)有的電腦并沒有足夠的能力來實時處理高分辨率的內容(例如8K)。因此,編輯人員開始借助云基礎設施來獲得更好的計算性能。此外,由于需要保持社交距離,新冠肺炎疫情也加速了這一趨勢?;谠坪虵PGA的解決方案為編輯人員提供了巨大的好處。Achronix Speedster7t系列FPGA器件進行架構創(chuàng)新,例如二維片上網絡(NoC),使其特別適合于加速編碼和解碼算法。
人工智能與深度學習
人工智能、機器學習和深度學習是眾所周知的領域,它們在過去幾年中得到了迅速的發(fā)展。除了這些領域,圖像識別也逐漸成為一個全新的重要領域,這得益于人工智能/機器學習(AI / ML)的創(chuàng)新。例如,先進駕駛員輔助系統(tǒng)(ADAS)使用深度學習算法來處理捕獲的圖像。安裝在車上的行車記錄儀使用H.264壓縮技術記錄視頻,然后將視頻流轉碼為諸如JPEG或PNG等合適的圖像格式,以用于深度學習圖像識別。根據(jù)應用場景,可以同時完成丟幀、更改分辨率或其他圖像處理任務。
在零售業(yè)的安全攝像頭或物流業(yè)的包裹分揀中也有類似的應用案例,其數(shù)據(jù)流與上述示例相同 —— 這些應用中的攝像頭使用H.264或H.265等壓縮比相對較高的壓縮格式記錄視頻,然后將編碼的視頻流傳輸?shù)皆贫嘶驍?shù)據(jù)中心。在云端,視頻流由原始格式轉碼為適合深度學習的格式,將視頻文件轉換為圖像資料庫。
圖4:典型的深度學習圖像數(shù)據(jù)流
Transcoding:轉碼
Different compression:不同的壓縮率
Video=Image:視頻=圖像
AI:人工智能
Deep Learning:深度學習
Image Recognition:圖像識別
從歷史來看,F(xiàn)PGA一直擅長將電影轉碼為圖像。此外,使用FPGA中的深度學習算法對圖像預先進行預處理,不僅可以提高吞吐量,而且還能減少系統(tǒng)級的數(shù)據(jù)事務量。Achronix Speedster7t的創(chuàng)新架構及其帶有的專用機器學習處理器(MLP),使之成為實現(xiàn)定制的和既定的深度學習算法的理想選擇。
FPGA代表性視頻用例的性能
我們分別使用FPGA和CPU來實現(xiàn)上述三個典型應用案例,并對一些關鍵指標進行對比,如下表所示。
表2:FPGA與CPU的性能比較
表注
↑ FPGA提供更佳的性能。
? FPGA和CPU提供同等的性能,但FPGA是卸載CPU負擔的首選解決方案。
↓ FPGA和CPU提供同等的性能,但CPU是首選解決方案。
視頻流傳輸
在視頻流傳輸應用中,常用的壓縮格式是H.264或H.265,因為終端(接收端)設備原生支持這些格式。諸如位深或色度和分辨率等參數(shù)通常為8位、4:2:0和1920×1080或1280×720。在解碼器方面,基于FPGA的實現(xiàn)比基于CPU的系統(tǒng)提供更高的吞吐量。在數(shù)據(jù)層面,F(xiàn)PGA效率更高,因為如果將CPU用于純數(shù)據(jù)處理之外的其他任何與數(shù)據(jù)相關的任務時,它通常都沒有得到充分的利用。然而在編碼器方面,硬化的CPU編碼器內核是專門針對這些典型參數(shù)而設計的,并提供了足夠的性能。
為了獲得兩全其美的效果,將FPGA和CPU解決方案相結合,并由FPGA來處理繁重的工作負載是理想的解決方案。FPGA上的高效功能可以被移植到可重新配置的硬件上去運行。例如,運動估計算法是一種適合FPGA的工作負載。另一方面,CPU更適合處理比特率控制算法。
一些服務提供商要求在軟件解決方案中實現(xiàn)與x264相同的視頻質量和流媒體格式。FPGA和CPU的組合解決方案可以有效地滿足這些要求。使用這種方法,每種功能都被合理地分配,較繁重的處理負載被轉移到FPGA,與純軟件解決方案相比,這種方法能提供類似或更好的視頻質量和流媒體格式,而且編碼時間顯著減少。
下表列出了使用這種方法的x264評測結果,第一行顯示了在FPGA上的運動估計函數(shù)(x264_8_me_search_erf)的結果。運動估計是CPU最繁重的工作負載之一,占據(jù)總處理時間的21.2278%。
表3:x264評測結果(通過評測軟件獲得)
視頻內容創(chuàng)作
用于內容創(chuàng)作的視頻編輯軟件支持多種壓縮格式,其中包括Apple ProRes、Avid DNx、Sony XAVC和Panasonic AVC-Intra,這些格式都帶有基于內幀結構的專有壓縮方案。此外,還有一些支持RAW模式的格式,諸如Apple ProRes RAW、RED RAW、ARRI RAW和Blackmagic RAW,這些格式都得到了攝像機制造商的支持。由于這些格式(以及新型的和不斷出現(xiàn)的格式)具有不斷變化的特性,因此基于ASIC的解決方案并不實用,而需要基于FPGA的解決方案。
在過去,主要的分辨率為HD/2K,CPU具有足夠的速度來處理這些視頻流。但是,隨著4K或8K分辨率變得越來越普遍,僅靠CPU加軟件的解決方案不能夠提供實時處理。另一方面,基于FPGA的解決方案可以輕松地實時處理4K和8k分辨率視頻。
內部基準測試表明,即使與中級FPGA芯片相比,基于FPGA解決方案的處理速度也比最新的CPU加軟件解決方案快五倍。雖然GPU可以提供與FPGA類似的性能,但其功耗更高、解決方案占用空間更大。
圖5:僅使用CPU(無FPGA卸載)的處理方案性能
FPGA解決方案的好處不僅僅在于加速,而且還能降低CPU的繁忙程度。在只有CPU的解決方案中,所有CPU周期都被4K或8K內容的編碼所消耗,而使用FPGA來卸載編碼任務可以釋放CPU周期。因此,F(xiàn)PGA加速器為該應用提供了最佳的解決方案,通過減少4K和8K視頻制作所需的處理時間,來提高視頻編輯人員的創(chuàng)作效率。
圖6:使用FPGA卸載的CPU利用率
人工智能與深度學習
如前所述,在處理H.264/H.265解碼方面,F(xiàn)PGA提供了與CPU相當或更高的性能。如果解碼器和內幀編碼器(例如JPEG或PNG)都位于同一FPGA中,那么基于FPGA的解決方案將提供比CPU更佳的性能。此外,在深度學習應用中,在將圖像數(shù)據(jù)發(fā)送到深度學習處理之前,通常會進行一些圖像預處理。在同一個FPGA上可以執(zhí)行所有的處理,包括解碼、圖像處理和編碼等(如圖7所示),并且與CPU相比,F(xiàn)PGA可以提供高吞吐量、低延遲和更少的數(shù)據(jù)事務。深度學習技術在現(xiàn)在和未來都將被廣泛應用于各個行業(yè)或領域,而基于FPGA的解決方案將助力這一發(fā)展。
圖7:使用深度學習進行視頻和圖像處理的典型數(shù)據(jù)流
Decoding:解碼
Image Processing:圖像處理
Encoding:編碼
針對性能而優(yōu)化的Speedster7t架構
Speedster7t FPGA是專為滿足最高性能的數(shù)據(jù)加速應用而設計的,該架構非常適合解決本白皮書中提到的所有應用挑戰(zhàn)。具體而言,Achronix開發(fā)了一種全新的創(chuàng)新型二維片上網絡,它力助在I/O帶寬、外部存儲帶寬和片上性能之間提供一種平衡架構,以確??傮w最高的吞吐量。在傳統(tǒng)的FPGA架構中,用戶需要設計電路來連接加速器,從而導致并不理想的布局和布線?,F(xiàn)在更新的FPGA架構使用一種網絡,在邏輯陣列內的處理單元與各種片上高速接口和存儲器端口之間傳輸數(shù)據(jù)流(如圖8所示)。
圖8:在傳統(tǒng)的FPGA架構中連接加速器
Status Control:狀態(tài)控制
Parameters:參數(shù)
Address decode and routing:地址解碼和布線
Back pressure:背壓
Request arbitration:請求仲裁
Response arbitration:響應仲裁
Response back pressure:響應背壓
Response routing:響應布線
Accelerator:加速器
圖9:先進的FPGA減少了所需的電路數(shù)量
硬連線架構極大地改善了處理的延遲和能效,但是缺乏應對需求變化的靈活性。Speedster7t系列FPGA器件中的第一款芯片AC7t1500提供了一系列高速接口,包括可分配的(fracturable)以太網控制器(支持高達400G的速率)、PCI Gen 5端口和多達32個SerDes通道,速率高達112 Gbps。AC7t1500器件是首款部署多通道GDDR6存儲器接口的FPGA,它滿足了需要高速緩存海量數(shù)據(jù)的編碼器的需求。除了在可編程邏輯陣列中采用的面向位的布線結構外,這些外圍設備還通過一個智能二維片上網絡進行互連。因此,Speedster7t FPGA是第一款能夠實現(xiàn)上述視頻處理用例的器件,該FPGA器件利用一種平衡架構,在計算密度和數(shù)據(jù)傳輸能力方面帶來重大改進。
Speedster7t架構通過提供總帶寬超過20 Tbps的多級片上網絡(NoC)層級化結構,消除了由于需要將高速I/O通道直接連接到以較低時鐘速率運行的可編程邏輯所造成的瓶頸。與采用FPGA邏輯陣列實現(xiàn)互連方式相比,NoC不僅在速率上有了大幅的提升,而且NoC還能在不消耗任何FPGA可編程資源的情況下傳輸大量數(shù)據(jù)。內部NoC不僅提供了更高的帶寬,而且Speedster7t FPGA中的智能連接機制也簡化了將數(shù)據(jù)從NoC端口傳輸?shù)竭壿嬯嚵兄械娜蝿铡?/p>
這種架構可支持進一步的設計創(chuàng)新,例如支持上述機器學習用例的面向矩陣的算術單元。通過使用諸如深度學習或較為簡單的統(tǒng)計方法等技術,設備可以分析數(shù)據(jù)流的模式,以觀察和增強數(shù)據(jù)包在網絡中的傳輸,并對不斷變化的情況做出快速反應。概括而言,以下三項Speedster7t的架構創(chuàng)新為上述用例提供了更好的FPGA設計:
高速存儲接口
Speedster7t架構師對存儲接口的選擇反映出了以太網和NoC連接可提供的巨大帶寬。一種可能的方法是在一系列產品設計中采用即將推出的HBM2接口。盡管這樣的接口可以提供所需的性能等級,但HBM2是一種價格昂貴的選擇,這將迫使客戶去等待必要的組件和集成技術進入市場。
與此不同,Speedster7t系列則采用了GDDR6標準,該標準為當今片外存儲器提供了最高的性能。Speedster7t FPGA是市場上首款支持該接口的器件,每個片上GDDR6存儲控制器可維持512 Gbps的帶寬。在單個AC7t1500器件中最多可帶有八個GDDR6控制器,因此一個Speedster7t FPGA器件可提供高達4 Tbps的總存儲帶寬。
對PCIe Gen 5的支持
除了以太網和存儲控制器,Speedster7t FPGA上提供的對PCIe Gen 5的支持還能夠與主機處理器緊密集成,以支持高性能加速器應用。PCI Gen 5控制器使其能夠讀取和寫入存儲在FPGA存儲層級結構中的數(shù)據(jù),包括許多位于邏輯陣列內的塊RAM,以及連接到FPGA存儲控制器的外部GDDR6和DDR4 SRAM。在FPGA邏輯陣列中實例化的數(shù)據(jù)傳輸控制器(例如DMA引擎),可以類似地通過PCIe Gen 5總線訪問與主機處理器共享的內存。無需消耗FPGA邏輯陣列內的任何資源即可實現(xiàn)這種高帶寬連接,并且設計時間幾乎為零。用戶只需啟用PCIe和GDDR6接口,即可通過NoC發(fā)送事務數(shù)據(jù)。
PCIe子系統(tǒng)與任何GDDR6或DDR4存儲接口之間的直接連接如下圖10所示。
圖10:無需消耗FPGA邏輯陣列即可實現(xiàn)PCIe和GDDR6之間的數(shù)據(jù)傳輸
機器學習處理器(MLP)
對于計算密集型任務,在Speedster7t FPGA上部署的Speedster7t機器學習處理器(MLP)是靈活的且可分配的算術單元。機器學習處理器是高密度乘法器陣列,帶有支持多種數(shù)字格式的浮點和整數(shù)MAC模塊。機器學習處理器帶有集成的存儲模塊,可以在不使用任何FPGA資源的情況下執(zhí)行操作數(shù)和存儲級聯(lián)功能。機器學習處理器適用于一系列矩陣數(shù)學運算,從5G無線電控制器的波束成形計算到加速深度學習應用,如視頻處理系統(tǒng)所需的數(shù)據(jù)流模式和數(shù)據(jù)包內容分析。
圖11:機器學習處理器原理框圖
結論
雖然ASIC的性能通常很高,但它只支持設計時設想的功能集,不能進行現(xiàn)場升級;CPU是最靈活且最易于設計的,但是其時鐘頻率已經難以提升,其性能大幅提升的時代已經結束;隨著工作負載逐年增加,CPU已無法滿足需求。FPGA在性能和靈活性之間提供了良好的平衡。由于需要大量的并行處理,因此視頻編碼、解碼和圖像處理算法都更適合于用FPGA來實現(xiàn)??傊?,基于FPGA的解決方案可以縮短上市時間,具有高度的可定制性,并且可以有效地用于實現(xiàn)不斷發(fā)展的算法。