賽靈思單羿:如何基於FPGA定製計算,構建AI及智能安防系統?

賽靈思單羿:如何基於FPGA定製計算,構建AI及智能安防系統?

賽靈思單羿:如何基於FPGA定製計算,構建AI及智能安防系統?

當前面對大量應用需求和海量非結構化數據時,需要的不是一個通用的處理器架構,而是針對不同領域的專用計算架構(DSA),去適配不同的應用和數據結構, “定製計算”由此而來,它也是解決現在智能社會多樣需求的一個重要手段。

近日,由雷鋒網 & AI掘金志主辦的「全球AI芯片·城市智能峰會」,在深圳大中華喜來登酒店盛大召開。

延續雷鋒網大會一貫的高水準、高人氣,「全球AI芯片·城市智能峰會」以“城市視覺計算再進化”為主題,全面聚焦城市視覺與城市算力領域,是業內首個圍繞“算法+算力”展開的大型智能城市論壇。

峰會邀請到了業內極具代表性的14位業內知名專家,世界頂尖人工智能科學家、芯片創業大牛、產業巨頭首席技術高管、明星投資人齊聚,為行業資深從業者們分享前瞻的技術研究與商業模式方法論。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

在大會上午環節,賽靈思人工智能研發高級總監單羿發表了題為《基於FPGA定製計算構建AI系統》的精彩演講。

以下是單羿的演講全文,雷鋒網做了不改變原意的編輯和整理:

大家好!我是賽靈思單羿,之前在深鑑科技做CTO。去年8月份深鑑科技被賽靈思全資收購,現在我在賽靈思主要帶領團隊負責AI研發和項目落地的接洽。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

我今天演講的題目是《基於FPGA為行業定製構建AI系統》,這裡面的一個關鍵詞是“定製計算”,後面我也會圍繞定製計算這一主題詳細介紹相關內容。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

賽靈思是一家美國上市公司,主要銷售FPGA芯片,年收入大概在30億左右。目前公司有4400多名員工,可以看到公司的規模在某種程度上甚至可能小於國內的一些創立不久的公司,所以是一家人均創造價值非常高的傳統芯片公司。

賽靈思的客戶群橫跨很多行業,從航天航空到汽車工業化,同時也包括安防和數據中心等領域。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

大家都知道賽靈思是世界上第一家Fabless半導體公司,我們發明了世界上第一款FPGA芯片。在FPGA這一賽道上主要有兩大玩家:一個是賽靈思,一個是Altera。由於整個行業都意識到了FPGA的重要性,所以英特爾在2015年花重金收購了Altera。

FPGA是一種非常穩定的芯片,可以看到大概平均在200萬個芯片中,只有不到2個才會出問題。賽靈思所銷售的芯片,都能保證15年以上的供貨週期。

我們不僅關注芯片這一側,而且更多是專注開發芯片所用的工具,比如推出了Vivado Design Suite、ACAP等平臺及相應的開發包。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

其實大家今天談AI芯片的時候,談得比較多的是性能、應用性,以及支持的範圍等,但其實在工業界,芯片很重要的一點便是穩定性、可靠性,尤其是在智能時代,當面對大量應用需求和海量非結構化數據時,需要的不只是一個通用的處理器架構,而是針對不同領域的專用計算架構(DSA, domain specific architecture),去適配不同的應用和數據結構。

定製計算這一概念,就是由此而來,它也是解決現在智能社會多樣需求的一個重要手段。

什麼叫做定製計算呢?我舉個簡單的例子,下圖是各種人工智能Network的名字,整個行業都在不斷地演進這些算法,但這裡我們需要思考一個問題:算力的演進能跟得上算法更迭速度嗎?

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

我們知道,通常一個芯片的研發需要兩年時間,要做到量產則更長。在這個時間裡,一般情況下,我們為舊的網絡打造一個處理器架構,但當芯片完成後,又出現了新的網絡,此時芯片原有的架構就很難滿足新網絡架構以及新算法對算力高效性的需求。在某種程度上講屬於打水漂了,浪費了投片的成本。

尤其是大家相繼邁入7納米制程之後,每顆芯片的成本開發成本動輒千萬甚至上億美金,所以很難會為AI算法未確定、應用未真正推廣的時候,去打造一款最終的通用芯片。

而在這個時候,FPGA則可以發揮它的作用。

FPGA是一種硬件可編程的器件,工程師可以在上面改變它的電路邏輯,人們通常在寫FPGA的時候,寫的是軟件代碼,但是心裡想的是電路結構、處理器結構。所以FPGA硬件可以反覆擦寫,這一特性,既降低了一次性投片的成本,同時也提高了芯片的處理性能。

下圖是賽靈思產品的一個特定應用域,它在處理問題的時候,往往有這樣一個流水線,來處理很多不同的任務。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

賽靈思想要做的,不再是用一顆通用CPU或GPU去滿足所有的應用。

我們的目的是,分析這個應用裡不同的特點:如每一個操作的數據流是什麼樣、每個操作所需要的精度如何、怎麼去做多級的存儲、怎麼去定製化一個芯片跟外界的I/O、通信的接口。像安防攝像頭,或者NVR、DVR,很多接口都是需要定製的。所以在這樣一個定製化需求的情況下,賽靈思可以用FPGA非常容易地去打造成一個AI處理器。

我們可以定製結構、定製數據寬度、定製存儲架構,甚至還可以定製接口,這些都是FPGA的優勢。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

所以在做AI產品的時候,FPGA是一個非常有力的助手,同時我們也非常關注安防這個垂直的應用領域。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

在安防前端低成本攝像頭類目中,賽靈思提供28納米的FPGA芯片。

而在更智能、更高端的攝像頭中,則提供16納米芯片,在雲端服務器這邊也有相應的服務器板卡解決方案。

賽靈思可以提供從“普通”到“高強度”等級的算力,以及非常高密度的計算服務器搭配,品類非常齊全,非常適合用於搭建整體的安防系統。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

舉個例子,我們在邊緣計算領域有多種芯片,這裡面僅僅列了非常少的一部分。用戶可以根據需求去選擇某一款芯片。比如說當用戶選擇一些友商的芯片時,往往只有三五種選擇,而這幾種選擇之間的跨度非常大,成本也是成倍上升的,而賽靈思每一顆芯片和每一顆芯片之間的差距相對比較小,價格也會更細分,所以用戶可以用更低的成本、更低的功耗去找到適應需求的那一顆芯片,執行任務。

這是之前在深鑑時候的一些嘗試,我們提供低成本的FPGA的模組,搭配其它友商的SOC做智能攝像頭。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

除此之外,也有可以提供接近500G每秒處理次數的高性能攝像頭模組,功耗只需要5瓦。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

我們通過16納米的FPGA芯片,不僅可以完成之前的功能,實現更強的運算能力,還可以把其它公司的SOC去掉,僅僅用一顆單位芯片,就能處理攝像頭芯片中AI的運算,包括編解碼和接口的功能,做到單芯片的解決方案。

同時我們還可以用單芯片做邊緣服務器裡對多路視頻分析的運算以及編解碼的解決方案。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

這是客戶松下對我們的評價,松下覺得我們產品主要特點是低延時和低功耗。這在攝像頭領域是非常重要的,攝像頭一般是在室外,功耗非常重要,而且我們處理的是實時圖像,不會把圖像緩存下來做批處理,後者是友商的模式,但是它不利於對實時場景的快速反饋。

所以低延時和低功耗一直是賽靈思在安防領域的一個重要賣點。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

在這個領域,我們也有一些低延時的解決方案,並且在不斷地調整AI架構去適應AI模型的更迭,同時更注重從端到端整體地解決一個AI部署之後的效率問題。

具體來看一下其中的一些挑戰:

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?
赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

從上圖的應用裡面可以看到,在面對諸多AI需求時,都有著不同算力大小的需求,而且往往場景和清晰度多樣。而且我們經常需要把多組模型、多組攝像頭的輸入放在一起,送到計算平臺裡,這中間對計算平臺的算力要求有很大的挑戰。

另外一點,這些模型僅僅是我們安防系統中核心AI方面的一部分,我們還有很多前處理和後處理的模塊沒有涉及到,於是推出了“機器學習+X”的概念,FPGA很適合做接口預處理和後處理的工作,結合對機器學習的運行能力,構建一個端到端的優化系統。

下圖是整體的解決方案:

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

我們給客戶提供的產品,從硬件角度是定製化硬件處理器體系結構,針對不同的芯片,去做不同規模的處理器給客戶選擇。

在上層同時也提供了一個完整的軟件開發環境,包括從用戶的模型輸入、分析、優化,以及編譯、部署、運行支持,都是一個完整的工具包。而且還輔助客戶去做很多參考設計,比如一些預處理和後處理的模型優化,也提供了很多相關的庫。

賽靈思希望做到的是在垂直方向給客戶提供一個軟件開發工具的優化,在水平方向給客戶提供一個端到端整體系統參考解決方案。

在垂直方向,賽靈思做了很多模型優化的工作。

我們知道客戶的模型一般是用GPU來做離線訓練,這些模型往往比較大而且是用浮點精度運算的,其實它並不一定適合放在實際的AI芯片或者是FPGA AI處理器上進行運算,所以只要保證精度,是可以做一些優化的。所以我們很多工作是為了基於FPGA在運算時有比較友好的模型和算法。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

以低精度的工作為例,現在很多的公司也在做這一塊,但大家基本上都在用8比特做處理,很少有人用浮點做實際的部署。

我們更進一步在嘗試4比特、2比特數據表達精度,當然這裡面遇到了很多挑戰,比如在做量化時,該怎麼去選取scale。浮點運算可以把scale做到1比特的運算,但是這需要浮點運算硬件單元,代價非常大。

所以我們在這裡用了2的冪次來優化,很多優化工作我們都會把它集成在工具裡。

此外,賽靈思進行了一些剪枝工作,今年也有把NAS放進來,取得了很好的效果,另外也有用到了一些multi-task的方式。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

賽靈思為客戶提供了對FPGA很友好的Model Zoo,在這裡面有80多種設計分類、分割、檢測、姿態的模型,這些模型在安防領域經常會有用到。它們至少會作為客戶的baseline,在這些模型上進行優化,同時基於Model Zoo,客戶也會感受到一個針對硬件友好的模型大致是什麼樣的,而不是隨意去設置一些模型結構,最後導致部署之效率比較低。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

而在水平方向上,賽靈思也是充分考慮客戶的實際應用需求。

從上圖中可以看到,DPU在前處理環節耗費的時間非常少,大量時間都耗在了後處理環節,後處理有一部分工作可以繼續在FPGA的邏輯裡優化,有一部分工作還可以在SOC的CPU處理器中利用應用加速的方式實現優化,所以這種端到端的方案,把客戶任務的處理時間從76毫秒後處理降到了13毫秒,這些解決方案也可以作為用戶的一些實際優化案例來進行參考。

前面講了兩方面的事情,一個是在硬件方面,我們採取定製計算的方式,給客戶提供定製化的硬件處理器結構,提供這種ID,同時這個ID可以把它嵌入在FPGA裡面。

第二方面賽靈思給客戶提供軟件的工具,軟件工具可以幫助客戶做一些模型的優化,同時給客戶提供很多端到端的參考解決方案,供用戶去參考,去做一些開發優化。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

今年我們還提出了兩個概念,第一個概念是Vitis。

Vitis是什麼?

大家知道之前Vivado的開發門檻非常高,需要使用極少數人懂的Verilog語言。針對這一問題,賽靈思針對Soc平臺提供SDK支持,嵌入式工程師可直接調用這些API,以及相關不同的處理軟件和工具。今年我們把這些工具集成在一起,變成了一個Unified API,用戶可通過軟件定義的方式,去使用邊緣和雲端芯片。這些芯片涵蓋一系列必要的支持,保證客戶能夠採用這種軟件編程的方式。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

我們來看上面這張圖,底下有相應的FPGA芯片和板卡。在上面我們給用戶提供各種各樣的Library,還有一些優化分析和調試的工具,再上層提供了非常多的Libraries,這些Libraries降低了開發難度,用戶可以不要做硬件。

Libraries涉及到大多數用戶會用得到的操作,比如說AI、編解碼、基本的數學操作、OpenCV等,都是我們把硬件描述語言寫成庫的形式,供用戶來調用。用戶只需針對它特定的應用領域,調用這些API即可實現編程,通過這種方式既降低了用戶的開發門檻,同時也保證了硬件上FPGA的效率得到充分發揮。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

而在AI領域,我們現在支持TensorFlow、Caffe、Pytorch這些主流的深度學習框架,同時也提供Model Zoo供用戶參考,還有AI解決方案給到用戶開發方案。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

除了在軟件上提供Unified的軟件工具鏈外,在硬件旗艦上賽靈思又推出ACAP(Adaptive Compute Acceleration Platform)即自適應計算加速平臺。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

它結合了分佈式存儲器與硬件可編程的DSP、多核SoC以及軟件可編程且同時又具備硬件自適應性的計算引擎。

上圖右邊綠色部分是我們針對AI做的處理器陣列,它有400多個AI計算核,解決了FPGA邏輯部分、運算頻率無法達到很高的問題。

而DSP部分,可以提供數學運算、乘法、加法等操作,紅色部分可以用它搭建靈活的結構,還有一些ARM、GPU核,以及標準接口、存儲接口等。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

這是一個非常複雜完整的SOC圖,在DSP部分獲得了10P、8比特的運算能力,當然做成1比特的話運算能力還能增加70P,這也是我們在8比特運行時所有算力的總和,數據非常可觀。與此同時,我們也看到最高可做到140P芯片運算的能力,不僅可以放到邊緣端,甚至還可放在數據中心,做成基於FPGA的高密度服務器。

來看一個簡單的例子,我們怎樣把AI運算放到ACAP平臺的:

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

在上圖中,我們首先從外部存儲去獲取運行所需要的Data、模型參數,然後進行片上的存儲。之後,把這些數據通過可編程的邏輯,做成高效的數據通路,然後送到AI引擎裡進行運算(綠色部分是為AI準備的一個處理器),最後把結果通過邏輯部分寫回到CPU,就能拿回到結果。

整個過程中,用戶有怎麼樣的開發過程?我以智慧城市項目為例進行介紹。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

首先,我們需要在CPU上把數據放到硬件上做預處理,同時還要跑一些AI功能,處理後再把數據送回去。

如果直接在邏輯上映射,效率會很低。這個案例是每秒6幀,我們把AI放到硬化的AI引擎裡面運行,就可以把效率提高到30幀每秒,進而把預處理在FPGA上加速,可以把它提高到40幀每秒,如果再利賽靈思自研的Vitis技術,可以做到80幀每秒。這是一些真實的案例,可以看到我們新一代的旗艦產品可以非常大地改善AI方面的性能,達到業界領先水平。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

總結一下我今天講的內容,第一個是在AI時代,我們很難用一種處理器去解決所有的問題,所以需要有不同的處理器結構,並把這些結構進行設計,從而映射在數十種FPGA芯片上,就能完成用戶對FPGA硬件的開發,用戶不需要去管硬件的邏輯,處理器就已經集成到FPGA裡了。在FPGA中利用針對特定AI領域的定製計算,可提供高效的用戶硬件平臺。

除了硬件優化之外,賽靈思還可以提供軟件的優化,給用戶提供FPGA或者硬件友好的AI算法模型,供用戶使用,以及端到端的優化技術,這些軟件工具來幫助用戶進一步提高效率,降低開發門檻。

最後就是我們今年新出的Vitis統一軟件平臺、異構的7納米的平臺,可以進一步幫助客戶打造一個低延時、低功耗的高性能處理平臺,同時用戶不需要付出太高的成本,像開發軟件一樣去使用像FPGA這樣的一個AI芯片。

主持人:賽靈思的安防芯片和海思3559A、3519有哪些不同?

單羿:海思的芯片在安防領域是一個非常完整和高適配的SOC,它裡面不僅有之前安防所用到的接口、編解碼,同時也集成了一些AI處理的功能。賽靈思和海思安防芯片最大不同的地方在於FPGA自身的區別,我們是一個可編程的硬件芯片,而海思的這幾顆芯片則是一個已經配套出來的ASIC,雖然可以在上面進行一定程度的編程,把一些AI模型Coding上去,但是當模型發生一些大的變化時,這時候為AI準備的功能效率可能會降低的比較快。賽靈思是可以在硬件上進一步優化,使得它適應新出現的模型。比如說這兩年比較火的MobileNet大家都用得比較多,它裡面的一些Depthwise Convolution對以往的AI處理器有著很大的挑戰,之前在部分芯片上面運行效率非常低。

但這對我們來講,並不是問題,我們只需幾周的工作就可以把它進行優化,重新燒寫到同樣的FPGA上,把處理器處理MobileNet的效率提升上來。這就是賽靈思和海思安防芯片的區別,最大的不同就在於我們硬件的可編程性,賽靈思可以根據算法優化來靈活優化處理器的結構。

關於全球AI芯片·城市智能峰會

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?

「全球AI芯片·城市智能峰會」是雷鋒網 & AI掘金志安防團隊繼「中國人工智能安防峰會」、「CCF-GAIR視覺智能論壇」後,全力打造的又一大品牌活動。

在上述三大論壇中,組委會先後邀請到了高文、Demetri Terzopoulos、權龍、華先勝、賈佳亞、孫劍、顏水成、田奇、程浩、張鵬國、浦世亮、殷俊、餘虎、李子青、申省梅、王曉剛、楊帆、陳寧、溫浩、陳瑞軍、張永謙、肖洪波、胡大鵬等在產學兩界享有盛譽的權威專家。

論壇內容圍繞「攝像機」這一介質入口展開,覆蓋AI安防產品、圖像與視覺智能算法、視頻芯片&服務器、投融資、商業模式等多個維度的主題,旨在打造業內最完整的智能城市論壇體系。

赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?
赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?赛灵思单羿:如何基于FPGA定制计算,构建AI及智能安防系统?


分享到:


相關文章: