王子曦,邵培南,鄧 暢
(中國電子科技集團(tuán)公司第三十二研究所,上海 201808)
隨著計(jì)算機(jī)硬件性能提升,多核心CPU 已經(jīng)成為主流,越來越多云服務(wù)器開始使用GPU 加速機(jī)器學(xué)習(xí)等計(jì)算任務(wù).性能較高的個(gè)人計(jì)算機(jī)一般是多核CPU+單個(gè)獨(dú)立GPU的模式.依靠計(jì)算機(jī)性能的發(fā)展,擅長圖形相關(guān)機(jī)器學(xué)習(xí)任務(wù)的深度學(xué)習(xí)發(fā)展迅速,不僅在云服務(wù)器上作為API 提供,在用戶客戶端上也已出現(xiàn)使用預(yù)訓(xùn)練模型進(jìn)行數(shù)據(jù)處理的需求和實(shí)現(xiàn)[1],例如相冊(cè)根據(jù)圖片內(nèi)容進(jìn)行分類、相機(jī)檢測拍攝場景類型等[2].
由于深度學(xué)習(xí)一般運(yùn)算量大且處理的數(shù)據(jù)多是圖像等復(fù)雜數(shù)據(jù),所以有必要讓程序充分并行化且盡可能利用硬件加速,來提升運(yùn)算速度和用戶使用體驗(yàn).為了提高硬件利用率,需要同時(shí)使用CPU的多個(gè)核心和GPU執(zhí)行任務(wù).由于在實(shí)際應(yīng)用中GPU 在執(zhí)行不同類型任務(wù)時(shí)相對(duì)CPU的速度并不成固定比例,如果將任務(wù)簡單地按照固定比例分配給CPU和GPU,無法在不同類型的任務(wù)上均能充分利用硬件,所以需要使用恰當(dāng)?shù)娜蝿?wù)調(diào)度算法在運(yùn)行時(shí)進(jìn)行任務(wù)分配以均衡硬件的負(fù)載.
Caffe[3]是一款使用廣泛的深度學(xué)習(xí)框架,主要面向圖像分類任務(wù),主要優(yōu)點(diǎn)是速度極快.在目前的主流深度學(xué)習(xí)框架中,Caffe的速度、編程工作量、穩(wěn)定性比較均衡[4],而且模塊化設(shè)計(jì)便于調(diào)用和擴(kuò)展.通過部署已經(jīng)提前訓(xùn)練好的Caffe 模型,可以在毫秒級(jí)對(duì)輸入的新數(shù)據(jù)完成推理.Caffe的使用流程是先用已標(biāo)注的數(shù)據(jù)進(jìn)行較慢的訓(xùn)練,然后使用訓(xùn)練結(jié)果進(jìn)行較快的推理.在實(shí)際使用中,生產(chǎn)環(huán)境和普通用戶終端一般都是使用預(yù)訓(xùn)練模型執(zhí)行推理任務(wù).如果已經(jīng)有訓(xùn)練好的Caffe 模型,需要使用Caffe的Python 或者C++、Matlab 接口[5]編寫程序,然而在默認(rèn)情況下只能使用單個(gè)GPU 或者單個(gè)CPU 核心進(jìn)行推理.在使用BLAS編譯Caffe 后可以提升多CPU 核心上的并行效果.不過直接部署Caffe 無法簡單同時(shí)使用多核心CPU和GPU 甚至多CPU、GPU 加速推理速度.
為了提高Caffe 在異構(gòu)并行計(jì)算設(shè)備上的表現(xiàn),目前有一些提高Caffe 并行表現(xiàn)的研究.例如英特爾的修改版Caffe 可以在多處理器多核多線程(NUMA 架構(gòu))CPU 計(jì)算平臺(tái),尤其是使用特定Xeon Phi 處理器的平臺(tái)上大幅提升Caffe的性能[6].英偉達(dá)的gpu-rest-engine項(xiàng)目[7]可以讓使用英偉達(dá)GPU 進(jìn)行運(yùn)算的Caffe 提供低延遲的REST API 圖像分類微服務(wù).還有AMD 修改的OpenCL 版Caffe[8],經(jīng)過AMD 優(yōu)化并測試,在AMD的CPU、GPU、APU 等多核異構(gòu)的計(jì)算設(shè)備上訓(xùn)練和推理的速度都有提升,且訓(xùn)練速度的提升倍數(shù)更大[9].還有結(jié)合特定平臺(tái)上的編譯工具進(jìn)行編譯并擴(kuò)展到分布式服務(wù)器來提高Caffe 運(yùn)算速度的研究[10].這些提高Caffe 并行表現(xiàn)的方法對(duì)于平臺(tái)有一定限制,且很多需要自行編譯,使用難度較高,無法簡單充分利用異構(gòu)并行計(jì)算硬件的計(jì)算性能.
為了使部署的Caffe 能充分使用異構(gòu)并行計(jì)算平臺(tái)上的所有計(jì)算設(shè)備,本文做了以下工作.
(1)為了使部署的Caffe 調(diào)用更靈活,本文封裝了Caffe的部署程序接口[11],并擴(kuò)展了功能,使之可以在初始化運(yùn)行后通過本地環(huán)回提供服務(wù),接收并根據(jù)預(yù)訓(xùn)練模型執(zhí)行推理任務(wù).
(2)分析并總結(jié)了現(xiàn)有的幾種異構(gòu)調(diào)度算法,將這些算法應(yīng)用到在異構(gòu)并行計(jì)算平臺(tái)上加速Caffe 執(zhí)行典型圖像分類任務(wù).通過分析實(shí)驗(yàn)數(shù)據(jù)和觀察已有調(diào)度算法的不足之處,提出了兩種新的調(diào)度算法,并進(jìn)行了相應(yīng)的實(shí)驗(yàn)和數(shù)據(jù)分析.
對(duì)于并行化的任務(wù),任務(wù)調(diào)度算法決定了負(fù)載均衡的效果和各個(gè)計(jì)算節(jié)點(diǎn)的利用率.由于GPU和CPU執(zhí)行不同任務(wù)的速度之比并非固定且GPU 性能隨著負(fù)載變化性能會(huì)有微小變化[12],還考慮到任務(wù)調(diào)度、同步帶來的開銷,需要合適的任務(wù)調(diào)度算法才能進(jìn)一步提高模型的推理速度.當(dāng)前使用的幾種主流調(diào)度算法[13]如下.
靜態(tài)調(diào)度是一種簡單的調(diào)度算法,此算法直接將任務(wù)按照固定比例分配到不同的運(yùn)算核心.假設(shè)總?cè)蝿?wù)數(shù)量為W,用戶指定的n個(gè)計(jì)算設(shè)備工作量比例r=[r1,r2,···,rn],則第i個(gè)計(jì)算設(shè)備在開始時(shí)分配任務(wù)數(shù)量wi為:
由于通常無法知道各個(gè)設(shè)備在未知任務(wù)上的計(jì)算能力,所以只能將任務(wù)均勻分配給各個(gè)設(shè)備,此時(shí)第i個(gè)計(jì)算設(shè)備在開始時(shí)分配的任務(wù)數(shù)量wi為:
由于CPU 核心和GPU 之間的運(yùn)算速度比例在不同運(yùn)算任務(wù)上不同,所以不可能存在一個(gè)固定的比例在所有運(yùn)算任務(wù)上都能自始至終充分利用所有核心.
考慮到靜態(tài)調(diào)度無法根據(jù)不同運(yùn)算核心的性能區(qū)別分配任務(wù),快速調(diào)度將任務(wù)執(zhí)行分成以下兩步.
第1 步為小規(guī)模測試,給所有計(jì)算核心分配相同的數(shù)量較小的任務(wù),并等待這些核心執(zhí)行完畢.
第2 步為正式執(zhí)行,根據(jù)之前第1 步各個(gè)核心的執(zhí)行時(shí)間,可以計(jì)算出各個(gè)核心的執(zhí)行速度.根據(jù)核心的速度之比將剩下的所有任務(wù)按照這個(gè)比例分配給相應(yīng)核心.
假設(shè)第1 步小規(guī)模測試得出各個(gè)設(shè)備的計(jì)算性能v=[v1,v2,···,vn],此時(shí)剩余任務(wù)數(shù)量為w剩余,則第2 步正式執(zhí)行中第i個(gè)設(shè)備分配到的任務(wù)數(shù)量wi為:
這種調(diào)度方法優(yōu)點(diǎn)是任務(wù)沒有劃分很多,所以引入的額外開銷很小.缺點(diǎn)是第1 步分配的任務(wù)數(shù)量會(huì)影響到最終效果.如果分配過少,偶然誤差更大,更有可能因?yàn)樗俣裙罍y不準(zhǔn)導(dǎo)致第2 步分配效果不好;如果分配過多,雖然估測更加精準(zhǔn),但是等待第1 步結(jié)束的同步時(shí)間更長,浪費(fèi)了速度更快的計(jì)算設(shè)備的計(jì)算能力.
分片調(diào)度將任務(wù)分成等量的小塊,第一次將小塊任務(wù)等量分配給各個(gè)計(jì)算單元.之后每一次等待前一次所有運(yùn)算完成得出運(yùn)算速度后按照相應(yīng)比例分配后續(xù)小塊.
假設(shè)某次同步時(shí)得出上一輪各個(gè)設(shè)備的計(jì)算性能v=[v1,v2,···,vn],每一個(gè)小塊包含的任務(wù)數(shù)量為w,則第i個(gè)設(shè)備分配到的任務(wù)數(shù)量wi為:
此算法優(yōu)點(diǎn)是對(duì)于各個(gè)計(jì)算設(shè)備的計(jì)算能力估測更準(zhǔn)確.缺點(diǎn)是如果小塊偏小,等待計(jì)算完畢同步的時(shí)間會(huì)積少成多;如果小塊偏大,剛開始各個(gè)設(shè)備之間任務(wù)完成的時(shí)間差距更大,導(dǎo)致計(jì)算能力的浪費(fèi).
HAT 調(diào)度相比分片調(diào)度,在每一次分片時(shí)考慮上一次的任務(wù)執(zhí)行情況,如果上一次各個(gè)計(jì)算設(shè)備的任務(wù)執(zhí)行時(shí)間已經(jīng)很接近或者剩下任務(wù)不夠多,就直接把剩余所有任務(wù)按照比例分配,否則把分片大小擴(kuò)大一倍按照比例分配.
此方法的優(yōu)點(diǎn)是減少了同步開銷,還避免了開始時(shí)各個(gè)計(jì)算設(shè)備計(jì)算能力的差異導(dǎo)致完成時(shí)間差距過大.
目前已有的快速調(diào)度、分片調(diào)度、HAT 調(diào)度算法,由于存在等待各個(gè)計(jì)算設(shè)備任務(wù)完成來統(tǒng)計(jì)計(jì)算性能這一同步步驟,會(huì)帶來開銷.為減少同步開銷,本文提出以下兩種無需等待同步的調(diào)度算法.
此調(diào)度算法設(shè)計(jì)思想來自常見的先進(jìn)先出算法.將固定任務(wù)數(shù)量的小塊分配給各個(gè)計(jì)算設(shè)備.假如用戶定義的小塊大小是c,則第i個(gè)設(shè)備分配到的任務(wù)數(shù)量wi為:
如果某個(gè)設(shè)備計(jì)算完畢則立即再分配任務(wù)小塊,直到所有任務(wù)完成.此方法沒有等待各個(gè)設(shè)備同步的開銷,能充分利用所有設(shè)備的計(jì)算能力.
先進(jìn)先出調(diào)度中的小塊始終大小相等,對(duì)于前期來說分片過多會(huì)造成更多開銷,而在最后結(jié)尾部分很容易各個(gè)設(shè)備結(jié)束時(shí)間差別過大.因此,本文進(jìn)一步提出下面的快速分塊調(diào)度算法.
此算法同時(shí)吸收了分片算法估測計(jì)算設(shè)備性能準(zhǔn)確的優(yōu)點(diǎn)和HAT 分塊數(shù)量少的優(yōu)點(diǎn).首先將固定的任務(wù)小塊ws分給各個(gè)計(jì)算設(shè)備,如果某設(shè)備完成了小塊任務(wù)但此時(shí)不是所有設(shè)備都完成過至少一次小塊任務(wù),就再次給該設(shè)備相同任務(wù)數(shù)量的小塊,直到所有設(shè)備都至少完成過一次小塊任務(wù).每次小塊任務(wù)完成,都統(tǒng)計(jì)出該設(shè)備的計(jì)算性能vi.之后按照設(shè)備計(jì)算性能給每個(gè)空閑設(shè)備分配剩余任務(wù)的固定比例.考慮到后期任務(wù)會(huì)分配過少,所以剩余任務(wù)少于100 時(shí)則分配全部剩余任務(wù).假設(shè)已得出所有設(shè)備的計(jì)算性能v=[v1,v2,···,vn],固定比例為r,當(dāng)前剩余工作量為w剩余.則給空閑設(shè)備分配的任務(wù)數(shù)量為:
每個(gè)計(jì)算設(shè)備的程序流程如圖1所示.
圖1 快速分塊調(diào)度流程圖
Caffe的使用流程是先用已標(biāo)注的數(shù)據(jù)進(jìn)行較慢的訓(xùn)練,然后使用訓(xùn)練結(jié)果進(jìn)行較快的推理.在實(shí)際使用中,生產(chǎn)環(huán)境和普通用戶終端需求的多是推理任務(wù).Caffe 默認(rèn)只能使用GPU 或者單個(gè)CPU 進(jìn)行推理.為了解決重復(fù)初始化Caffe 帶來的開銷和提高Caffe 推理對(duì)異構(gòu)并行硬件的利用率,本文編寫了封裝的Caffe部署程序(后續(xù)簡稱服務(wù)端),提供簡潔高效的調(diào)用接口且易于部署.
為了能夠一次初始化Caffe 并載入預(yù)訓(xùn)練模型后多次推理,且可以通過程序分配任務(wù)便于后續(xù)使用自定義調(diào)度算法,采用了本地環(huán)回網(wǎng)絡(luò)通信,服務(wù)端通過UDP和調(diào)用程序通信.通信時(shí)通過UDP 發(fā)送JSON 數(shù)據(jù),數(shù)據(jù)可以包括執(zhí)行的命令和參數(shù)等,便于擴(kuò)展.
為了使服務(wù)端的部署更加便捷,使用了Caffe的Docker 版.運(yùn)行時(shí),可以通過Docker 啟動(dòng)參數(shù)直接使用某個(gè)特定的CPU 核心[14].由于即使使用GPU 版進(jìn)行Caffe 推理也需要CPU 分配任務(wù)處理數(shù)據(jù),會(huì)大量占用一個(gè)CPU 核心,所以服務(wù)端需要預(yù)留一個(gè)CPU核心用于工作在GPU 模式的Caffe.
使用本文編寫的服務(wù)端,自定義程序可以便捷地調(diào)用Caffe 進(jìn)行推理.本節(jié)給出有關(guān)測試結(jié)果,實(shí)驗(yàn)環(huán)境配置參數(shù)列于表1.
表1 實(shí)驗(yàn)環(huán)境配置表
實(shí)驗(yàn)使用MNIST[15]和Cifar-10[16]這兩個(gè)經(jīng)典的圖像分類任務(wù)數(shù)據(jù)集.MNIST 數(shù)據(jù)集為單通道灰度28×28 圖片,Cifar-10 數(shù)據(jù)集為三通道彩色32×32 圖片.測試時(shí)這兩個(gè)數(shù)據(jù)集均預(yù)處理為Caffe 推理支持的numpy 格式的.npy 文件且載入內(nèi)存,避免磁盤讀取緩存帶來的誤差.
首先,測試了不使用并行化而只使用CPU 單核或者單個(gè)GPU 在MNIST和Cifar-10 數(shù)據(jù)集上進(jìn)行推理的速度,總?cè)蝿?wù)數(shù)量為10 000,得到的每秒執(zhí)行推理任務(wù)數(shù)列在表2中.
表2 每秒執(zhí)行的推理任務(wù)數(shù)
結(jié)果表明,每次提交的任務(wù)數(shù)過少會(huì)因?yàn)殚_銷導(dǎo)致性能下降.而且,對(duì)于不同任務(wù),CPU和GPU的性能之比不是恒定的.
根據(jù)表2數(shù)據(jù),得到Caffe 推理速度與每次提交任務(wù)數(shù)的變化關(guān)系,見圖2.可以看到,無論是CPU和GPU,如果每次提交任務(wù)數(shù)偏少都會(huì)因?yàn)殚_銷導(dǎo)致性能下降,且GPU 下降更明顯.從圖2中可以看出,如果任務(wù)拆分到1 000 個(gè)左右作為一次提交,對(duì)性能的影響不大,如果小于100 個(gè)左右,影響就較大,出現(xiàn)性能明顯下降.因此,后面實(shí)驗(yàn)測試異構(gòu)并行計(jì)算平臺(tái)的Caffe推理調(diào)度算法時(shí),避免將任務(wù)拆分到小于100 個(gè)任務(wù)的小塊.
圖2 Caffe 推理速度和每次提交任務(wù)數(shù)的關(guān)系圖
接下來在異構(gòu)并行平臺(tái)測試了幾種調(diào)度算法對(duì)MNIST和Cifar-10 數(shù)據(jù)集上的Caffe 推理任務(wù)的加速效果.考慮到某些算法的參數(shù)可變,實(shí)驗(yàn)中針對(duì)這些參數(shù)的意義,在其合理范圍內(nèi)取了多個(gè)典型值,以測試不同參數(shù)下的運(yùn)行效果.不同算法中可變參數(shù)的含義和取值列于表3.
表3 調(diào)度算法的參數(shù)和實(shí)驗(yàn)取值
分別使用上文中的各種調(diào)度算法及按表3的參數(shù)取值,在MNIST和Cifar-10 數(shù)據(jù)集上進(jìn)行Caffe 推理(測試的任務(wù)數(shù)均為100 000)并計(jì)時(shí),根據(jù)完成任務(wù)所用時(shí)間計(jì)算出每秒推理數(shù),即推理速度,總結(jié)在圖3和圖4中.圖中同一調(diào)度算法從左到右的幾個(gè)推理速度分別對(duì)應(yīng)表3中從左到右的參數(shù)取值.為了便于比較,同樣任務(wù)數(shù)下只使用CPU 單核和單個(gè)GPU的推理速度也畫在圖中.
從圖3和圖4都能看到,使用能在運(yùn)行時(shí)根據(jù)運(yùn)算設(shè)備性能動(dòng)態(tài)分配任務(wù)的調(diào)度算法,例如快速調(diào)度、分片調(diào)度、HAT 調(diào)度、先進(jìn)先出調(diào)度、快速分塊調(diào)度算法,相比不將推理過程并行化或者簡單地靜態(tài)分配,都能大幅提升推理速度.實(shí)驗(yàn)中發(fā)現(xiàn),計(jì)算機(jī)的各個(gè)計(jì)算設(shè)備占用率基本維持在滿載,且各個(gè)設(shè)備任務(wù)完成的時(shí)間差異不大,說明上述能在運(yùn)行時(shí)動(dòng)態(tài)分配任務(wù)的調(diào)度算法都成功使用異構(gòu)并行設(shè)備的計(jì)算能力,提高了Caffe 推理的速度.
圖3和圖4也給出了對(duì)于同一算法改變可調(diào)參數(shù)后的推理速度的變化.可以看出,對(duì)于分片調(diào)度、HAT調(diào)度和快速分塊調(diào)度這3 種算法,參數(shù)改變產(chǎn)生的差異更小.分析其算法原理可以知道,這幾種算法通過更多分片能更準(zhǔn)確地度量各個(gè)計(jì)算設(shè)備的當(dāng)前計(jì)算能力,從而更加準(zhǔn)確地分配任務(wù).相比之下,快速調(diào)度由于只通過一次小規(guī)模測試來度量各個(gè)計(jì)算設(shè)備的計(jì)算能力,無法適應(yīng)隨著計(jì)算設(shè)備負(fù)載變化而出現(xiàn)的性能變化.先進(jìn)先出調(diào)度由于分塊大小固定,如果分塊過小,會(huì)帶來更多開銷;如果分塊過大,每個(gè)計(jì)算設(shè)備最后任務(wù)完成時(shí)間可能差異較大導(dǎo)致某個(gè)設(shè)備任務(wù)完成時(shí)間遠(yuǎn)晚于其他設(shè)備.
圖3 不同調(diào)度算法下Caffe 在MNIST數(shù)據(jù)集上的每秒推理數(shù)
圖4 不同調(diào)度算法下Caffe 在Cifar-10數(shù)據(jù)集上的每秒推理數(shù)
比較性能表現(xiàn)較好的幾個(gè)調(diào)度算法,本文提出的快速分塊調(diào)度算法不僅性能表現(xiàn)頂尖,而且即使改變可變參數(shù),性能變化不大,更不會(huì)出現(xiàn)明顯下降.說明快速分塊調(diào)度算法不僅具有提升推理速度的優(yōu)勢(shì),還有很好的魯棒性,不容易因?yàn)槿狈?jīng)驗(yàn)對(duì)可變參數(shù)的設(shè)定不準(zhǔn)而導(dǎo)致推理性能明顯下降.根據(jù)算法原理,可以推測出,由于快速分塊調(diào)度算法前期分塊較大后期分塊較小,相比HAT 算法更不容易造成每個(gè)計(jì)算設(shè)備最后任務(wù)完成時(shí)間較大差異,同時(shí)分塊不會(huì)過多,所以性能和HAT 算法一樣較為優(yōu)秀且總體表現(xiàn)好于HAT 算法.
根據(jù)實(shí)驗(yàn)數(shù)據(jù),將同一算法在實(shí)驗(yàn)中取不同參數(shù)得到的推理速度數(shù)據(jù)求平均值作為該算法的平均推理速度,比較各算法在兩個(gè)數(shù)據(jù)集上的平均推理速度,總結(jié)在表4和表5中.表中數(shù)據(jù)是所在列的算法和所在行的算法平均推理的速度的比較,例如127.7%對(duì)應(yīng)的意思是單GPU 推理速度比單CPU 快127.7%.可以看出使用能在運(yùn)行時(shí)根據(jù)運(yùn)算設(shè)備性能動(dòng)態(tài)分配任務(wù)的調(diào)度算法對(duì)Caffe 深度學(xué)習(xí)推理速度的提升很大,其中快速分塊調(diào)度算法表現(xiàn)最好.
表4 各種調(diào)度算法在MNIST 數(shù)據(jù)集上推理速度表現(xiàn)比較(%)
表5 各種調(diào)度算法在Cifar-10 數(shù)據(jù)集上推理速度表現(xiàn)比較(%)
以CPU和GPU 單核計(jì)算性能乘以相應(yīng)核心數(shù)量,作為理論最高性能.定義某一算法的性能與理論最高性能的差別為:差別=(理論最高性能?某種算法性能)/理論最高性能.差別越小,表示該算法的表現(xiàn)性能越好.圖5將實(shí)驗(yàn)中得到的幾種在運(yùn)行時(shí)分配任務(wù)的調(diào)度算法的性能數(shù)據(jù)與理論最高性能的差別做了比較.結(jié)果表明,快速分塊調(diào)度表現(xiàn)最好,與其余4 個(gè)調(diào)度算法中表現(xiàn)最好的HAT 算法相比,快速分塊調(diào)度算法與理論最高性能的差別在MNIST和Cifar-10 這兩個(gè)數(shù)據(jù)集上分別減小了7.4%和21.0%,表明該算法對(duì)計(jì)算設(shè)備性能的利用率更高.
圖5 不同調(diào)度算法性能相比理論最高性能的差別百分比
為了在異構(gòu)并行計(jì)算平臺(tái)上提升Caffe 框架的深度學(xué)習(xí)推理速度,本文擴(kuò)展了Caffe的部署程序,使用戶可以自定義編程調(diào)用Caffe 推理.然后將已有的異構(gòu)調(diào)度算法擴(kuò)展了多設(shè)備支持.針對(duì)已有調(diào)度算法的不足,提出了能夠減少同步等待的先進(jìn)先出算法、能夠同時(shí)減少同步等待且減少分塊次數(shù)的快速分塊調(diào)度算法.測試結(jié)果表明使用擴(kuò)展的Caffe 部署程序,已有的快速調(diào)度、分片調(diào)度、HAT 調(diào)度等算法,以及本文提出的先進(jìn)先出調(diào)度、快速分塊調(diào)度算法都能大幅提高推理時(shí)異構(gòu)并行計(jì)算硬件的利用率.其中快速分塊調(diào)度表現(xiàn)優(yōu)秀穩(wěn)定,在MNIST和Cifar-10 數(shù)據(jù)集上推理速度相比CPU 單核分別提升了378%和736%,相比單GPU 分別提升了110%和34%;相比已有最好的HAT 調(diào)度算法,在MNIST和Cifar-10 這兩個(gè)數(shù)據(jù)集上分別減小了7.4%和21.0%的計(jì)算性能浪費(fèi).
在將來的研究中,可以探索深度學(xué)習(xí)模型中使用的神經(jīng)網(wǎng)絡(luò)類型或者輸入數(shù)據(jù)規(guī)模如何造成CPU和GPU的推理速度差異.根據(jù)神經(jīng)網(wǎng)絡(luò)類型、輸入數(shù)據(jù)規(guī)模等信息更快地選擇出合適的調(diào)度算法參數(shù)來優(yōu)化推理速度的提升.