想要在AI占有一席之地,英特爾單靠處理器的硬件并不足以搶市,透過軟件的優化提供強大效能,以及增進開發應用系統的便利性,將是布局能否成功的關鍵
上篇:英特爾AI策略全解析(1):延伸四大產品線
【英特爾強化AI軟件應用的4大層面】英特爾對于AI應用的支持,首先是處理器內建低階軟件原始指令,例如MKL-DNN;針對深度學習軟件框架,提供優化程序代碼;對于大數據分析應用平臺,投入Hadoop、Spark的版本提供或貢獻程序代碼;而在集成軟件開發工具,他們也推出Deep Learning SDK。
圖片來源:iThome
看好人工智能帶來的運算處理需求與未來的蓬勃發展,英特爾不只是推出多種服務器端處理器來因應,在2016年11月舉行的Intel AI Day活動期間,他們宣布將更積極發展深度學習應用的運算與溝通處理的鏈接庫,并以基本指令(primitives)的形式整合到處理器硬件上。而在AI應用軟件開發的支持上,他們陸續開始提供的部分,包含:鏈接庫、程序語言的支持、平臺、軟件開發工具包、程序開發框架。
無獨有偶,IBM與Nvidia也在11月宣布,雙方將連手開發新的深度學習專用軟件開發工具包PowerAI,可搭配IBM 專為AI應用所特別設計的服務器——OpenPOWER LC(采用Power運算架構與Nvidia NVLink互連技術),藉此提供企業級的深度學習解決方案。
英特爾在Intel AI Day提出人工智能的策略,正巧IBM與Nvidia也在之前宣布了PowerAI,在那一周期間,同時,又適逢全球高效能運算界關注的SuperComputer 2016大會舉行。顯然兩大陣營爭相較勁的意味相當濃厚,而且他們最終競逐的目標,其實都是下一波企業應用。
英特爾AI解決方案總覽
在AI應用的布局上,英特爾不只是單純提供處理器平臺,軟件的支持更是重點——他們發展多種鏈接庫、軟件開發平臺,積極支持多種深度學習應用框架,同時也會推出整合式的解決方案。
積極支持多種深度學習框架,陸續提供IA架構效能優化的程序代碼
以發展AI應用系統所采用的各種程序開發框架為例,英特爾承諾,將針對在Intel Architecture運算架構(IA)的系統環境,提供經過優化的程序代碼,以提升執行效能。
例如,在深度學習技術的應用領域當中,較為風行的幾種開放原始碼軟件框架(Deep Learning Framework),像是Caffe、Theano、Torch、MXNet、Neon,英特爾已經提供Intel Architecture優化程序代碼。至于TensorFlow的部分,英特爾與Google Cloud Platform在11月的Intel AI Day活動上,正式宣布策略合作后,最快于2017年初,才會釋出相關的程序代碼。
Caffe
這是由美國柏克萊視覺與學習中心(BLVC)所開發的框架,英特爾提供了特制版本Intel Optimized Caffe,可適用于Xeon與Xeon Phi處理器平臺,當中整合了英特爾發展的數學核心鏈接庫MKL(Math Kernel Library),并且已針對AVX2和AVX-512指令集,進行軟件效能優化的工程。
而Caffe經過改良的成效如何?英特爾提出的實例,是影音服務業者樂視云(LeTV Cloud)的非法影片偵測應用。他們是在Xeon E5-2680 v3服務器平臺上,搭配Intel Optimized Caffe來進行影片分類的訓練,結果得到了30倍的效能提升(相較于他們先前使用的BLVC Caffe,搭配OpenBlas鏈接庫作為卷積式類神經網絡)。
Theano
它是由加拿大蒙特婁大學LISA實驗室發展的深度學習框架,英特爾也提供了改良的鏈接庫,是針對多核心運算環境予以優化而成的版本,而在京都大學大學院醫學研究科的應用案例當中,當他們以此進行新藥探索模擬運算的測試上,精準度最高可達到98.1%,而另一個深度學習網絡(Deep Belief Networks,DBN)的測試當中,也獲得8倍的效能增長。
Torch
Torch也是許多人很關注的深度學習框架之一,目前主要維護的成員,是來自Facebook、Twitter、Google DeepMind公司的研究科學家和軟件工程師。英特爾對這套框架提供優化支持之余,同時整合了MKL鏈接庫,進而針對服務器硬件端執行的深度神經網絡指令集,提升效率。
而在這樣的環境搭配下,英特爾舉出的例子是他們與Pikazo軟件公司合作,針對他們開發的圖像風格轉換App,協助后端處理效能強化——若以App剛推出的效能作為基準,現在Pizako App在圖形上色(render)的速度,可提升到28倍,而能夠處理的圖檔尺寸也擴充到15倍之大。
Neon
Neon是英特爾并購的Nervana Systems公司所發展出來的鏈接庫,強調易用與高效能,在其現有的技術架構當中,可區分為深度學習功能(算法)、數據模型、解決方案等三層。
在這次的Intel AI Day大會上,英特爾也預告將推出Intel Nervana Graph Compiler,作為AI應用軟件層的共通基礎,以此對于深度學習應用的架構型態,提供更進階的描繪方式,以及調校作法。
針對類神經網?絡,提供高階的圖學運算編譯程序
深度學習框架Neon對于硬件資源的存取,會透過不同平臺的轉換API來介接,因此上層應用無須考慮硬件差異,接下來,英特爾會在Neon原本的架構與硬件轉換層之間,新增一層Nervana Graph Compiler,主要是為了針對類神經網絡應用,提供高階的處理,以便同時橫跨多臺硬設備執行。
Intel Deep Learning SDK
除了支持不同開發者所偏好的深度學習框架之外,英特爾本身也會推出Intel Deep Learning SDK。
藉由當中提供的簡易使用接口,數據科學家與軟件開發人員可發展各種深度學習的應用方案。
例如,透過SDK里面的訓練工具,我們能夠進行深度學習模型的設定、準備、設計;若要將已經訓練好深度學習的模型,自動進行優化與部署的程序,也可以運用SDK包含的部署工具來幫忙。
英特爾處理器內建新的原始指令,強化深度學習效能
針對各種深度學習框架提供優化之余,英特爾在旗下的處理器產品當中,也內建了多種鏈接庫來提升AI應用系統的效能。
Math Kernel Library(MKL)
MKL是英特爾發展了22年的鏈接庫,里面集合了許多原始的數學運算指令,可加速在工程、財務、科學等領域的模擬與分析處理,2016年之后,由于增加了MKL-DNN的鏈接庫,因此也能提升機器學習與深度學習的效能。目前內建MKL的處理器,包含個人計算機用途的Core,以及服務器等級的Xeon、Xeon Phi。
這套鏈接庫提供了低階的C與Fortran程序語言接口,能執行多種通用運算,例如,矩陣的乘法、分解、快速傅立葉變換、隨機數生成、向量函數等,能支持多種操作系統平臺的應用程序開發,例如,Windows(微軟Visual Studio),以及Linux與OS X(Eclipse)。
Math Kernel Library for Deep Neural Networks(MKL-DNN)
透過深度學習框架開發的應用程序,若要執行在Intel Architecture的處理器環境,英特爾提供了一套開放原始碼的效能強化鏈接庫,稱為Math Kernel Library for Deep Neural Networks(MKL-DNN)。
它與英特爾的MKL鏈接庫之間,有很大淵源。
因為,MKL-DNN是2017版MKL所延伸出來的產物,當中包含了高度向量化與穿插式的建構模塊,而且是透過C與C++程序語言的接口,實作出卷積類神經網絡(Convolutional Neural Networks,CNN)的架構,并且不只能在C和C++這兩種開發環境運用,也可用于Python和Java等高階程序語言。
針對深度學習應用系統當中所進行的運算密集式工作, MKL-DNN也能對相關的框架提供加速處理,英特爾特別強調可支持上述提及的Caffe、Theano、Torch、Tensorflow等深度學習專用的鏈接庫。
從服務器到個人計算機的處理器,都內建新鏈接庫,強化AI效能
除了提供優化程序代碼,英特爾在處理器平臺上,也內建了原始指令:專供深度神經網絡使用的數學核心鏈接庫MKL-DNN,以及用于深度學習訊息傳遞應用的機器學習規模擴展鏈接庫MLSL。
Machine Learning Scaling Library(MLSL)
在Intel AI Day活動當中,英特爾也預告將推出一套新的鏈接庫,稱為Machine Learning Scaling Library(MLSL),可在深度學習系統的多節點互連架構下,進行規模擴展的應用,可支持32個節點以上所組成的深度學習系統。有了MLSL之后,深度學習系統可針對不同節點之間的訊息傳遞作業,進行抽象化的處理。
MLSL是架構在現有平行運算系統所慣用的MPI(Message Passing Interface)之上,可運用其他用于訊息溝通的鏈接庫,而在訊息溝通的模式上,用戶若要擴展到更大的系統使用規模,MLSL也將對此提供優化。MLSL本身也提供通用的API接口,可支持上述的各種深度學習軟件框架。
此外,由于MLSL與深度學習系統的多臺節點擴展應用有關,因此能否適用不同的網絡互連方式,也很重要。MLSL目前可支持的聯機規格,有標準的以太網絡、InfiniBand,以及英特爾發展的次世代互連網絡架構Omni-Path Architecture(OPA)。
Data Analytics Acceleration Library(DAAL)
目前英特爾針對AI應用所持續發展的鏈接庫,除了上述的MKL,還有Data Analytics Acceleration Library(DAAL),這套在2015年推出的鏈接庫,可針對基于Intel Architecture處理器平臺的個人計算機、服務器,提升大數據分析作業的執行效能。
這套鏈接庫包含多種經過優化的算法建構模塊,能夠支持數據分析過程中的每個階段,像是前置處理、轉換、分析、建模、驗證、抉擇,并且在脫機、在線串流與分布式等不同的數據分析環境里面執行。
DAAL的發展上,也考慮到常見的大數據平臺應用需求,目前已可強化Hadoop、Spark、R、Matlab系統的數據存取效率。同時,DAAL也內建數據管理機制,協助應用系統得以從多種來源存取到數據,例如檔案、內存內的緩沖區、SQL數據庫、HDFS文件系統。
DAAL與MKL同樣皆可針對大數據的處理,不過,若遇到數據量大到內存無法全部加載的情況,DAAL本身能運用特制的算法來因應——將資料切割為塊狀,而不是全部放進內存。
在程序語言的部分,DAAL提供高階的C++、Java與Python接口,可用來處理多種數據分析需求,像是主成分分析、回歸、分類、群集與購物籃分析。透過這個鏈接庫,你可以利用指定的算法來訓練出模型,然后評定數據集在這模型中的分數。
下篇:英特爾AI策略全解析(3):與谷歌合作發展云服務
評論