Intel Deep Learning SDK
除了支持不同開(kāi)發(fā)者所偏好的深度學(xué)習(xí)框架之外,英特爾本身也會(huì)推出Intel Deep Learning SDK。
藉由當(dāng)中提供的簡(jiǎn)易使用接口,數(shù)據(jù)科學(xué)家與軟件開(kāi)發(fā)人員可發(fā)展各種深度學(xué)習(xí)的應(yīng)用方案。
例如,透過(guò)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包含的部署工具來(lái)幫忙。
英特爾處理器內(nèi)建新的原始指令,強(qiáng)化深度學(xué)習(xí)效能
針對(duì)各種深度學(xué)習(xí)框架提供優(yōu)化之余,英特爾在旗下的處理器產(chǎn)品當(dāng)中,也內(nèi)建了多種鏈接庫(kù)來(lái)提升AI應(yīng)用系統(tǒng)的效能。
Math Kernel Library(MKL)
MKL是英特爾發(fā)展了22年的鏈接庫(kù),里面集合了許多原始的數(shù)學(xué)運(yùn)算指令,可加速在工程、財(cái)務(wù)、科學(xué)等領(lǐng)域的模擬與分析處理,2016年之后,由于增加了MKL-DNN的鏈接庫(kù),因此也能提升機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的效能。目前內(nèi)建MKL的處理器,包含個(gè)人計(jì)算機(jī)用途的Core,以及服務(wù)器等級(jí)的Xeon、Xeon Phi。
這套鏈接庫(kù)提供了低階的C與Fortran程序語(yǔ)言接口,能執(zhí)行多種通用運(yùn)算,例如,矩陣的乘法、分解、快速傅立葉變換、隨機(jī)數(shù)生成、向量函數(shù)等,能支持多種操作系統(tǒng)平臺(tái)的應(yīng)用程序開(kāi)發(fā),例如,Windows(微軟Visual Studio),以及Linux與OS X(Eclipse)。
Math Kernel Library for Deep Neural Networks(MKL-DNN)
透過(guò)深度學(xué)習(xí)框架開(kāi)發(fā)的應(yīng)用程序,若要執(zhí)行在Intel Architecture的處理器環(huán)境,英特爾提供了一套開(kāi)放原始碼的效能強(qiáng)化鏈接庫(kù),稱(chēng)為Math Kernel Library for Deep Neural Networks(MKL-DNN)。
它與英特爾的MKL鏈接庫(kù)之間,有很大淵源。
因?yàn)椋琈KL-DNN是2017版MKL所延伸出來(lái)的產(chǎn)物,當(dāng)中包含了高度向量化與穿插式的建構(gòu)模塊,而且是透過(guò)C與C++程序語(yǔ)言的接口,實(shí)作出卷積類(lèi)神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)的架構(gòu),并且不只能在C和C++這兩種開(kāi)發(fā)環(huán)境運(yùn)用,也可用于Python和Java等高階程序語(yǔ)言。
針對(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í)專(zhuān)用的鏈接庫(kù)。
從服務(wù)器到個(gè)人計(jì)算機(jī)的處理器,都內(nèi)建新鏈接庫(kù),強(qiáng)化AI效能
除了提供優(yōu)化程序代碼,英特爾在處理器平臺(tái)上,也內(nèi)建了原始指令:專(zhuān)供深度神經(jīng)網(wǎng)絡(luò)使用的數(shù)學(xué)核心鏈接庫(kù)MKL-DNN,以及用于深度學(xué)習(xí)訊息傳遞應(yīng)用的機(jī)器學(xué)習(xí)規(guī)模擴(kuò)展鏈接庫(kù)MLSL。
Machine Learning Scaling Library(MLSL)
在Intel AI Day活動(dòng)當(dāng)中,英特爾也預(yù)告將推出一套新的鏈接庫(kù),稱(chēng)為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)用其他用于訊息溝通的鏈接庫(kù),而在訊息溝通的模式上,用戶(hù)若要擴(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ā)展的鏈接庫(kù),除了上述的MKL,還有Data Analytics Acceleration Library(DAAL),這套在2015年推出的鏈接庫(kù),可針對(duì)基于Intel Architecture處理器平臺(tái)的個(gè)人計(jì)算機(jī)、服務(wù)器,提升大數(shù)據(jù)分析作業(yè)的執(zhí)行效能。
這套鏈接庫(kù)包含多種經(jīng)過(guò)優(yōu)化的算法建構(gòu)模塊,能夠支持?jǐn)?shù)據(jù)分析過(guò)程中的每個(gè)階段,像是前置處理、轉(zhuǎn)換、分析、建模、驗(yàn)證、抉擇,并且在脫機(jī)、在線串流與分布式等不同的數(shù)據(jù)分析環(huán)境里面執(zhí)行。
DAAL的發(fā)展上,也考慮到常見(jiàn)的大數(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)得以從多種來(lái)源存取到數(shù)據(jù),例如檔案、內(nèi)存內(nèi)的緩沖區(qū)、SQL數(shù)據(jù)庫(kù)、HDFS文件系統(tǒng)。
DAAL與MKL同樣皆可針對(duì)大數(shù)據(jù)的處理,不過(guò),若遇到數(shù)據(jù)量大到內(nèi)存無(wú)法全部加載的情況,DAAL本身能運(yùn)用特制的算法來(lái)因應(yīng)——將資料切割為塊狀,而不是全部放進(jìn)內(nèi)存。
在程序語(yǔ)言的部分,DAAL提供高階的C++、Java與Python接口,可用來(lái)處理多種數(shù)據(jù)分析需求,像是主成分分析、回歸、分類(lèi)、群集與購(gòu)物籃分析。透過(guò)這個(gè)鏈接庫(kù),你可以利用指定的算法來(lái)訓(xùn)練出模型,然后評(píng)定數(shù)據(jù)集在這模型中的分?jǐn)?shù)。
下篇:英特爾AI策略全解析(3):與谷歌合作發(fā)展云服務(wù)
評(píng)論