Intel 在美國時間 2018 年 5 月 23 日假舊金山召開人工智慧開發者大會(AIDC, Artifital Intelligence Developer Conference),這是在 Intel 接連併購了 Nervana、Movidius 與 MobilEye 後,繼 2017 年的 AI Developer Day 後,第二次面向人工智慧市場開發者的小試身手。
Intel 近年與人工智慧高度相關的併購案整理
| 併購時間 | 併購對象 | 主要項目 | 併購金額 | 主要人物 |
|---|---|---|---|---|
| 2015 年 6 月 | Altera | FPGA生產商 | 167億美金 | Brian Krzanich |
| 2016 年 8 月 | Nervana | 機器學習平台架構 | 3.5億美金 | Naveen Rao、Amir Khosrowshahi |
| 2016 年 9 月 | Movidius | 低功耗、高效能終端人工智慧運算晶片 | 4億美金 | Remi El-Ouazzane |
| 2017 年 3 月 | Mobileye | 視覺運算為基礎的駕駛輔助系統 | 153億美金 | Amnon Shashua |
資料來源:Intel 新聞稿、《數位時代》外電、Crunchbase,《數位時代》整理
為什麼說是小試身手?
作為傳統 PC、NB 時代,甚至到目前為止所有主流資料中心的運算霸主,Intel 在人工智慧市場來得有點晚。當 NVidia 推出 CUDA,讓科學領域的平行運算開始當紅,意味著高效能運算(HPC, High Perfomance Computing)有著非常巨大的缺口,Intel 曾經以為的主機運算或資料中心的高市佔率,看起來只不過是未來運算市場的冰山一角。Intel 這下急了,前頭幾年才剛在行動運算市場才重重跌了一跤,在如今幾乎人手一機(連同平板、智慧音箱,根本早不止一機)的智慧裝置上幾乎不見身影,於是你見到布萊恩科再奇(Brian Krzanich, Intel CEO, 2013 年 5 月至今)終於開始出手買、買、買,在不到兩年內買了 Altera、Nervana、Movidius 與 MobilEye。經過了兩年的整合,終於造了 Intel 面向人工智慧市場的三劍策略,並在以往對 Intel 可說是重頭戲之一的 Computex 前夕,勇敢開了第一次面向人工智慧市場的 AI 開發者大會(AI Developer Conferece, AIDC, or AIDevCon),作為 Intel 準備華山論劍前的小試身手。
開源編譯器 nGraph,是 Intel 面向人工智慧的第一把箭
從商學院典型的策略分析看來,你不能說買這三家公司有什麼巨大問題,在人工智慧運算市場,佈局一家機器學習平台的軟體演算架構公司 Nervana 的確非常合理,市場上一個原先名不見經傳的小弟 NVidia 都有一個聞名天下人的 CUDA、甚至也還推了一個 GPU Cloud,身為堂堂擁有伺服器處理器市場的 Intel,既然有超過 97% 以上的機器學習伺服器用的是自家的中央處理器,整合 Nervana 在深度學習演算法的 IP,並推出一個 nGraph 是非常合乎常理的商業策略。
創辦 Nervana 的 Naveen Rao,如今是 Intel 的企業副總裁,也是人工智慧產品部門的總經理,他麾下的人工智慧產品部門,所造出 Intel 人工智慧的第一把劍是一個開源的深度神經網絡編譯器 nGraph,這個來自 Nervana,卻最終實現 Intel 人工智慧的相關佈局的軟體框架,對 Intel 面向人工智慧運算至關重要。
對於運算將無所不在的人工智慧市場,多數的商業報告都絕對同意,人工智慧的多數運用將發生在不同端點,如 NVidia 的創辦人黃仁勳在 2018 年 GTC 即提及這些應用可能分散在不同的垂直產業,例如自動駕駛、專業繪圖(ProViz)等不同領域。Intel 認為未來人工智慧市場有三大核心:自動駕駛、流運算(Streaming Computing)與資料中心。但,對於所有人工智慧應用或研究的開發者而言,市面上有太多不同面向的機器學習或深度學習開發框架,如 MXnet、Tensorflow、PyTORCH 或 Caffe2 等,2018 年框架背後所支持的各大廠開始共享 ONNX 容許這些開發框架快速交換深度學習模型格式是一大進步,但框架底層的加速問題還是關鍵,如何讓這些框架可以充分利用硬體運算資源還是所有人工智慧應用開發或研究者最關心的事。
開源的 nGraph 整合了多數的深度學習開發框架,與 CUDA 類似同樣支援 MXnet、Tensorflow、PyTORCH(計畫中,目前尚未) 或 Caffe2 (計畫中,目前尚未)等,並面向更多不同的硬體運算裝置,如 CPU、GPU、FPGA、Intel Movidius 的神經運算棒或剛推出的 Intel Nervana Neural Network Processors(Intel Nervana NNP,神經網絡處理器)等。Naveen Rao 就特別強調,在人工智慧市場上,運算並沒有通用解(not one size fit all),不同的需求、不同的應用需要不同的運算裝置來滿足。
從大到小、從裡到外的處理器,Intel 就是要滿足人工智慧的第二箭
本來,在運算世界裡,GPU本來就不是人工智慧的萬能鑰匙!只是近幾年,在半導體成本持續有效下降、算力大幅提升、能量效率卻維持一樣的情況下(Dennard Scaling, 請參考史丹佛前校長,現 Alphabat 董事長 John Hennessy 在 Google IO 2018 的演說:運算的未來),GPU 變成平行運算的第一個突破口,讓機器學習演算有了突破性表現,證實許多神經網絡方法是「有效的」,並進一步帶動加速神經網絡運算的硬體,從 Google 所設計的 TPU、NVIDIA 為 GPU 引入 Tensor Core 的 Volta 微架構,到 Intel 決心推出 Nervana NNP,針對通用大矩陣運算加速、可平行運算的處理器。
專為神經網絡演算設計的 Intel Nervana NNP 有兩個版本,一個是 Lake Crest 版本,在 2017 年年底前推出,號稱比 GPU 更快、耗能更低,但只提供給部分 Intel 合作夥伴。2018 年 5 月 AIDC 上所推出的 NNP 稱做 Spring Crest,實際將在 2019 年推出商用市場,是第一款正式商業化的 NNP,因為重新設計,並使用更好的製程,號稱比 Lake Crest 提升了 4 倍左右的性能。
另一項 Intel NNP Spring Crest 所帶來的更新則更加靠近深度學習應用。 Spring Crest 將在處理器中支援 Bfloat16。Bfloat16 是 TensorFlow 架構中所特有的一種浮點數,與我們常在計算機概論中所學 IEEE 754 標準中的 float16 不同,Bfloat16 其實是截斷 float32 的前 16 位,僅用後 16 位所組成。由 TensorFlow 所率先引入的 Bfloat16 被發現在深度神經網絡計算中,可以透過截斷前面來避免梯度越大造成係數越來越小,甚至最後變成 NaN 值而無法使用。
根據一些研究表明,Bfloat16 在不同深層神經網絡應用推論與訓練效果都極好,好過 Uint8 或 float32,因此被大量應用在神經網絡演算中。此次將是 Intel 首次將 Bfloat16 內建在處理器中,Naveen Rao 表示,Intel 也將在 Xeon CPU 與 FPGA 中逐步支援 Bfloat16。除卻 Bfloat16,無論是 NNP、FPGA 或 CPU 都有可能針對神經網絡的特定演算增加大量的指令集,惟 Naveen Rao 並不願意透露 Intel 是否可能會加入的指令集與發展藍圖。
Intel 人工智慧策略第三箭:開發者社群
Intel 推出開源的 nGraph,其實是重要的一步。只是這一步姍姍來遲,嚴格說起來,從 2008 年 NVidia 的 CUDA 面世,這一步用了超過 10 年,除去花了青春,還花了 Intel 不少錢(意旨併購策略)。在 CUDA 推出當時,我們只知道 GPU 可以當 CPU 用了,那時候有一個 GPGPU (General Perpose GPU)的詞剛剛被介紹給大眾,剛剛推出的 NVCC (NVIDIA C compiler)還被很多開發者抱怨,它與傳統的 C/C++ 部分型別不合,意思是,沒辦法直接拿 C/C++ 的程式碼改做,需要做特殊配置的修改。
然後,為了得到便宜又直接的平行算力,有很多開發者在上頭改寫程式碼,這些改寫過的程式又被放回 Github 上共享,其中許多更隨著機器學習或神經網絡應用而快速成長。縱然 CUDA 或 基於 LLVM 的 CUDA 編譯器並沒有開源,在網上也有大量開發者文件、工具、教學,配合各種教程等,讓開發者得以快速上手應用。
縱然 nGraph 開了源,對多數開發者來說,可以拿 nGraph 完成什麼工作、得到什麼好處恐怕才是接下來的推廣難題。在 2018 年的今天,主流機器學習架構有 Google 支援的 TensorFlow、AWS 力推的 Apache MXNet、微軟的 CNTK 與 Facebook 的 Caffe 2 或學術界為主的 PyTorch 等,除卻整合資料交換框架的 ONNX,這些架構要獲得硬體加速的作法都是從編譯器上直接橋接、整合。nGraph 等於直接為所有未來可能的架構開了一扇門,只要你可以透過 nGraph 來處理代碼,任何開發者都有機會可以獲得 Intel 硬體直接加速。
因此,nGraph 有多少使用者、有多少架構透過 nGraph 開發出橋接、使用 nGraph 整合、甚至分岔出什麼樣的新應用,就意味著 Intel 的開發者生態系多出了哪些新應用。甚至,我們就看到 Intel 內部正在實作整合 nGraph 與 NVIDIA cuDNN(以 CUDA 實作深度神經網絡演算的架構)。
在 Intel AIDC 中,Intel 也再次強調了他們基於 Apache Spark 開源的 BigDL ,一款分散式深度學習架構,這款架構特別適合已經擁有 Apache Spark 或 Hadoop 資料架構的組織,在其上直接部署深度學習的工作流程。針對神經網絡運算所加速的電腦視覺應用, Intel 在本月稍早也公布了一套 OpenVINO 工具組,這套工具組整合了 機器學習框架如 Caffe、TensorFlow 與 MXNet,也整合了 OpenCV,結合 Intel 的各種大小處理器(CPU、GPU、FPGA、VPU等),讓開發者可以快速部署透過這些框架所開發的機器學習模型至終端裝置,如智慧攝影機上。
