0
本文作者: 谷磊 | 2017-06-07 16:51 |
近日,周志華教授開源了其在深度學(xué)習(xí)領(lǐng)域研究的新型算法——gcForest。他在論文中提到,不同于DNN的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它是一種基于決策樹集成的方法。同時(shí)相比DNN,gcForest的訓(xùn)練過程效率高且可擴(kuò)展,在僅有小規(guī)模訓(xùn)練數(shù)據(jù)的情況下也照常運(yùn)轉(zhuǎn)。不僅如此,作為一種基于決策樹的方法,gcForest 在理論分析方面也應(yīng)當(dāng)比深度神經(jīng)網(wǎng)絡(luò)更加容易。
除此之外,周志華在論文最后特別提到,對(duì)于他的新方法,英特爾的KNL可能提供了像GPU之于DNN那樣的潛在加速。
究竟是什么原因產(chǎn)生了這樣的結(jié)果?帶著這個(gè)疑問,雷鋒網(wǎng)采訪了英特爾中國(guó)研究院院長(zhǎng)宋繼強(qiáng),以期為廣大讀者深入剖析KNL在gcForest算法方面的計(jì)算優(yōu)勢(shì)。
宋繼強(qiáng)告訴雷鋒網(wǎng),樂見類似gcForest這樣的新算法思路出現(xiàn),因?yàn)檫@種多樣性對(duì)于推動(dòng)AI技術(shù)的發(fā)展大有裨益。對(duì)于人工智能算法的硬件加速,宋繼強(qiáng)表示,并不存在一個(gè)通用的方案可以包打天下。對(duì)于不同的應(yīng)用場(chǎng)景,應(yīng)該選擇不同的硬件平臺(tái)。他從技術(shù)的角度系統(tǒng)地闡釋了KNL和GPU之間各自適用的范圍,并不諱言GPU在深度神經(jīng)網(wǎng)絡(luò)方面的計(jì)算能力,而是從辯證的角度說明了KNL相對(duì)GPU在gcForest甚至是DNN計(jì)算上的優(yōu)勢(shì)所在。
他還剖析了英特爾在人工智能芯片領(lǐng)域的包括KN系列、Lake Crest、FPGA在內(nèi)的三條重要的產(chǎn)品線的定位,并給出了相應(yīng)的選擇建議,對(duì)于甚囂塵上的AI芯片架構(gòu)之爭(zhēng)是個(gè)很好的回應(yīng)。
同時(shí),采訪中還涉及到了英特爾中國(guó)研究院下半年在AI方面的計(jì)劃,研究院和剛成立不久的AIPG之間的定位關(guān)系,以及與周志華團(tuán)隊(duì)的合作情況等話題。
宋繼強(qiáng)
宋繼強(qiáng)博士現(xiàn)任英特爾中國(guó)研究院院長(zhǎng)。他的研究興趣包括智能機(jī)器人與外界的交互技術(shù),多種形態(tài)的智能設(shè)備創(chuàng)新,移動(dòng)多媒體計(jì)算,移動(dòng)平臺(tái)的性能優(yōu)化,新型人機(jī)界面,并為新的應(yīng)用使用模式創(chuàng)建軟件和硬件環(huán)境。
宋博士于2008年加入英特爾中國(guó)研究院,時(shí)任清華大學(xué)-英特爾先進(jìn)移動(dòng)計(jì)算中心應(yīng)用研發(fā)總監(jiān),是創(chuàng)造英特爾Edison產(chǎn)品原型的核心成員。在Edison成功產(chǎn)品化之后,他推動(dòng)開發(fā)了基于Edison的智能設(shè)備開發(fā)套件來促進(jìn)Edison技術(shù)在創(chuàng)客社區(qū)的普及,并發(fā)明了稱為交互式瓷器的新的設(shè)備類別。目前他致力于研發(fā)基于英特爾技術(shù)的智能服務(wù)機(jī)器人平臺(tái)。
從2001年至2008年,他歷任香港中文大學(xué)博士后研究員、香港應(yīng)用科技研究院(ASTRI)首席工程師、北京簡(jiǎn)約納電子有限公司多媒體研發(fā)總監(jiān)等職。2003年,他研發(fā)的算法獲得IAPR GREC 國(guó)際圓弧識(shí)別算法競(jìng)賽一等獎(jiǎng)。2006年,他參加的計(jì)算機(jī)讀圖技術(shù)研究榮“獲教育部高等學(xué)??茖W(xué)技術(shù)二等獎(jiǎng)” (第二完成人)。他是IEEE和CCF高級(jí)會(huì)員,在IEEE TPAMI、IEEE TCSVT、Pattern Recognition、CVPR、ICPR等國(guó)際期刊與會(huì)議上發(fā)表學(xué)術(shù)論文40余篇。
宋繼強(qiáng)于2001年獲得南京大學(xué)計(jì)算機(jī)專業(yè)博士學(xué)位,博士論文被評(píng)為全國(guó)優(yōu)秀博士論文。
以下是宋繼強(qiáng)院長(zhǎng)接受采訪實(shí)錄,雷鋒網(wǎng)做了不改變?cè)獾恼恚?/strong>
雷鋒網(wǎng):如何看待深度森林(gcForest)和深度神經(jīng)網(wǎng)絡(luò)(DNN)?
宋繼強(qiáng):gcForest現(xiàn)在還處在剛剛開始的階段,就像2006年的深度神經(jīng)網(wǎng)絡(luò)一樣?,F(xiàn)在周老師把gcForest開源給整個(gè)學(xué)術(shù)界、工業(yè)界,這是非常好的事情。目前來看它相對(duì)于DNN的優(yōu)勢(shì)體現(xiàn)在兩方面,一方面在于可解釋性,一方面在于適用的領(lǐng)域。
神經(jīng)網(wǎng)絡(luò)目前來看還是一個(gè)黑箱,里面有很多超參數(shù),初始的設(shè)置包括后來調(diào)優(yōu)的過程,人們不好去琢磨它的理論基礎(chǔ)。雖然現(xiàn)在也有一個(gè)研究熱點(diǎn),就是做神經(jīng)網(wǎng)絡(luò)的可解釋性,但這還是在剛剛起步階段。
如果把它換成其他一些中間學(xué)習(xí)的部件,比如像gcForest這種基于決策樹做的一系列工作,最大的好處就是,從特征過來的時(shí)候,會(huì)在每一個(gè)分支下做判斷。比如這個(gè)特征要大于某一個(gè)值的時(shí)候向左分支,小于某一個(gè)值的時(shí)候向右分支,所以天然就有一些規(guī)則在那兒。它的參數(shù)空間就會(huì)小很多,訓(xùn)練出來以后可以去分析和解釋。這也是為什么目前在著名的Kaggle數(shù)據(jù)科學(xué)比賽平臺(tái)上,多數(shù)獲勝者的模型還是基于決策樹擴(kuò)展和集成(比如XGBoost)做出來的。
如果這件事情能從理論上解釋得通,我們對(duì)這個(gè)模型就有充分的信心了。機(jī)器學(xué)習(xí)真正出來一個(gè)結(jié)果后,我可以把它變成知識(shí),而不只是停留在模型的層面。因?yàn)閺淖寵C(jī)器去學(xué),到最后變成人可以認(rèn)可的理論和知識(shí),這是一個(gè)完整的過程。
其實(shí)周老師在他論文的開始也提到了一個(gè)問題,在深度學(xué)習(xí)的領(lǐng)域,大家比較認(rèn)可的是,做表示學(xué)習(xí)的時(shí)候,模型如果深、層級(jí)多,就可以更好的去表示這樣的問題。為了達(dá)到這樣的結(jié)果,就需要模型的容量夠大,但是不是一定要采用神經(jīng)網(wǎng)絡(luò)去訓(xùn)練?這個(gè)是可以商榷的。
我認(rèn)為不是所有的情況下神經(jīng)網(wǎng)絡(luò)都是最優(yōu)的訓(xùn)練學(xué)習(xí)模型,因?yàn)橛袝r(shí)候用它反而把事情復(fù)雜化了。
?? 英特爾對(duì)AI領(lǐng)域的分類
另一方面,深度神經(jīng)網(wǎng)絡(luò)雖然非常適合語音和圖像的識(shí)別,但AI領(lǐng)域其實(shí)不只包含這些,還包括理解,推理并做相應(yīng)的決策。整個(gè)過程都構(gòu)造好了,那才是讓人工智能完全可以完成任務(wù)。
現(xiàn)在深度神經(jīng)網(wǎng)絡(luò)幫助我們解讀了視覺信息,因?yàn)橐曈X信息是一幀一幀的圖象,還有很好的空間關(guān)系。我們本身看見的東西都是像素點(diǎn)構(gòu)成的,中間是有空間的關(guān)系。而用卷積這種方式提取特征,是很適合去提取空間關(guān)系的,并且構(gòu)造了多個(gè)維度、不同方向上的,多個(gè)分辨率的提取特征的方式,最后放到巨大的多層網(wǎng)絡(luò)里去找它相應(yīng)的關(guān)聯(lián)。
到下面一個(gè)層級(jí),時(shí)間軸發(fā)生變化。比如這里是一個(gè)人,那里是一張桌子,那邊是一把椅子,隨著時(shí)間的推移,人在動(dòng),桌子上可能多了一個(gè)東西,所以要繼續(xù)理解這個(gè)場(chǎng)景的時(shí)候,未必能完全依靠現(xiàn)在的神經(jīng)網(wǎng)絡(luò)的方式去提取特征,這時(shí)候就需要依靠別的。
gcForest論文里面用的幾個(gè)測(cè)試集就很有意思,幾個(gè)測(cè)試集在圖象層級(jí)上的處理,其實(shí)跟深度神經(jīng)網(wǎng)絡(luò)差不多,稍微能打平,甚至是數(shù)據(jù)集大的時(shí)候,深度神經(jīng)網(wǎng)絡(luò)還是會(huì)比它好。
但是在涉及到時(shí)間維度上,有連續(xù)性的東西,或者是要把情感從雜亂無章的文本里抽取出來的時(shí)候,這種空間關(guān)系不是那么好的數(shù)據(jù),發(fā)現(xiàn)它的提升還是蠻大的。比如說一個(gè)簡(jiǎn)單的識(shí)別,這里面有一個(gè)叫hand moment recognition,通過機(jī)電信號(hào)去識(shí)別手勢(shì),比別的方法提高了大概接近百分之百。這是非常有說服力的,也就說明它在處理這些連續(xù)有規(guī)則信號(hào)方面(因?yàn)檫@個(gè)手勢(shì)是具有一定規(guī)則的),非常的簡(jiǎn)潔高效。
總之,在進(jìn)一步去探索AI的技術(shù)的方向上,第一,基于決策樹的模型更具有可解釋性;第二,深度森林可以幫我們?nèi)ダ斫夂芏嘣跁r(shí)序上和空間上都有規(guī)則的事情。
所以我覺得這是一個(gè)新的思路。從英特爾層面來講,是歡迎有這種新的思路存在,因?yàn)檫@樣的話才能真正體現(xiàn)出多樣性。
雷鋒網(wǎng):能從解讀產(chǎn)品的角度來談?wù)劄槭裁丛谶\(yùn)行g(shù)cForest方面,KNL相比GPU會(huì)有優(yōu)勢(shì)嗎?KNL和GPU甚至是TPU的區(qū)別和聯(lián)系表現(xiàn)在哪里?對(duì)于AI芯片的架構(gòu)爭(zhēng)論,您怎么看?
宋繼強(qiáng):實(shí)際上我們應(yīng)該把這個(gè)問題放在不同的應(yīng)用領(lǐng)域來看。在AI芯片這個(gè)領(lǐng)域,凡是有人說有一個(gè)通用的方案的,其實(shí)都是不對(duì)的,英特爾從來不會(huì)說我們有一個(gè)東西能包打天下。
所以英特爾在端層面,有Movidius;在Edge層面我們用像FPGA這樣的方案;在云端我們有KNL、Lake Crest這些。
對(duì)于不同的應(yīng)用,我們要給用戶最適合的解決方案,這種方案里同時(shí)考慮數(shù)據(jù)的加速,帶寬的處理,甚至考慮到通訊怎么處理,在前端要考慮功耗怎么樣等等。
具體的拿gcForest來說,它的特點(diǎn)是里面有很多不同的樹,每棵樹本身的訓(xùn)練是可以分開做的,所以本身就有很大的模型的并行度。KNL和GPU都可以用,但是KNL的好處是它本身就有72個(gè)核,每個(gè)核上還可以出4個(gè)Hyper tread,等于本身就可以提供288個(gè)線程,是理想的模型級(jí)并行的加速器。
?? KNL的硬件架構(gòu)圖
同時(shí)對(duì)于樹的處理來講,中間本身有很多條件判斷跳轉(zhuǎn)。在原來X86的架構(gòu)上這反而是非常容易的,因?yàn)閄86是基于指令運(yùn)算去做加速的,單指令多數(shù)據(jù)流和單指令單數(shù)據(jù)都是它處理的強(qiáng)項(xiàng)。
而GPU里面對(duì)于處理這種跳轉(zhuǎn)多的情況實(shí)際上會(huì)導(dǎo)致很大資源的浪費(fèi),因?yàn)樗蟛糠质窃谧龆嘀噶疃鄶?shù)據(jù)流同時(shí)的并行處理,要把很多數(shù)據(jù)準(zhǔn)備好了打包,成形后一并做處理運(yùn)算。
這時(shí)如果中間有很多的Branch,Branch的意思是指令可能要跳轉(zhuǎn)到另一個(gè)地方去執(zhí)行,數(shù)據(jù)級(jí)的并行度就被打破了,打破之后會(huì)導(dǎo)致很多問題,有可能數(shù)據(jù)在另外一個(gè)內(nèi)存的地方,要重新拿過來。對(duì)于這種處理,KNL就有天然的優(yōu)勢(shì)。
所以周老師在他第二版論文中最后一頁專門提出:
GPU對(duì)于DNN是合適的加速器;
但是如果考慮到像決策樹這種情況,KNL作為加速器才更加適合。
我們對(duì)比的時(shí)候就會(huì)看到,在不同數(shù)據(jù)處理的模式下,應(yīng)該選擇不同的加速模式。
KNL可以很好地分配內(nèi)存和高速內(nèi)存里的數(shù)據(jù),因?yàn)樾碌腒NL允許用戶去配置高速內(nèi)存的使用方式,它對(duì)算法怎么樣使用數(shù)據(jù)是有比較好的靈活度的。
同時(shí)用上OPA這種新的數(shù)據(jù)互聯(lián)加速,打破原來去訪問內(nèi)存和多節(jié)點(diǎn)互聯(lián)的瓶頸。因?yàn)槲覀冎?,GPU擴(kuò)大到多GPU節(jié)點(diǎn)的時(shí)候,會(huì)有一個(gè)IO上限,到了上限,再增加GPU,訓(xùn)練的性能得不到太多提升。因?yàn)镮O已經(jīng)成為瓶頸了。但是如果說用KNL的方式,就可以突破這種瓶頸,增加到甚至上千個(gè)節(jié)點(diǎn),仍然保持接近線性的增加。同時(shí)包含一些比如IO存儲(chǔ)方面新的技術(shù),可以帶來不同種類的伸縮性能。
對(duì)于TPU,它跟英特爾的AI路線圖里面的Lake Crest是同一個(gè)級(jí)別的東西,都是屬于專門為深度神經(jīng)網(wǎng)絡(luò)定制的加速器,定制的程度是非常高的,如果換成深度森林,就未必能很快的適應(yīng)。
所以我們講的話,不會(huì)直接講KNL比GPU好,或者是GPU比KNL好,要放在到底是加速什么樣的應(yīng)用下。
雷鋒網(wǎng):那是否能說對(duì)于深度神經(jīng)網(wǎng)絡(luò)的加速,GPU比KNL更適合?
宋繼強(qiáng):不是說KNL不能加速深度神經(jīng)網(wǎng)絡(luò),我們?cè)?jīng)試過,去年在AI Day的時(shí)候也發(fā)布過這樣的數(shù)據(jù),就是當(dāng)時(shí)把一個(gè)Caffe的代碼放在KNL上的時(shí)候,得到一個(gè)初級(jí)的性能。后來經(jīng)過我們軟件部門做了軟件的并行優(yōu)化之后,它在KNL上提升了400倍的性能。
可見做不做軟件層級(jí)的優(yōu)化差別是很大的,對(duì)于深度神經(jīng)網(wǎng)絡(luò)我們也可以提高很多倍的優(yōu)化性能。同時(shí)再配合上硬件的性能不斷提升,因?yàn)镵NL比KNC已經(jīng)提高了3倍,今年下半年會(huì)出來的KNM,比KNL硬件本身能力又提高4倍。所以對(duì)于使用KN系列的算法研究者來講,他們是可以享受到這個(gè)紅利的。
一方面使用軟件優(yōu)化,另一方面可以享受到KN系列的硬件逐年性能提升帶來的紅利。
對(duì)于深度學(xué)習(xí)這個(gè)領(lǐng)域來講,如果模型容量很大的話,肯定是需要利用到像KNL、KNM這種級(jí)別的加速的。GPU是一個(gè)協(xié)處理器,模型和數(shù)據(jù)一般放在顯存中?,F(xiàn)在顯卡最新的一般是16G,最大的可能有24G,但很難買得到. 有一些場(chǎng)合需要特別大的模型,可能就放不進(jìn)顯存去,這時(shí)候就有很大的問題。但是對(duì)于KNL來說,可能會(huì)是比較好一點(diǎn)的方式。
至于它中間部件到底采用GPU還是KNL比較好?其實(shí)要看情況分析。比如說周老師這邊講到,他覺得可能做前面特征的掃描放在GPU上也很好,因?yàn)槟且粔K有很多的數(shù)據(jù)操作,比如說塊操作,可以把它整合。
回過頭來想,我們的KNL上,其實(shí)每一個(gè)Core上也提供了兩個(gè)512位寬的叫做矢量加速器(AVX-512)。這個(gè)矢量加速器如果用好的話,對(duì)于處理這種塊并行的操作也是很有效的。其實(shí)如果說使用得當(dāng)?shù)脑挘贙NL上去做矢量的加速計(jì)算,我們稱為SIMD的計(jì)算,和這種需要去做很多分支處理的計(jì)算,都可以并行很好的話,這個(gè)性能還是非常值得期待的。從原來沒有優(yōu)化過的性能到后來提升到千倍以上是可以達(dá)到的。
雷鋒網(wǎng):關(guān)于Lake Crest和KNL,在產(chǎn)品定位方面是一個(gè)怎樣的關(guān)系?能不能這樣說,Lake Crest是英特爾對(duì)于英偉達(dá)的GPU推出的競(jìng)爭(zhēng)產(chǎn)品?而KNL是基于可以和CPU更好的配合關(guān)系,所以更適用于決策樹模型算法的一個(gè)硬件。
宋繼強(qiáng):這樣說還不太準(zhǔn)確。
Lake Crest是專門針對(duì)深度神經(jīng)網(wǎng)絡(luò)深度定制的產(chǎn)品,目的是為了得到更快的加速比。它的定制需要綜合DNN所需要的計(jì)算和帶寬的需求,還有擴(kuò)展節(jié)點(diǎn)數(shù)量等因素。因?yàn)長(zhǎng)ake Crest里面也有很多計(jì)算節(jié)點(diǎn),每個(gè)Lake Crest芯片可以和另外12個(gè)芯片互聯(lián),形成超網(wǎng)格,而且互聯(lián)帶寬是非常高的。所以在深度學(xué)習(xí)大規(guī)模模型訓(xùn)練的方面,速度會(huì)非常強(qiáng)悍。
舉個(gè)例子,假如是對(duì)海量的視頻做處理,這個(gè)時(shí)候不停的會(huì)有新的問題進(jìn)來,就需要反復(fù)地訓(xùn)練模型。而且數(shù)據(jù)量會(huì)比以前大的很多,因?yàn)橄瘛捌桨渤鞘小边@樣的場(chǎng)景,會(huì)布置大量的攝像頭,這些數(shù)據(jù)重新訓(xùn)練回來以后會(huì)比以前有大幅度的提升,所以一定要需要在云端有這樣的能力去做快速的訓(xùn)練,更新模型下發(fā)到前端。
以后除了在云端的攝像頭數(shù)據(jù),無人車每天產(chǎn)生的數(shù)據(jù),里面也會(huì)產(chǎn)生很多的特殊情況,是現(xiàn)在解決不了的。比如不同國(guó)家的行人、不同國(guó)家地面上面的物體其實(shí)都不太一樣,必須反復(fù)訓(xùn)練,而且這個(gè)數(shù)據(jù)量也非常大。
我們不認(rèn)為現(xiàn)在的GPU方案就是一個(gè)終點(diǎn)了,一定需要更快、更節(jié)省能源的方式。目前TPU和Lake Crest全部是ASIC解決方案,它是性能功耗比最優(yōu)的方案,因?yàn)槭巧疃榷ㄖ?。所以如果是想解決最終的那種海量的數(shù)據(jù),并且對(duì)數(shù)據(jù)中心來講保持低的運(yùn)營(yíng)成本,也就是說用電量比較少,ASIC一定是最終的方案,而且它的擴(kuò)展性會(huì)很好。
如果說未來有新的算法可以處理更多的其他應(yīng)用,比如說gcForest是其中一個(gè)例子,對(duì)于這些新的方法,TPU、Lake Crest都未必是最好的加速器。這時(shí)我們可以用KNL、KNM。
而對(duì)于NVIDIA來說,實(shí)際上GPGPU也是可以去支持不同領(lǐng)域的東西,只不過是相比其他領(lǐng)域,它對(duì)深度神經(jīng)網(wǎng)絡(luò)可以提供最高的加速比。
類似GPU一樣,也需要有人在上面做專門的優(yōu)化。其實(shí)CUDA這個(gè)項(xiàng)目,NVIDIA已經(jīng)運(yùn)作了十年,最后才找出了深度學(xué)習(xí)這一個(gè)killer APP。如果有新的Killer APP出來未必在CUDA平臺(tái)上是最優(yōu)的。為了應(yīng)對(duì)未來不可知的新的Killer App,可以說FPGA和KNL都是很好的方案。
所以我覺得應(yīng)該這樣去劃分,才能夠比較完整地解釋英特爾在AI芯片這個(gè)領(lǐng)域所做的重要布局。
對(duì)于現(xiàn)在已知的Killer App,就是用深度神經(jīng)網(wǎng)絡(luò)去做類似視覺方面處理的時(shí)候,Lake Crest是一個(gè)當(dāng)然之選。
如果是為了應(yīng)對(duì)還不太知道的Killer APP或者是已知道的很多生命科學(xué)、金融方面的分析,或者是其他的天氣氣象原本就是高性能計(jì)算的應(yīng)用,KNL本身就是在做這個(gè)事情,而且它會(huì)繼續(xù)去支持這些需要靈活調(diào)優(yōu)但還沒有到做ASIC這個(gè)程度的應(yīng)用,都是可以用KNL去做的。
如果用戶已經(jīng)對(duì)硬件加速有所了解,但還不是很確定的時(shí)候,可以用FPGA去試。FPGA是比ASIC更快的可以去做硬件級(jí)別實(shí)驗(yàn)的一個(gè)平臺(tái)。
雷鋒網(wǎng):KNL有一個(gè)上一代的產(chǎn)品KNC,相比之下,KNL有哪些升級(jí)?
宋繼強(qiáng):這個(gè)升級(jí)還是蠻大的。我來講幾個(gè)關(guān)鍵的點(diǎn)。
第一,整體性能提升了2.5倍到3倍的級(jí)別,每個(gè)單核芯的性能也提升了接近3倍。KNL最多可以到72個(gè)核心,就計(jì)算能力來說,KNL處理器的雙精度浮點(diǎn)為3TFlops左右,單精度浮點(diǎn)可以到6TFlops左右。
比起原來的KNC,現(xiàn)在KNL采用了新的二維的網(wǎng)格架構(gòu)。它可以允許指令亂序執(zhí)行,這時(shí)處理器執(zhí)行指令的時(shí)候就能夠更好的去填掉比如說Cache miss、Branch等造成的空檔,可以更好的提高指令處理的并行度。
現(xiàn)在的KNL把矢量加速單元AVX擴(kuò)展到512個(gè)Bite寬,可以同時(shí)處理64個(gè)字節(jié)一起做矢量運(yùn)算。同時(shí)它在內(nèi)存這一塊也有一個(gè)改進(jìn),增加了高速內(nèi)存,高速內(nèi)存是多通道的內(nèi)存。這里面集成了16GB,用戶可以把它配置成是Cache,也可以把它配置成自己去管理的內(nèi)存。比如說用戶要放一些經(jīng)常要被處理器Core存取的數(shù)據(jù),不想讓它通過Cache的方式自動(dòng)映射。因?yàn)镃ache會(huì)產(chǎn)生Cache miss,把它變成自己管理,由用戶來負(fù)責(zé)它的數(shù)據(jù)的加載和重新存取。
這個(gè)速度帶寬就高達(dá)500G字節(jié)/秒,是原來DDR4的4-5倍,這都是大幅的提高。而且現(xiàn)在在KNL里面第一次集成了Omni-Path,就是高速的網(wǎng)絡(luò)互聯(lián)。KNC的定位為一個(gè)協(xié)處理器,它一定要有一個(gè)Host來跟它配合。這個(gè)Host可以是至強(qiáng),也可以是Core系列的處理器。
KNL分為兩種:
一種可以繼續(xù)作為協(xié)處理器;
另一種是單獨(dú)的處理器,不需要一個(gè)Host,這也是它的新的特性。
這些相比來講,會(huì)更加方便用戶。而且我們提供不同等級(jí)的KNL的SKU(銷售型號(hào)),在價(jià)格上有不同的選擇,相應(yīng)來說它會(huì)有一些偏重于計(jì)算,有一些偏重于數(shù)據(jù)的I/O等。
同時(shí),從去年開始我們?cè)诿绹?guó)已經(jīng)實(shí)驗(yàn)的,在云端給用戶提供一個(gè)Educational Cluster的平臺(tái)。因?yàn)閷?duì)于在校學(xué)生,多節(jié)點(diǎn)的KNL還是蠻貴的,但是有了這個(gè)云平臺(tái),用戶可以在那里提交自己的任務(wù)去做實(shí)驗(yàn)。
今年我們希望把云端這塊的實(shí)驗(yàn)平臺(tái)在中國(guó)部署開放起來。屆時(shí)希望有兩種方式去支持大家做這種計(jì)算加速,還有節(jié)點(diǎn)擴(kuò)展加速的實(shí)驗(yàn),用不同的算法和不同的應(yīng)用去做相應(yīng)的實(shí)驗(yàn)。這樣的話,我覺得可以推動(dòng)更多的人去試更多的硬件。英特爾在軟件方面去提供的工具支持也會(huì)越來越多。
我覺得KNL還是非常有潛力的硬件加速產(chǎn)品,它對(duì)于很多模型本身就有并行度,而且數(shù)據(jù)之間也有一定的并行度,并且中間還要有一些決策的時(shí)候特別有幫助。
雷鋒網(wǎng):很多深度學(xué)習(xí)的用戶都表示,比起芯片底層的硬件架構(gòu),他們更加關(guān)注軟硬件在一起的生態(tài),對(duì)此,英特爾是如何做的?
宋繼強(qiáng):在軟件生態(tài)方面,英特爾支持AI應(yīng)用的通用軟件堆棧(雷鋒網(wǎng)按:如下圖所示),中間三層用來屏蔽底層硬件的實(shí)現(xiàn)差異、支持流行開源框架和與加速應(yīng)用方案的工具。
?? 英特爾提供的AI解決方案
具體來說,英特爾準(zhǔn)備在軟件層提供比較一致的軟件接口。
如果是已經(jīng)在使用開源框架的用戶,比如現(xiàn)在流行的TensorFlow、MXNet、Caffe,英特爾的策略是我們有一個(gè)對(duì)它們的統(tǒng)一接口,開發(fā)者可以用他們熟悉的開源的框架去訓(xùn)練模型。
同時(shí)底下我們會(huì)對(duì)接上英特爾的中間層,中間層可以把它映射成我們英特爾的MKL的加速和我們稱為擴(kuò)展性加速的庫。擴(kuò)展性加速是干什么的呢?因?yàn)镸KL是加速數(shù)學(xué)運(yùn)算的,比如說張量運(yùn)算。但是如果要把它擴(kuò)展到多個(gè)節(jié)點(diǎn)上,比如說擴(kuò)展到72個(gè)核,甚至擴(kuò)展到1000個(gè)核上的時(shí)候,這時(shí)候就需要用擴(kuò)展加速,它去幫用戶解決互聯(lián)之間的數(shù)據(jù)傳輸和控制的傳輸?shù)囊恍┘铀伲挥糜脩羧ス芩?/p>
這時(shí)雖然用戶使用的是開源框架,但是他可以很容易的使用到底下的硬件加速能力,用KNL也好,用Lake Crest也好,會(huì)映射到不同的硬件上去。
如果是新的學(xué)習(xí)者,他可以有兩個(gè)選擇,一個(gè)選擇使用開源的框架,一個(gè)是選擇使用英特爾提供的基于Neon的框架,它是Nervana原來還是獨(dú)立公司前的框架,也是排在前十的?,F(xiàn)在他們還繼續(xù)基于這個(gè)框架在做一些事情。
如果說用戶選擇這個(gè)框架的話,會(huì)直接能夠利用到底下很多的加速。同時(shí)Nervana還在做一個(gè)事情,當(dāng)然它現(xiàn)在是英特爾的AIPG。他們?cè)谧鲆粋€(gè)叫nGraph的軟件層次工具,也就是說用戶的程序里其實(shí)有很多可并行的地方,但是由于算法其實(shí)很復(fù)雜,要用戶自己去分析的話,未必能把它拆分得很好。
而這個(gè)nGraph工具就是來抽取里面可并行的部分,把它分到不同的硬件的加速單元上去。比如說分到不同的Lake Crest,里面有好多個(gè)加速的矢量計(jì)算單元。怎么分配?它來做優(yōu)化,有一點(diǎn)像我們傳統(tǒng)的在高性能計(jì)算的時(shí)候,英特爾的Parallel Studio里面有Thread Building Block,就等于幫你自動(dòng)去把程序里面的可以并行的線程給你提取出來,放在不同的核上去。
對(duì)于初學(xué)者來講,他可以不用自己去搞定所有的軟件堆棧的每一層怎么去優(yōu)化,他可以先去使用開源的工具也好,使用我們英特爾提供的工具也好,把他的算法、模型先訓(xùn)練好,然后通過我們中間提供的這些工具鏈映射到不同的層級(jí)。
這是我們現(xiàn)在走的戰(zhàn)略,軟硬件結(jié)合去做。
雷鋒網(wǎng):除了深度森林和DNN以外,KNL還適合哪些應(yīng)用和算法?
宋繼強(qiáng):KNL在Life Science里面也有很多的應(yīng)用,比如像基因測(cè)序,精準(zhǔn)醫(yī)療。在一些零售的領(lǐng)域同時(shí)處理很多個(gè)不同用戶的一些請(qǐng)求,做一些相關(guān)的安全驗(yàn)證等,都是可以的。其實(shí)應(yīng)用的領(lǐng)域非常適合讓多個(gè)核同時(shí)去做,因?yàn)樗鼈儽旧砭褪切枰シ指钸@些任務(wù)去處理。而且在處理的過程中并不都是圖像的塊與塊之間比對(duì),生成很多完整的塊的vector然后再去逐步往后走的,還需要很多靈活性的程序在運(yùn)行。
雷鋒網(wǎng):能否詳細(xì)說說英特爾和周志華團(tuán)隊(duì)的合作?
宋繼強(qiáng):周老師是國(guó)內(nèi)人工智能領(lǐng)域的杰出學(xué)者,領(lǐng)軍人物。所以英特爾的產(chǎn)品部門、學(xué)術(shù)研究部門也都一直在關(guān)注。我們現(xiàn)在形成的是戰(zhàn)略合作關(guān)系,這個(gè)框架會(huì)包含幾方面內(nèi)容:
第一方面,學(xué)術(shù)界擅長(zhǎng)于去定義算法和新的理論,但是如果要把性能直接提升到產(chǎn)業(yè)的標(biāo)桿級(jí)別,這還是有一定的困難。不同AI的應(yīng)用,需要不同種類的軟硬件加速方案去做。
而產(chǎn)業(yè)界有很強(qiáng)的工程化資源和計(jì)算能力,比如英特爾可以提供一些新的軟硬件,給學(xué)術(shù)界去做相應(yīng)的學(xué)術(shù)算法的驗(yàn)證,我們的技術(shù)團(tuán)隊(duì)還可以配合他們做性能的優(yōu)化。這樣可以達(dá)到強(qiáng)強(qiáng)聯(lián)合,把新理論真正推動(dòng)到市場(chǎng)應(yīng)用的級(jí)別。
另一方面,英特爾在AI這個(gè)領(lǐng)域想做三件事:
第一件事是Fuel AI,賦能AI。讓它不只局限于現(xiàn)在大家看到的幾個(gè)領(lǐng)域,讓它能夠更廣泛的應(yīng)用在各種新的行業(yè)里,這是增強(qiáng)AI的能力。
第二件事是Democratize AI,民主化。讓AI更多的為一般的工程開發(fā)人員所用。我們覺得像周老師這種開源是非常好的,開源以后有很多的學(xué)生、團(tuán)隊(duì)、老師可以去試用,試用以后用上英特爾這樣商業(yè)化的平臺(tái)。比如他們現(xiàn)在是在不同的PC上做,這樣的成本就相對(duì)來說低很多。如果愿意使用英特爾的KNL去做實(shí)驗(yàn)的話,我們?cè)趪?guó)內(nèi)也會(huì)去發(fā)布基于云或者是基于實(shí)際計(jì)算設(shè)備的計(jì)劃,來輔助學(xué)術(shù)界去用KNL做實(shí)驗(yàn),把成本降低下來。
第三個(gè)事就是英特爾保證AI做正確的事,引導(dǎo)AI去做非常有益于社會(huì)的事情。
現(xiàn)在我們主要是關(guān)注前兩塊。
在業(yè)界,英特爾是具有領(lǐng)導(dǎo)力的公司。在學(xué)術(shù)界,周老師團(tuán)隊(duì)是具有號(hào)召力、影響力的學(xué)術(shù)團(tuán)隊(duì)。我們聯(lián)合起來,會(huì)把AI的生態(tài)環(huán)境推動(dòng)的更好,這就是現(xiàn)在合作的情況。
雷鋒網(wǎng):今年英特爾成立了AIPG,在公司的層面上,研究院在推進(jìn)AI方面,和他們有什么樣的協(xié)作和分工?
宋繼強(qiáng):AIPG是個(gè)產(chǎn)品部門,它是英特爾對(duì)外提供人工智能所驅(qū)動(dòng)的產(chǎn)品領(lǐng)域的直接對(duì)外出口。這個(gè)出口實(shí)際上會(huì)整合英特爾內(nèi)部軟件、硬件的甚至算法的很多的技術(shù)資源,把它形成解決方案往外推。
研究院相對(duì)來說是對(duì)內(nèi)的,不直接對(duì)外提供產(chǎn)品。我們所做的一些AI方面的研究可能會(huì)更前瞻,也更有一些變數(shù),我們會(huì)去看外邊學(xué)術(shù)界會(huì)發(fā)生什么,并相應(yīng)的做一些學(xué)術(shù)方面的研究。
除了跟隨外部的研究熱點(diǎn)外,甚至我們會(huì)找一些新的熱點(diǎn)做。我們?cè)谝恍┫鄳?yīng)的CV(計(jì)算機(jī)視覺)的比賽,比如情感識(shí)別,我們都能拿到世界冠軍。這些技術(shù)是在研究院里面去做的,達(dá)到一定程度,對(duì)產(chǎn)品部門的某些產(chǎn)品可以產(chǎn)生直接應(yīng)用的時(shí)候,產(chǎn)品部門就會(huì)把這些技術(shù)轉(zhuǎn)化到他們的產(chǎn)品里面去。
我覺得研究院和AIPG是一個(gè)很好的合作關(guān)系,大家在時(shí)間線上是不重疊的,并且是一個(gè)技術(shù)研究和輸出的關(guān)系。
雷鋒網(wǎng):下半年研究院有沒有什么新的打算?尤其是在AI方面。
宋繼強(qiáng):主要會(huì)在深度學(xué)習(xí)訓(xùn)練這塊,包括和美國(guó)的研究院一起,看如何去提升深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并且把這個(gè)網(wǎng)絡(luò)壓縮。然后在新的硬件,就是KNL,Knight Mills、Knight Landing這些上面做一些新的實(shí)驗(yàn),這是一種,可能會(huì)用到更多的節(jié)點(diǎn)去做訓(xùn)練。
另外,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練好了以后,我們會(huì)做相應(yīng)的裁減,裁減以后往Lake Crest,F(xiàn)PGA, Movidius這樣的硬件上去落地。這樣的話,能把AI做深度學(xué)習(xí)的能力放到更小型設(shè)備上去。
所以這是兩個(gè)方向:在云端要做更大規(guī)模的訓(xùn)練,同時(shí)把訓(xùn)練時(shí)間縮短;最后訓(xùn)練的模型爭(zhēng)取能夠把它變小。
(完)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。