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