日前,美國知名科技媒體Android Authority主筆Gary Sims對麒麟970進行了深度解讀,講述了麒麟970的人工智能NPU的工作原理,對芯片設計的深遠影響,以及為用戶使用場景帶來的跨越式體驗。
“神經網絡(Neural Networks)”和“機器學習(Machine Learning)”是近兩年移動處理器領域最流行的兩個詞。華為麒麟970的NPU(神經網絡處理器)、Google Pixel 2內置的IPU(圖像處理器),以及蘋果A11 Bionic,都是實現(xiàn)上述功能特性的專用硬件解決方案。
既然華為、Google和蘋果都在都在探索神經引擎處理器,你可能以為機器學習需要特定的硬件。其實不然,神經網絡可以在任何形式的處理器上運行,從微處理器到CPU、GPU甚至是DSP。
所以,問題的根本不在于處理器是否能利用神經神經網絡和機器學習,而在于它到底有多快,能提升多少效率。
如果時間倒退回30年前,當年的桌面處理器是沒有的FPU(浮點運算單元)芯片的,在486之后,Intel把FPU集成到了CPU內部,浮點運算性能大幅提升。而在很多實例計算中,全都是浮點數(shù)運算。這樣以來,有FPU和沒有FPU,運算效率天差之別。
而如今,移動處理器中的NPU也是類似的情況。你可能覺得我們并不需要NPU,就能使用神經網絡,但實時情況是,華為正在用事實案例證明,當遇到實時處理運算的情況,NPU是必須的。
簡單來說,“神經網絡”可以理解為“機器學習”中“教”一臺機器區(qū)別分辨不同“事物”的一系列技術中的一種。上述“事物”可以是一張照片、一個單詞甚至是一種動物的聲音,諸如此類。
“神經網絡”由很多“神經元”組成,這些“神經元”可以接收輸入信號,然后通過網絡再向外傳播信號,這取決于輸入的強度和自身閾值。
舉個簡單的例子,神經網絡正在監(jiān)測一組燈其中一個的開關,但在網絡中,這些燈的狀態(tài)只能0或者1來表達,但不同的燈可能會出現(xiàn)一樣的開關狀態(tài)。
那么問題來了,神經網絡怎么知道是該輸出0還是該輸出1呢?沒有規(guī)則或者程序能告訴神經網絡,輸出我們想得到的邏輯答案。
唯一的方面就是對神經網絡進行訓練。大量的“樣本”和預期結果一起被注入到神經網絡中,各種各樣的閾值反復微調,不斷產生接近預期的結果。這個階段可以稱為“訓練階段”。
這聽起來很簡單,但實際上相當復雜,尤其是遇到語言、圖像這種復雜樣本的時候。一旦訓練達成,神經網絡會自動學會輸出預期結果,即便輸入的“樣本”之前從來沒有見過。
神經網絡訓練成功后,本質上就成了一種靜態(tài)神經網絡模型,它就能應用在數(shù)以百萬計的設備上用于推理,在CPU、GPU甚至是DSP上運行。這個階段可以稱為“推理階段”。
Gary Sims指出,“推理階段”的難度要低于“訓練階段”,而這正是NPU發(fā)揮專長的地方。
所以,華為麒麟970最大的不同是,專門設置了NPU硬件芯片,它在處理靜態(tài)神經網絡模型方面有得天獨厚的優(yōu)勢,不僅更快,還更有效率。事實上,NPU甚至能以17-33fps實時處理智能手機攝像頭拍攝的“直播”視頻。
從架構來看,麒麟970像是一臺“發(fā)電站”,內置8顆CPU和12顆GPU,另有移動網絡連接以及多媒體處理模塊,晶體管規(guī)模達到了史無前例的55億顆。據(jù)華為透露,NPU大約內含1.5億晶體管,不到整個芯片的3%。
這對于一款移動處理器來說尤為重要。首先,NPU的加入不會明顯增大處理器的尺寸、成本,這就意味著,NPU不僅能放入旗艦手機,一些中端手機也能適用。在未來5年,NPU將對Soc設計產生深遠影響。
其次是功耗和效率。NPU并非“電老虎”會犧牲手機的續(xù)航,相反它能高效的幫CPU承擔大量推理運算的任務,反而能節(jié)省不少功耗。
在最后的總結中,Gary Sims表示,如果華為能吸引更多第三方App開發(fā)者使用NPU,其前景不可限量。想象一下,當App在使用圖像、聲音、語音識別的時候,全部都能本地處理,不再需要網絡連接或者云服務,App的使用體驗將大大提升和加強。