機器學習正快速成為物聯網(internet of things;IoT)裝置的一項確定特色。家電現在開始支援語音驅動介面,能夠智慧地因應自然語言模式。現在,透過在智慧型手機相機上向機器人示範流程,就能向機器人展示如何在工廠現場四處搬移材料,並為其他機器編程,同時智慧型手機的功能也變得更聰明了。這些應用程式是利用至今最成功、能處理複雜、多面向數據的人工智慧結構:深度學習網路(deep neural network;DNN)。
智慧向邊緣裝置移動
到目前為止,應用DNN科技作為嵌入式系統的議題向來是電腦效能的期望。儘管運算量比訓練時少,但在輸入數據變成受過訓練之辨識與分析DNN的推論階段期間,仍必須有每秒數十億的運算流量數據,如語音及影片。因此,在許多情況下,會將處理轉移至可提供大量動力的雲端,但對於邊緣裝置還是沒有理想的解決方案。
關鍵任務運用案例,如自動駕駛車輛與工業機器人,會利用DNN的即時辨識物體能力,並改善情境感知。不過,延遲、頻寬與網路可用性的問題並不適合雲端運算。在這些情境中,執行者承擔不起雲端無法即時反應的風險。
隱私則是另一個問題。儘管消費者很欣賞裝置中如智慧揚聲器等語音協助的便利性,但他們也漸漸會擔心當定期將對話內容錄音檔轉移到雲端時,自己的個資可能會不慎遭到公開。隨著搭載相機鏡頭的智慧揚聲器,以及能啟用視訊的機器人助理出現,這種擔憂也跟著加劇。為了讓顧客消除疑慮,製造商正在研究如何在最終裝置中將更多DNN處理移動至邊緣。主要的問題就在於DNN處理不適合傳統嵌入式系統的結構。
傳統嵌入式處理器不足以應付DNN處理
以CPU與GPU為主的傳統嵌入式處理器,無法有效率地為低功率裝置處理DNN工作量。IoT與行動裝置對功率及面積有非常嚴格的限制,而必須有高性能才能進行即時的DNN處理。功率、效能與面積三者的組合就稱為PPA,必須為了手上的任務進行最佳化。
解決這些問題的一個方法,就是為DNN處理提供可存取晶載暫存記憶體配置的硬體引擎。這個作法的問題在於,開發者必須具備高度靈活性,每個DNN執行的結構都需要依其目標應用做調整。專為語言辨識設計及訓練的DNN,將會混合不同於影片專用之DNN的卷積、池化及全連結層。由於機器學習尚未成熟,還在持續發展,因此為了設計能因應未來的解決方案,靈活性就至關重要。
另一個常用方法是為標準處理單元增加一個向量處理單元(VPU)。這個作法能更有效率地計畫,並能靈活操控不同類型的網路,但這樣還是不夠。讀取來自外接DDR記憶體的數據是與DNN處理相關,極為耗電的工作。因此,數據效率及記憶體存取也必須經過詳細檢查,以作為完整的解決方案。為加強效率、可擴充性與靈活性,VPU只是AI處理器裡其中一個必要的重要模組。
啟用最佳化頻寬與傳輸量
例如CEVA建立了一個結構,能同時滿足DNN的效能挑戰,以及保留處理最廣泛多樣內建式深度學習應用程式所必要的靈活性。NeuPro AI處理器包含了一個專業、最佳化的深度神經網路推論硬體引擎,以處理卷積、全連結、活化與池化層,另外還利用了高效、可編程的VPU進行未支援的其他層與推論軟體執行。這個結構搭配了CEVA深度神經網路(CDNN)軟體架構,能啟動最佳化繪圖編譯,並能在運行時執行。
透過支援8位元與16位元算術,就能達到進一步的性能最佳化。對於一些運算來說,必須有精確的16位元計算,而在其他情況下,使用8位元計算就能取得幾乎相同的運算結果,如此就能明顯減少工作量,進而減少功率的消耗。NeuPro引擎能讓這些混合操作達到平衡,因而讓各層都達到最理想的執行。
結合最佳化後的硬體模組、VPU,以及有效率的記憶系統,就能提供可擴充、靈活且極具效率的解決方案。除此之外,CDNN也能利用按鍵網路轉換與現成的程式庫模組,將開發變得簡化。最後的成果就是一個功能完整,並讓物聯網裝置設計師有能力在下一代產品中充份運用本地化機器學習的AI處理器。
日期:107-06-01 資料來源:電子工程專輯