人工智能的最近一次浪潮起源于 2011 年前后深度學習(Deep Learning)引起的大發(fā)展。在其背后,快速發(fā)展的 GPU 功不可沒。近年來,人們逐漸認識到計算芯片對于人工智能的重要性,圍繞 AI 任務進行專有加速的芯片越來越多,但無論是 AlphaGo 背后的谷歌 TPU 還是加入了全新 Tensor Core 結構的英偉達 Tesla V100,這些芯片都是為服務器端進行設計的,在移動端對于機器學習任務加速的 SoC 還未出現。9 月 2 日,在德國柏林舉行的 IFA 2017 展會上,華為正式發(fā)布了全球首款移動端 AI 芯片麒麟 970,一舉填補了這一空白。
在發(fā)布會后,機器之心獲取了有關麒麟 970 的第一手資料,并進行了深度解讀。這款年度最受關注手機芯片的性能如何?讓我們先睹為快。
新一代芯片麒麟 970
麒麟 9 系列一直是定位于旗艦機上的智能手機芯片。華為認為,此前的兩代產品和國外主要競爭對手在性能上已經可以做到各有勝負,而在 CPU 能耗方面,麒麟芯片還更具有一定優(yōu)勢。作為最新一代產品,麒麟 970 繼承了此前的領先技術。新一代芯片采用了業(yè)界最先進的工藝,內置 4 個用于處理重負載任務的 Cortex A73 核心,4 個 Cortex A53 核心,GPU 則為全新一代具有 12 個核心的 Mali-G72 MP12,所有參數都達到了旗艦產品的級別。
華為麒麟 970
與此同時,麒麟 970 不出所料將制程提升到了 10nm 級。制程始終是芯片提升最主要的手段,芯片能力的提升有兩個互相影響的方面:性能和功耗。只有工藝的提升才能讓這兩個方面同時受益。麒麟 970 采用了臺積電(TSMC)的 10nm 工藝,是目前業(yè)界最為先進的芯片制造工藝。
另外,在通信方面,麒麟 970 支持全球最高的通信規(guī)格 LTE Cat.18/Cat.13,實現了業(yè)界最高的 1.2Gbps 峰值下載速率。
此次發(fā)布的麒麟 970 同時升級了自行研制的 ISP,并且放入了兩顆,其針對特定場景進行了性能和效果優(yōu)化,可幫助使用者拍出更自然、更美的照片。
在硬件參數的升級之外,麒麟 970 最引人關注的新特性就是全新設計的 HiAI 移動計算架構了。
華為第一次在移動設備層面上把神經網絡模型的硬件計算加速能力融合進芯片中去。這也是業(yè)內第一次在手機芯片中出現了專門用于進行人工智能方面計算的處理單元,它早于蘋果傳言中即將推出的 Neural Engine。華為表示,新的計算架構以及計算單元對于機器學習任務處理性能(相對于手機 CPU)提升了數十倍,最高可達到傳統處理器 25 倍速度,50 倍能效。這種性能提升可以讓此前很多無法在移動端使用的機器學習應用走向工程化和實用化。
眾所周知,當前的 CPU 負責通用任務計算,面向指令密集和邏輯控制運算;GPU 則是數據密集型,主要面向向量任務的圖形處理計算。對于人工智能領域的應用,目前人們面臨的主要任務是對于矩陣乘法的運算,這種任務使用 CPU 和 GPU 來做效率并不高。對于一個矩陣乘法,后兩種結構需要更多個指令周期來完成。針對這類任務,如果希望能夠在最短的時鐘周期內完成更多的神經網絡模型算子的運算,就需要專門的硬件來參與其中。
麒麟 970 HiAI 移動計算架構
在麒麟 970 芯片的設計過程中,華為與寒武紀進行了深度合作,雙方團隊在 AI 計算處理方面進行了聯合開發(fā)與優(yōu)化。麒麟 970 創(chuàng)新設計的 HiAI 移動計算架構,通過更高效靈活的異構計算來最大化發(fā)揮 CPU/GPU/ISP/DSP/NPU 的性能,同時首次集成專門用于神經網絡任務處理的 NPU(Neural Network Processing Unit)計算單元,其加速性能和能效比大幅優(yōu)于 CPU 和 GPU。
為芯片組加入人工智能計算單元,這個過程看起來很簡單,實際上非常復雜。谷歌與英偉達此前曾經分別推出過各自的人工智能芯片形式,這種面向服務器級的芯片面積很大(英偉達 Volta 的 Tensor Core 面積有 800 平方毫米)。而目前,像麒麟這樣的旗艦手機 Soc 的面積只有 10×10 毫米。顯然,在桌面端的輕而易舉的事情是無法在手機上去做的——我們不能僅僅依靠晶體管的堆砌來提高性能。另一方面,面向人工智能任務運算的芯片單元也無法與服務器級芯片使用相同的能耗。
面對在小面積上實現大算力的挑戰(zhàn),華為通過改進工藝讓同樣面積(10×10 毫米)下晶體管數量提升到了 55 億個,為 AI 計算單元讓出了空間,同時在很小的面積下提升了芯片的計算性能。
此外,據悉,開發(fā)人員為了讓 NPU 工程化、實用化、真正做到能商用進行了大量的研究、調試與優(yōu)化,與合作伙伴、學術界展開了無數次溝通交流。最終,新的芯片在運算速度與能效方面性能優(yōu)異,大大超過了目前市場上所見到的芯片。
在結構上,新的計算單元需要與已有的其他計算單元互相配合。在研發(fā)過程中,華為應該花費了很長時間來讓 NPU 適用于處理常見應用任務。此前,CPU 與 GPU 之間的資源共享也應該經歷了相當長的一段時間,而 NPU 也面臨著同樣的挑戰(zhàn)。相信在未來,NPU 與其他組件的整合程度也會不斷提升。
API 與深度學習框架
目前,人工智能技術還沒有發(fā)展到全面步入應用的程度,大多數研究者致力于研究深度學習框架和算法的優(yōu)化。在研發(fā)芯片時,華為的工程師們發(fā)現目前 AI 的應用方向非常分散。面對這樣的挑戰(zhàn),麒麟 970 提供了 HiAI 移動計算平臺,可以把所有的計算資源統一調配管理,面向上層可以向很多應用提供接入方式。
對于麒麟 970 的 HiAI 移動計算平臺而言,AI 應用開發(fā)者可以直接調用 HiAI 計算加速庫以及接口,獲得 HiAI 異構平臺的計算加速。同時也可以基于谷歌安卓 NN API 調用 HiAI 硬件平臺加速能力來執(zhí)行自己的任務,它們同樣可以被華為的新一代 NPU 加速。據悉,谷歌今年底推出的安卓 NN API 也將率先獲得麒麟 970 的支持。
華為不久后還會提供更高層級的 API,把語音識別、自然語言處理和圖像識別的基礎 AI 功能以特定 API 形式提供給開發(fā)者使用。在華為設想的圖景中,未來各類應用都可以接入搭載 AI 芯片的設備,并享受硬件優(yōu)勢帶來的性能提升。
據相關人士表示,在麒麟 970 芯片發(fā)布之后,相應的 API 也將在近期內發(fā)布。
在人工智能芯片計劃中,搭載 NPU 的智能芯片將支持多種深度學習框架,并在未來支持多框架下的算子。實際上,人工智能芯片優(yōu)化的級別是算子級的。目前,麒麟 970 支持的框架有 TensorFlow 和 Caffe。在不久后,麒麟 970 支持的框架還將包括 Caffe2 和 TensorFlow Lite。
雖然麒麟 970 才剛剛發(fā)布,但目前已經出現被這款芯片優(yōu)化的應用了——在華為手機的前端 DNN 降噪算法中,它可以通過深度學習 DNN 算法,有效抑制非穩(wěn)態(tài)噪音,增強語音信號,可以提高其語音識別在惡劣環(huán)境下的識別率。特別是在開車的時候,如果車速非??欤ū热邕_到 120 千米 / 小時),車內的噪音很大,通常情況下手機的語音識別成功率會非常低,而華為開發(fā)的技術則是專門針對這樣的痛點場景去改善和優(yōu)化。未來,華為會在語音和圖像領域中開放常用的各種算法接口。
麒麟 970 芯片能夠使用的各種 AI 應用會越來越豐富,華為表示,他們也正在與很多其它公司合作,共同開發(fā)出更多的應用來,讓消費者切身體驗到 On Device AI 性能瓶頸突破后所帶來的巨大改變。
搭載麒麟 970 的手機:華為 Mate 10 系列
在了解完芯片之后,我們最為關心的可能就是搭載這塊芯片的手機型號了。根據發(fā)布會現場的信息,搭載麒麟 970 芯片的手機為即將于 10 月 16 日發(fā)布的華為 Mate 10 系列。
云+人工智能,目前是各大科技巨頭極為重視的一個方向,華為也在著力布局人工智能云服務。云服務的優(yōu)勢在于數據存儲,但機器學習應用將計算與存儲任務交給云端時會產生如延遲、穩(wěn)定性、安全性、隱私性等這樣的弊端。在部署到手機端之后,結合終端計算優(yōu)勢,芯片和云服務各自負責不同的任務,彌補了云的缺陷。
華為認為,所有延遲、敏感類的應用都是需要在設備端進行處理的。另外,在網絡連接不通的情況下,人們也需要依賴設備本地的處理能力。在安全的層面上,使用本地運算意味著無需將數據傳送到服務器中,這樣可以減少數據泄露的機會。
在云服務器端,我們可以看到谷歌、英偉達等公司已經推出了針對人工智能任務優(yōu)化的新型芯片。在移動設備領域,麒麟 970 第一次將人工智能硬件帶進了手機。移動端計算能力的提升會使人工智能的應用走出瓶頸,帶來更多、更豐富的用戶體驗。
在發(fā)現移動端設備計算芯片是目前 AI 技術的瓶頸之后,華為率先投身其中,希望以此拉動一部分開發(fā)者基于新硬件為消費者們提供更好的體驗。希望這些行動可以加速人工智能技術的發(fā)展,讓 AI 逐漸形成基礎技術平臺,催生更多不同類型的應用。