《安創“芯”視野》第31期,邀請到Xilinx軟件和AI解決方案市場部高級經理劉珊珊,她圍繞賽靈思最新推出的邊緣側智能視覺加速系統模塊及統一的Vitis軟件工具開發流程,為大家介紹如何快速打造低時延、低功耗、高吞吐的端到端智能視覺解決方案。
(以下是分享內容整理)
大家好,我是來自賽靈思軟件AI解決方案市場部的劉姍姍,今天分享的主題是“自適應計算助力智能安防快速升級”,主要包括以下四個部分:
自適應計算改變世界
近年,隨著自動駕駛和5G的興起,以及云計算和互聯網的發展,我們看到應用市場正在經歷著前所未有的需求變化。隨之而來也給前端的研發和產品設計工程師帶來了諸多問題,比如不斷演進的AI算法和模型、持續增長的安全和保密需求以及不斷增加的傳感器類型和傳感器接口等等。就目前來看,這些需求引領的創新周期已經遠遠超過了一個芯片設計的周期。為了應對這樣的變化,賽靈思根據實際情況,將產品的適應性和靈活性作為主要發力點,也因此受到了越來越多人的關注。
以往在談及FPGA的時候,大家可能還非常地陌生;但是近幾年,隨著AI和大數據技術以及它們相關應用的蓬勃發展,我們再次提到FPGA的時候,相信很多人已經有了一個粗淺概念。雖然在真正的工作中大家不一定會接觸并用到它,但是在特定領域進行數據處理時,它將是一個非常重要的芯片,因為FPGA帶來的正是這種強大的應對變化的能力。與此對應地,賽靈思的企業愿景也正是致力于打造靈活應變、萬物智能的世界。因此,我首先與大家分享的是賽靈思如何通過賦能創新來幫助人們實現健康守護、實現高品質的生活和探索宇宙的夢想。
在當下席卷全球的新冠疫情中,賽靈思始終優先來支持全球客戶進行醫療設備的研發和生產。早在2020年1月,在武漢疫情最為嚴重的時期,賽靈思就開始支持邁瑞來開展病患智能轉運監護儀的大規模生產。在整個過程中,賽靈思投入了大量的物流和技術支持來幫助儀器的研發和投產,為醫護人員提供了更便捷、更高效的監護設備,也為病患提供了生命保障。在醫療領域,很多耳熟能詳的企業包括外資的GE、飛利浦、西門子以及國內的邁瑞、開立,聯影等企業都是賽靈思的客戶。
在汽車領域,賽靈思正在幫助全球很多合作伙伴不斷地提高多傳感器的數據處理能力,從而改善車輛的感知,提高車輛在道路行駛中的快速決策能力。截止到目前,賽靈思在全球汽車市場累計出貨量已經達到了2億顆芯片,其中1/3用于自動駕駛相關場景。從去年7月開始,國際社會掀起了新一輪星際探測熱潮。中國、美國、阿聯酋都分別向火星發射了太空探測器。而賽靈思也在其中發揮了非常重要的作用——它為毅力號火星車提供了核心的器件。毅力號火星車在火星表面的著陸導航、自動駕駛以及相關的加速成像和掃描等任務,都是通過賽靈思的一些航空航天器件來實現的。
因為獨特的靈活性和適應性使得賽靈思能夠服務來自全球60多個國家,超過60000+客戶來進行云端到邊緣側的應用部署。除了剛剛介紹的航空航天、汽車和醫療方面之外,賽靈思也賦能了其它領域。比如,在音視頻廣播方向,我們會去做一些與視頻編解碼以及信號質量增強相關的任務;我們在存儲和網絡加速方面也有著非常優異的表現,因為現在數據中心里大量的異構計算高性能平臺都離不開FPGA;在工業和視覺方向,原來FPGA主要做一些工業控制,但現在已經融入到機器視覺與機器人的相關應用中去;通信領域,不管是在有線還是無線場景里,我們都會用到FPGA來做一些與信號處理和協議棧處理的相關任務。
為了更好地向我們的用戶提供自適應提升的能力,賽靈思這些年里一直在不斷地加速轉型。從1985年我們發明了FPGA開始,賽靈思不斷延續FPGA的核心價值,把它打造成了可以滿足各種應用需求的片上系統。比如隨著28納米和16納米制程的演進,我們不斷推出了MPSoC、RFSoC,以及最新的7納米制程上的ACAP平臺。通過不斷努力,賽靈思研發出了更易于軟件編程的體系結構,同時也為客戶提供了一些更為廣泛的部署方式。在傳統場景里,客戶采用賽靈思器件時都是把芯片集成到自己的系統里去。而從18年開始,我們不斷推出了像Alveo或是Kria SOM這種即插即用的加速卡和系統級模組,使得大家能夠直接從系統級開發去做相關應用。此外,我們很多合作伙伴如阿里巴巴、AWS、Nimbix等云服務商會把FPGA作為一個云端服務提供給大家,即FaaS這樣的服務,從而使得更多的客戶能夠更輕松地訪問到這些靈活易用的資源。
在AI領域,賽靈思自適應計算平臺所具有的domain specific architecture(特定領域架構)可以滿足AI創新在速度方面的要求。目前,很多AI最新的神經網絡正在日益涌現,那么,怎么樣能夠讓硬件處理平臺有效地加速最新的神經網絡成為了一個很大的挑戰。賽靈思的MPSoC平臺可以妥善解決上述問題,它最大的優勢是具備整體應用的協同優化能力。很多前端研發人員以及產品開發人員在實際應用中都非常清楚地了解,在一個真實的智能器件或是解決方案里,我們除了需要做AI推理的任務外,還有大量的前處理和后處理工作,其中又包含了大量的數據交互和計算工作。如果通過板級的交互來進行數據和數據之間的互通,這很容易導致一些系統級的性能瓶頸。因此,賽靈思把這些關鍵功能進行硬件底層的優化加速,再把它緊緊耦合在一個單芯片的方案中。這不僅能夠極大地提升整個系統的工作效率,并且降低了端到端的時延和整體的系統功耗。
智能安防解決方案關鍵能力及案例
根據自己的理解,我將廣泛的智能安防場景分為三類:第一個類是我們在城市里能夠見到的與安防相關的一些解決方案或系統,比如我們非常熟悉的面向公安、交通、消防以及其它的政府應急指揮部門為公共服務而建設的監控系統。我們可以看到,所有的這種系統都有自己相互獨立的一套基礎設施和網絡,以保證它們在一些非常關鍵的時間對關鍵信息的調用和留存。比如,我們在道路上經常見到的燈桿上的一排攝像頭就可能歸屬于不同的公共體系;樓宇和園區這類公共場所也有與人員和場所運營服務相關的一些智能化系統。而這些系統里其實都分布著大量的攝像頭。其中,有的是傳統的模擬攝像頭,部署得比較早,數量比較多;有的是數字攝像頭;有的則是近幾年最新建設的具有一些智能功能的智能攝像頭。而所有的攝像頭在這樣的安防系統里都充當著一個信息采集員的角色。但是,如果所有的采集員都將本地采集到的信息上傳到云端或是存儲端,就會帶來非常大的數據傳輸壓力和存儲壓力。所以我們現在廣為采用的解決方案是先在前端把信息進行預處理,再把提取到的關鍵信息比如一些結構化數據傳輸到云端,最后進行存儲或是分析、決策等等,以支持智慧城市這樣一個非常大的體系的正常運轉。因此,我們在邊緣側就需要引入大量的智能處理能力。
而在行業級場景里,我們關注更多的是電力、能源,礦產這些相關行業。這些行業更加注重安防,因為這些行業場景里普遍存在著危險因素,而且這些場景里的工作環境可能也比較惡劣,因此,對于我們解決方案的要求級別也非常高。比如,油井礦井生產系統的監控光線和本身的工作環境都很差;一些電網自動巡檢系統可能對我們的安防解決方案也有一些差異化的要求。
最后是消費級場景。目前應用最多的場景是人臉等生物特征識別的門鎖,其次是一些用來防范異常入侵和監控老人小孩行為的小型家用攝像頭,以及家里水煤電氣的異常情況告警系統。
智能視覺方案常見處理流程
我們不難發現,無論是汽車的前視攝像頭還是安防的IP camera,甚至是特殊場景里特殊用途定制的智能攝像頭,它的基本處理流程都是相似的。首先,要有前端的圖像獲取模塊,以及對圖像進行處理的模塊,比如前處理和后處理;接下來會進入到與AI相關的推理模塊,比如做一些檢測、分類、分割等等,也會基于AI檢測的結果去做相應的決策;同時,基于我們方案的需求,對它進行顯示或者編碼傳輸。這種流程其實是我們現在在主流的視覺方案里比較常見的一種流程。
基于上述流程,賽靈思為這類應用提供了一個全流程的應用加速庫。比如,在視頻獲取、后處理以及顯示環節,我們的加速庫提供了豐富的接口IP,包括了大家常見的MIPI、HDMI、USB、SDI、DP等接口。這些非常豐富的接口IP庫能夠支持設備之間的互聯互通。同時,我們也給大家提供了視頻相關的編解碼處理能力,并且,在視頻的后處理和顯示方面也提供了VCU,實現視頻流的編解碼功能。
了解了視頻圖像的獲取以及后處理環節之后,我們來看看它的一些核心功能。一部分核心功能其實就是與視覺相關的library,就是我們剛剛略過的視頻前處理和后處理里的內容。為什么要略過呢?因為我后面會做更詳細的深入分析,現在我們先把它放一下。除此之外,另外一個重要的功能是用來做AI加速的一個DPU的核。這個DPU叫做deep learning process unit,是我們專門為大量的卷積網絡運算提供的一個從底層硬件層面做好并加速的IP核。我們在這個核里已經對現在主流的一些神經網絡框架比如Caffe、TensorFlow、PyTorch等都做好了底層的優化。我們大概有100多個優化好的網絡正在GitHub上做開源,大家可以結合自己應用需求,對它進行重訓和部署。在這里,我們也針對不同資源的器件給大家提供了8個不同大小型號的IP核——從512的到4096的,就是我們能夠用到的在FPGA上的邏輯資源。大小不一樣,提供的IP核也不一樣。綜上所述,我們做AI加速的核心之一就是DPU的這樣的一個加速IP。
下面來看圖像處理環節,因為這個環節往往更能體現FPGA的靈活性和方案的差異性。首先,我們來看前處理。前處理主要包含兩大塊任務:一個是ISP,一個是與AI相關的一些任務的前處理。我們先來看ISP環節。前端的sensor會將光信號變為電信號,這時我們會得到一種貝爾模式的數據,然后,我們需要把這個數據重建為肉眼可見的RGB格式圖像,并且對這個圖像進行一系列的處理,以得到能夠滿足應用要求的一個圖像。我們熟知的比如華為海思、RK、安霸等企業的安防解決方案里主要采用的SoC,通常是已經具備了一些標準的ISP功能,比如把貝爾格式變成RGB格式、做降噪、做自動曝光、做白平衡、做聚焦、以及做色彩校正等等。但是,需要強調的是一些特定的需求。比如,當我們需要做黑光相機或者高速相機等這類在特定場景里有特定用途的差異化非常大、要求非常高的相機的時候,我們對ISP就會有更高的要求,就需要有更靈活的架構來對ISP進行定制。
在機器學習模型訓練過程中,我們對于輸入數據會做一些特別的定義,比如說數據格式是什么樣的,RGB還是YUV?它的分辨率是怎么樣的?它的比特位寬是什么樣的?同時還有一些做正則化的要求。對于這些任務,賽靈思提供了經過底層硬件層面加速的庫來滿足大家的個性化需求。在后處理環節,我們剛剛著重介紹了我們是采用DPU的IP核來做神經網絡加速的,但是實際上在真實的任務中,除了用到這種神經網絡加速之外,我們還會用到比如3D視覺、虛擬增強現實、路徑規劃、行為估計以及環視攝像頭的拼接和處理等等的一些計算機視覺方案。在這些方案里,大家用到的不僅僅是這種卷積加速還有其它的一些運算方式,所以,我們往往會采用AI和CV混合的方案來解決實際的問題。總的來說,針對這樣的需求,除了DPU的能力之外,我們同樣提供了一個經過硬件加速的CV Library來實現差異化的方案。這也是我們與傳統安防芯片功能不一樣的地方。
這是一款基于賽靈思MPSoC平臺開發的智能相機。它采用了ZU4芯片。大家可以看到,這個方案具有非常豐富的物理接口以及非常強大的圖像處理能力和AI能力。典型的接口就是我們所熟知的Mini DP、USB等接口。其中還提供了各種內存方案,比如eMMC、DDR,內置了一個視頻編解碼的內核,可以實現4K60幀的實時編解碼能力。這款相機前面的感光和ISP是由我們的合作伙伴安森美開發的。整體來看,這款智能相機支持120幀的高清成像。從這個智能相機智能的角度來講,它具有超低延遲的特性。其實這個方案在FPGA內是用了我們硬化的視頻編解碼的一個內核去做的圖像編碼,所以,它在編碼的同時在并行做著一個任務。是什么呢?就是一些與AI相關的處理流程,包括MIPI接口進來后的協議處理、resize前處理、目標detection、結果輸出。在整個過程中,因為AI和視頻編碼是并行發生的,所以在每一幀,從圖像獲取到編碼的整個流程需要70毫秒,但是我們的AI處理能力只用到40毫秒。所以,在這個方案里,我們整體的輸出并沒有因為做AI分析而被延長。我剛剛提到這款智能相機的解決方案是用了一顆ZU4的芯片,與之匹配的是我們B3136的一顆DPU的內核。它可以做到的實時處理能力是200幀每秒,但是在前端很多應用場景里我們其實用不到200幀,所以,我們就可以把它作為一個邊緣計算盒子來做多路視頻,比如可以做4路視頻的實時處理和分析。
Kria SOM智能視覺開發平臺介紹
這個SOM也是基于MPSoC架構的,剛剛提到的案例采用的是ZU4芯片,而這個SOM采用的是ZU5芯片——它的資源更豐富些。首先來給大家解釋為什么我們要做這樣一款模組。雖然這些年來賽靈思一直致力于不斷研發最新的靈活應變的硬件架構來實現賦能創新,但是我們客戶在使用賽靈思器件的時候確實還是存在一些從底層向上開發的不便。以前,客戶們需要將芯片集成到自己的系統中。這其中包含了大量的系統集成工作,而且還要去設計板子和做代工,等把這個板子調好之后才能在上面做應用開發。所以,為了把這個創新流程縮短,讓大家能夠采用相對標準化的平臺來把靈活應變能力擴展到更廣泛的應用里,我們一直在試圖尋找一種更為友好的部署方式。在18年,我們推出了一個在數據中心側可以即插即用的Alveo系列的加速卡。過去幾年里,我們的Alveo卡在金融、安全、高性能計算等等領域得到了非常好的應用,并且發揮了非常重要的作用。于是,出于同樣的構想,我們今年推出了一個在edge端也能夠即插即用的最小化的系統級模組,希望能夠在edge端支持更為廣泛的應用需求,尤其是智能視覺方面的一些創新需求。
第二個原因是,賽靈思這些年在開發工具上也做了很多投入。為了讓我們的軟件和應用開發人員能夠很容易地上手我們的自適應計算平臺,而不用從最底層的RTL層面去做開發,我們推出了這款標準化的硬件平臺,希望大家可以在這個標準化硬件平臺上去做標準化的軟件設計流程以及各類已經做好的加速應用。當然,這也是一個開箱即用的平臺,成本非常低。能夠讓更多的人以非常低的成本在各類應用里感受到FPGA的這種靈活架構是極具優越性的。與此同時,這個平臺也是一個異構平臺。它里面有四核ARM A53的應用處理器、兩核R5的實時處理器、Mali的GPU、256K的邏輯單元。基于上面這些資源去與我們的DPU B3136的一顆內核做匹配的話,它最大能夠實現1.4 TOPS每秒的AI處理能力。這是什么概念呢?這表示我們對一些主流的神經網絡模型進行相應的優化之后,基本上能夠做到實時或者準實時的處理能力。在接口層面,這塊核心板提供了雙排240-Pin Connector,大家可以在上面去做一些非常豐富的擴展。它最多可以支持15個camera,像常見接口的camera以及CMOS、CCD需求類型的camera都能支持。此外,它最高支持擴展到40G的Ethernet,也包括了多個USB接口以及具備4GB的DDR4 存儲能力。可以說,我們所能想到的在邊緣側與AI推理相關的場景基本上都能夠滿足這樣的要求了。
這是一塊即插即用的系統級模組。我們為開發者提供的這個入門級開發套件可以讓沒有任何FPGA開發經驗的開發者在一小時之內快速上手,讓一些與AI、智能相機、AI box等相關的應用跑起來。怎么做到的呢?通過我們與賽靈思官方以及第三方合作伙伴一起合作開發出了一些已經做好加速的應用:Accelerated Applications。這些應用都被我們放在了賽靈思官方網站上的應用商城里。應用商城里有一個Kria SOM專區,大家可以在這里找到我們基于這一款標準化的硬件平臺打造的若干標準化的一些應用,且這些應用已經經過了加速優化。另外,我們已經通過overlay的方式把這些應用進行了封裝,大家不需要在底層做任何的調試和部署,就可以直接把這個應用丟進去,就會通過非常簡單的命令行代碼讓它跑起來。我們的這塊板子就變成了一個智能相機或者是一個AI box。
其實,現在賽靈思原廠已經做好了像smart camera這種model,它可以支持多種接口的輸入,具備多種前后處理功能以及最核心的AI推理能力,最終來對這個攝像頭做顯示或傳輸。對于以上所有功能,我們已經在里面都封裝好了,只需要命令行語言去對它進行調用即可。同時,這里面也帶有RelD功能的AI box和一些基于OpenCV的瑕疵檢測。我們的合作伙伴也對此做了非常多的貢獻。
其實,我們希望提供標準化的硬件和軟件開發流程,讓更多人能夠把很多廣泛應用需求做出來并且貢獻出來。一方面,我們的客戶會根據自己的需求快速評估這樣的應用和器件,可能在這上面還會去做一些進一步優化的工作;另一方面,我們也希望極具創新能力的開發伙伴能夠通過我們的官方平臺把自己做得非常好的一些加速應用進行對外發布和推廣。與此同時,我們也給大家提供了非常專業的數字版權證書的認證和保護服務。通過這項服務,我們既可以保證大家的知識產權,也可以幫助大家在這個過程中通過各種各樣的方式比如使用時長或是license等來幫助大家把自己做好且加速的應用商業化。
為了這樣一個標準化的硬件平臺,我們推出了標準化的軟件開發流程。首先,作為一個邊緣側的智能視覺加速的平臺,它可以支持基于yocto的Petalinux也可以支持ubuntu,極大地滿足了嵌入式開發工程師的需求。同時,通過這個統一的開發工具和平臺,我們的VITIS及VITIS AI可以為不同類型的開發者提供最適合的開發工具以及開發流程。
對于AI開發者而言,他可以完全不去顧及AI開發之外的所有其它流程,只用VITIS AI來定制化自己的神經網絡模型的加速即可。其中,DPU實現了我們所需要的大部分主流神經網絡框架的底層加速,所以,開發者只需要根據自己客制化的AI模型和DPU進行相應匹配,然后去做相應的參數設置、型號匹配、模型優化等流程,就可以得到一個能夠用于部署的網絡模型。因此,我們只需要去做神經網絡相關的替換工作即可,這極大地降低了AI開發者使用MPSoC門檻。
對于軟件開發者而言,VITIS開放了大量的經過優化的軟件加速庫,軟件開發者只需要使用像C、C++、Open CL這種熟悉的開發語言以及開發環境來調用這些庫即可。除了DPU部分之外,我們就可以對它的前處理、后處理以及與它的視頻加速流水線相關的一些應用做進一步的定制化加速,從而得到高性能低延遲的一個視頻流解決方案。
對于硬件開發者而言,不管是使用VITIS還是使用VIVADO開發工具都可以更充分地發揮出FPGA架構的靈活性以及我們整個片上系統的完備性。我們可以基于RTL的設計有針對性地對應用的全流程進行優化。
賽靈思開發者計劃
賽靈思開發者計劃是一個面向全球硬件工程師、軟件工程師、算法工程師、系統工程師、學者、科研人員和學生推出的專項服務計劃。為了更好地完善賽靈思的生態,我們希望能夠引入一些最具突破性構想的創新者和變革推動者,賦能他們更便捷、更高效、更全面的自適應計算服務,從而加速創新的發生。為此,我們打通了賽靈思內部和外部很多資源,為大家提供了包括課程學習、項目開發、交流分享等內容的一個自循環的小生態體系。在這個體系里,大家可以通過更多的途徑得到一些官方技術文檔教程、參加免費培訓、賽靈思的人才認證計劃等。在這個過程中,我們也通過給大家提供免費的license和免費的硬件來鼓勵大家去做開發嘗試;同時,也通過我們的月度項目以及自適應計算挑戰賽來去激勵大家做更多的自適應計算方面的項目開發嘗試。此外,我們也打造了豐富的線上線下活動與大家進行交流分享。線上,我們有社區、應用商城、開發者網站,所以不管是在個人層面還是企業小型創業項目層面,我們都給大家提供了一個全方位交流分享的機會;同時,也為大家量身定制了很多線下專屬活動。
今天也借這個機會跟大家做一個小征集。一個是征集一些月度項目。如果大家有在賽靈思平臺上做出來的比較好的作品,我們希望能夠把這些作品征集過來,然后通過我們官方平臺進行展示;同時,也會通過我們的一些技術專家資源幫助大家進行進一步的優化,并通過我們的市場資源把它推向市場。所以,我們希望大家把自己做好的這些作品,比如一個早期的小demo,發布到開源的平臺上去,然后把這個demo視頻傳到第三方網站比如B站、優酷視頻等等網站上。之后,你只要把這兩個鏈接發給賽靈思開發者計劃的郵箱即可,我們就會和你在線下做進一步的溝通和交流。另外,我們希望征集更多的開發者計劃的志愿者幫助我們服務更廣泛的開發者群體。如果你是一個互聯網意見領袖,或者你在做自己的科技類自媒體,或者你是一個資深的FPGA發燒友,或者你是高校里科技相關社團的非常活躍的小伙伴,我們非常歡迎你的加入。我們希望這樣的人能夠把自己周邊非常活躍的技術交流圈子介紹給我們,讓我們在其中投入相應的市場資源,量身打造一些專屬活動,從而為更廣泛的開發者朋友們提供更好的服務。所以,關于以上兩點,大家有什么想法都可以聯系我們。
以上就是我今天分享的內容。謝謝大家。
? ? ? 責任編輯:tzh
評論
查看更多