【英特爾強化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四大策略徹底解析


Advertisement

更多 iThome相關內容