亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于共享GPU的深度學(xué)習(xí)訓(xùn)練性能實(shí)證研究

        2023-01-31 09:40:48徐渙霖顧嘉臻周揚(yáng)帆
        關(guān)鍵詞:運(yùn)算符進(jìn)程內(nèi)存

        徐渙霖 顧嘉臻 康 昱 周揚(yáng)帆

        1(復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 上海 200433) 2(上海市智能信息處理重點(diǎn)實(shí)驗(yàn)室 上海 200433) 3(微軟亞洲研究院 北京 100080)

        0 引 言

        深度學(xué)習(xí)技術(shù)已經(jīng)在自然語言處理[1]、圖像分類[2]和推薦系統(tǒng)[3]等眾多領(lǐng)域中被證明是卓有成效的,甚至在特定領(lǐng)域中超越了人類的表現(xiàn)[4]。這使得深度學(xué)習(xí)模型被廣泛地訓(xùn)練和部署。通常情況下,一個(gè)深度學(xué)習(xí)模型會包含數(shù)以千萬計(jì)的參數(shù)。為了能盡可能提高深度學(xué)習(xí)應(yīng)用的開發(fā)效率,通用計(jì)算能力更強(qiáng)的圖形處理單元(GPU)被大量應(yīng)用于模型訓(xùn)練中。

        因此近年來隨著深度學(xué)習(xí)應(yīng)用的普及,GPU越來越被認(rèn)為是一種重要的計(jì)算資源。云端提供GPU計(jì)算設(shè)備的服務(wù)正變得流行。諸如Google Cloud、Amazon Web Service和Microsoft Azure等云平臺,已經(jīng)向開發(fā)者提供了GPU云計(jì)算服務(wù)。出于商業(yè)考慮,云服務(wù)供應(yīng)商通常會利用虛擬化技術(shù)使得多個(gè)應(yīng)用程序之間共享一個(gè)GPU設(shè)備[5],以最大化經(jīng)濟(jì)效益。因此當(dāng)用戶使用云服務(wù)來訓(xùn)練其深度學(xué)習(xí)模型時(shí),其使用的GPU設(shè)備可能同時(shí)為其他用戶執(zhí)行訓(xùn)練進(jìn)程[6]。在運(yùn)行適當(dāng)?shù)纳疃葘W(xué)習(xí)模型組合時(shí),GPU云平臺的資源利用率有望得到提高,但也可能導(dǎo)致整體訓(xùn)練效率的大幅度下降。如何在這種情境下優(yōu)化GPU資源分配成為一個(gè)值得研究的問題。

        我們希望通過研究說明,各種類型的深度學(xué)習(xí)模型在一個(gè)GPU設(shè)備上同時(shí)訓(xùn)練時(shí),訓(xùn)練進(jìn)程的具體性能表現(xiàn)和原因。此研究結(jié)果可以為提高GPU云平臺資源利用率和優(yōu)化深度學(xué)習(xí)模型訓(xùn)練進(jìn)程的調(diào)度提供參考,使用戶和服務(wù)提供商受益。為了達(dá)到這個(gè)目標(biāo),我們精心設(shè)計(jì)了四個(gè)研究問題,并通過相關(guān)實(shí)驗(yàn)研究來回答這些問題。研究結(jié)果提供了訓(xùn)練不同的深度學(xué)習(xí)模型組合時(shí)的性能表現(xiàn),并且展示了訓(xùn)練進(jìn)程性能表現(xiàn)與模型屬性之間的關(guān)系。

        1 研究問題

        我們在本節(jié)提出了四個(gè)研究問題。通過回答這些問題,旨在更好地了解在一個(gè)GPU設(shè)備上同時(shí)訓(xùn)練多個(gè)深度學(xué)習(xí)模型的性能表現(xiàn)。首先定義共享訓(xùn)練的概念。

        定義1如果訓(xùn)練深度學(xué)習(xí)模型A和B的進(jìn)程同時(shí)在同一個(gè)GPU設(shè)備上運(yùn)行,則稱之為深度學(xué)習(xí)模型A和B的共享訓(xùn)練。

        GPU設(shè)備的內(nèi)存資源對模型訓(xùn)練非常重要,因?yàn)镚PU內(nèi)存大小決定訓(xùn)練進(jìn)程是否可以正常運(yùn)行至結(jié)束。在這種情況下,現(xiàn)有的深度學(xué)習(xí)開發(fā)框架的默認(rèn)設(shè)置傾向占用盡可能多的GPU內(nèi)存。因此,第一個(gè)研究問題如下。

        問題1當(dāng)一個(gè)深度學(xué)習(xí)模型單獨(dú)占用GPU設(shè)備訓(xùn)練時(shí),分配不同的GPU內(nèi)存大小是否會影響它的訓(xùn)練進(jìn)程運(yùn)行時(shí)間?

        這種獨(dú)占資源的調(diào)度使得一個(gè)GPU設(shè)備每次只能訓(xùn)練一個(gè)深度學(xué)習(xí)模型。如果用于訓(xùn)練的應(yīng)用程序?qū)嶋H上只需要很少的GPU內(nèi)存,就將導(dǎo)致資源的浪費(fèi)。這在GPU云平臺中尤其不可取。一種提高資源利用率的樸素方案是讓一個(gè)GPU設(shè)備同時(shí)運(yùn)行多個(gè)深度學(xué)習(xí)模型的訓(xùn)練進(jìn)程。然而在一個(gè)GPU設(shè)備上共享訓(xùn)練多個(gè)深度學(xué)習(xí)模型時(shí),訓(xùn)練進(jìn)程的整體效率尚不明確。我們對幾個(gè)具有代表性的深度學(xué)習(xí)模型組合進(jìn)行了實(shí)驗(yàn),旨在討論共享訓(xùn)練將使訓(xùn)練性能受到多大程度的影響,不同深度學(xué)習(xí)模型組合的具體性能表現(xiàn)如何。第二個(gè)研究問題如下。

        問題2當(dāng)共享訓(xùn)練深度學(xué)習(xí)模型A和B時(shí),是否會影響深度學(xué)習(xí)模型A的訓(xùn)練進(jìn)程運(yùn)行時(shí)間?如果是,那么模型組合類型是否與訓(xùn)練運(yùn)行時(shí)間變化有聯(lián)系?是否存在共享訓(xùn)練效率更高的情況?

        在回答以上問題后,我們進(jìn)而研究為什么兩個(gè)深度學(xué)習(xí)模型共享訓(xùn)練會對互相的訓(xùn)練進(jìn)程性能進(jìn)行產(chǎn)生影響。為了后續(xù)研究,分析了不同深度學(xué)習(xí)模型的底層運(yùn)算屬性。第三個(gè)研究問題如下。

        問題3不同深度學(xué)習(xí)模型的運(yùn)算屬性是否存在顯著差異?

        深度學(xué)習(xí)模型訓(xùn)練進(jìn)程所需系統(tǒng)資源主要分為GPU核心的計(jì)算資源和數(shù)據(jù)交換的I/O資源。不同類型的模型對計(jì)算資源和I/O資源的需求不同。一個(gè)深度學(xué)習(xí)模型可能是I/O密集型或(/和)計(jì)算密集型的。在共享訓(xùn)練中,不同進(jìn)程可能會相互爭奪計(jì)算和I/O資源。這種資源競爭可能導(dǎo)致整體性能下降。所以第四個(gè)研究問題如下。

        問題4共享訓(xùn)練時(shí)是否存在系統(tǒng)資源競爭的情況?如果是,是否是導(dǎo)致每個(gè)訓(xùn)練進(jìn)程性能下降的因素?

        2 研究方法

        2.1 共享訓(xùn)練的性能分析

        首先測試共享訓(xùn)練時(shí)的進(jìn)程性能表現(xiàn)。由于在模型的訓(xùn)練過程中每次迭代的時(shí)間是相對穩(wěn)定的,可以使用每次迭代的時(shí)間來近似表示模型的總訓(xùn)練時(shí)間。首先獨(dú)立訓(xùn)練每個(gè)模型并記錄它們的訓(xùn)練時(shí)間,再將這些深度學(xué)習(xí)模型兩兩組合進(jìn)行共享訓(xùn)練,以獲得各模型組合的整體訓(xùn)練性能表現(xiàn)。定義性能退化系數(shù)的概念如下。

        性能退化系數(shù)rAB可以表明模型A和B在共享訓(xùn)練中,模型A的性能退化情況,系數(shù)越大性能退化越嚴(yán)重。如果兩個(gè)模型的共享訓(xùn)練比分別獨(dú)立訓(xùn)練更快,那么共享訓(xùn)練是有益的。共享訓(xùn)練下總訓(xùn)練時(shí)間更短的條件的推導(dǎo)過程如下。

        首先,假設(shè)模型A和B獨(dú)占GPU時(shí)的訓(xùn)練時(shí)間分別為tA和tB,共享訓(xùn)練時(shí)的性能退化系數(shù)分別為rAB和rBA。則模型A和B共享訓(xùn)練時(shí)的總訓(xùn)練時(shí)間t可以表示為:

        如果有t

        綜上所述,對于模型A和B,如果我們得到rAB和rBA,可以知道:1) 模型A和B的共享訓(xùn)練相對于每個(gè)模型獨(dú)立訓(xùn)練的性能差別;2) 模型A和B在共享訓(xùn)練和分別獨(dú)立訓(xùn)練兩種情況下,哪種的總訓(xùn)練時(shí)間更短。

        2.2 深度學(xué)習(xí)模型屬性對共享訓(xùn)練性能的影響

        進(jìn)一步研究共享訓(xùn)練時(shí)進(jìn)程性能下降的原因。通常,GPU計(jì)算和I/O操作的工作負(fù)載是影響深度學(xué)習(xí)模型訓(xùn)練性能的兩個(gè)主要因素。與GPU計(jì)算相關(guān)的屬性包括進(jìn)程內(nèi)的計(jì)算操作執(zhí)行率等。與I/O相關(guān)的屬性包括進(jìn)程所需的內(nèi)存大小、總體數(shù)據(jù)讀取請求速率和總體數(shù)據(jù)寫入請求速率等。以上這些屬性描述了深度學(xué)習(xí)模型訓(xùn)練進(jìn)程的總體執(zhí)行特性。我們檢驗(yàn)了不同深度學(xué)習(xí)模型的屬性是否存在顯著差異。進(jìn)而比較了在共享訓(xùn)練的過程中,GPU核心利用率和I/O吞吐量與獨(dú)立訓(xùn)練相比有什么區(qū)別,目標(biāo)是探究共享訓(xùn)練中是否存在系統(tǒng)資源競爭以及對進(jìn)程性能的影響。為了驗(yàn)證假設(shè)結(jié)果的相關(guān)性,進(jìn)行KS檢驗(yàn)和卡方檢驗(yàn)來進(jìn)一步保證結(jié)果的有效性。

        2.3 其他GPU設(shè)備上的結(jié)果

        以上的研究旨在展示深度學(xué)習(xí)模型在共享訓(xùn)練過程中的表現(xiàn)以及造成這種現(xiàn)象的潛在原因。為了證明以上實(shí)驗(yàn)結(jié)果的普遍性,我們在不同的GPU設(shè)備上重復(fù)了相同的實(shí)驗(yàn),并對實(shí)驗(yàn)結(jié)果進(jìn)行了比較。

        3 研究結(jié)果

        3.1 實(shí)驗(yàn)設(shè)置說明

        我們重點(diǎn)關(guān)注三類有代表性的深度學(xué)習(xí)模型,分別是全連接神經(jīng)網(wǎng)絡(luò)[7](FCNs)、卷積神經(jīng)網(wǎng)絡(luò)[8](CNNs)和遞歸神經(jīng)網(wǎng)絡(luò)[9](RNNs)。這些模型的建模能力是互補(bǔ)的[10],并在眾多領(lǐng)域得到了廣泛應(yīng)用。由于深層FCNs的應(yīng)用受到限制,使用5層全連接網(wǎng)絡(luò)作為FCNs的代表[10]。為了研究不同結(jié)構(gòu)的CNN,我們實(shí)現(xiàn)并測試了兩個(gè)具有代表性的CNN模型,即VGG-19[11]和ResNet-50[2]。LSTM[1]用于建模序列結(jié)構(gòu),我們將其作為RNNs的代表。實(shí)驗(yàn)中涉及到的模型配置和相應(yīng)的數(shù)據(jù)集的細(xì)節(jié)如表1所示。

        表1 實(shí)驗(yàn)?zāi)P秃蛿?shù)據(jù)集的相關(guān)細(xì)節(jié)

        實(shí)驗(yàn)中涉及的所有深度學(xué)習(xí)模型全部利用TensorFlow 1.13實(shí)現(xiàn),Python版本號為3.6,實(shí)驗(yàn)GPU為NVIDIA GTX 1080Ti,測試服務(wù)器系統(tǒng)為Ubuntu 16.04,配置了CUDA Toolkit 9.0和cuDNN 7.0。

        3.2 GPU內(nèi)存大小對訓(xùn)練性能的影響

        為了回答問題1,首先通過配置GPU內(nèi)存系數(shù),來調(diào)整訓(xùn)練深度學(xué)習(xí)模型的應(yīng)用程序可用的GPU內(nèi)存大小,接著以獨(dú)占GPU的模式訓(xùn)練四個(gè)目標(biāo)深度學(xué)習(xí)模型。對每個(gè)模型進(jìn)行1 000次迭代的訓(xùn)練,并記錄訓(xùn)練進(jìn)程執(zhí)行的總時(shí)間作為訓(xùn)練性能表現(xiàn)的指標(biāo)。為了保證統(tǒng)計(jì)學(xué)上的意義,對每種配置分別進(jìn)行3次訓(xùn)練,計(jì)算時(shí)間的平均值作為結(jié)果。該實(shí)驗(yàn)結(jié)果如表2所示。表2中的小數(shù)表示在該GPU內(nèi)存系數(shù)配置下與使用全部內(nèi)存(系數(shù)為1.0)的訓(xùn)練時(shí)間的比值。

        表2 不同GPU內(nèi)存大小下的性能變化情況

        從結(jié)果可以發(fā)現(xiàn),當(dāng)分配的GPU內(nèi)存足夠使訓(xùn)練進(jìn)程正常運(yùn)行后,訓(xùn)練進(jìn)程的運(yùn)行時(shí)間變化與GPU內(nèi)存系數(shù)增加沒有顯著關(guān)系。

        結(jié)論1當(dāng)深度學(xué)習(xí)模型獨(dú)占GPU訓(xùn)練時(shí),如果分配的GPU內(nèi)存大小已經(jīng)足夠訓(xùn)練進(jìn)程正常運(yùn)行,那么額外分配的GPU內(nèi)存對訓(xùn)練時(shí)間沒有顯著影響。

        3.3 共享訓(xùn)練對整體性能的影響

        將之前實(shí)驗(yàn)的四種模型進(jìn)行兩兩組合,對這些組合進(jìn)行共享訓(xùn)練,分別記錄總訓(xùn)練時(shí)間。為了模擬實(shí)際應(yīng)用中的情況,首先在系統(tǒng)后臺運(yùn)行訓(xùn)練模型A的進(jìn)程,然后啟動訓(xùn)練模型B的進(jìn)程,來研究共享訓(xùn)練模式對模型A的訓(xùn)練進(jìn)程的性能影響。給每個(gè)進(jìn)程分配所需的最少GPU內(nèi)存,在共享訓(xùn)練的模式下進(jìn)行1 000次迭代,并將得到的執(zhí)行時(shí)間與相同配置在獨(dú)占GPU模式下訓(xùn)練的進(jìn)程執(zhí)行時(shí)間相除,得到比值作為性能退化系數(shù)記錄下來。結(jié)果如表3所示。

        表3 不同模型組合的共享訓(xùn)練性能退化比率

        可以看出,在共享訓(xùn)練時(shí)每個(gè)模型相比于獨(dú)立訓(xùn)練都會出現(xiàn)不同程度的性能退化。不同的模型組合的性能變化差別非常顯著。同時(shí)根據(jù)之前的討論,當(dāng)rAB×rBA

        結(jié)論2共享訓(xùn)練會使單個(gè)模型的訓(xùn)練進(jìn)程運(yùn)行時(shí)間延長。模型組合類型與訓(xùn)練運(yùn)行時(shí)間變化情況存在聯(lián)系,且一些模型組合的共享訓(xùn)練效率比分別獨(dú)立訓(xùn)練更高。

        3.4 模型底層運(yùn)算屬性的情況

        為了研究模型屬性與共享訓(xùn)練的關(guān)系,需要分析不同的深度學(xué)習(xí)模型的底層運(yùn)算屬性是否存在區(qū)別。我們利用TensorFlow框架內(nèi)建的分析功能,收集訓(xùn)練進(jìn)程運(yùn)行時(shí)所有涉及到的運(yùn)算符種類和其執(zhí)行時(shí)間百分比形成一個(gè)運(yùn)行時(shí)運(yùn)算符集合。

        圖1以FCN模型為例,展示了運(yùn)行時(shí)運(yùn)算符集合的分布情況。該模型的運(yùn)行時(shí)運(yùn)算符集合內(nèi)包含Mul運(yùn)算符,并且其數(shù)值標(biāo)記為38%。即表示在該模型中Mul運(yùn)算符消耗38%的訓(xùn)練時(shí)間。

        圖1 FCN模型的運(yùn)算符運(yùn)行時(shí)間百分比

        在收集到所有模型的運(yùn)算符集合分布情況后,計(jì)算它們的標(biāo)準(zhǔn)化Jaccard相似度。度量結(jié)果見表4??梢钥闯觯煌疃葘W(xué)習(xí)模型的訓(xùn)練進(jìn)程執(zhí)行的底層操作差距確實(shí)非常顯著。

        表4 不同模型運(yùn)算符集合間的Jaccard相似度

        結(jié)論3不同深度學(xué)習(xí)模型的底層運(yùn)算屬性存在顯著差異。

        3.5 I/O操作和GPU計(jì)算特性與共享訓(xùn)練性能的關(guān)系

        在明確了不同模型的運(yùn)算屬性存在差異后,我們進(jìn)一步研究了不同情況下訓(xùn)練時(shí)模型各運(yùn)算符的CPU和GPU執(zhí)行時(shí)間。表5展示了FCN模型的相關(guān)結(jié)果??梢钥闯觯蚕碛?xùn)練與獨(dú)占訓(xùn)練比較,模型各運(yùn)算符GPU執(zhí)行時(shí)間的分布情況幾乎相同,而CPU執(zhí)行時(shí)間分布情況表現(xiàn)出顯著差異。

        表5 不同F(xiàn)CN模型組合共享訓(xùn)練與獨(dú)占訓(xùn)練的總計(jì)、CPU和GPU執(zhí)行時(shí)間的Jaccard相似性

        以上的實(shí)驗(yàn)結(jié)果,尤其是共享訓(xùn)練與獨(dú)占訓(xùn)練差異很大的CPU執(zhí)行時(shí)間,表明應(yīng)該深入研究深度學(xué)習(xí)模型訓(xùn)練時(shí)的I/O操作和GPU運(yùn)算操作情況。我們利用NVIDIA的nvprof工具記錄訓(xùn)練進(jìn)程的兩個(gè)度量指標(biāo),進(jìn)程的資源加載和存儲事務(wù)共計(jì)為I/O事務(wù),展示了系統(tǒng)I/O請求情況;GPU指令數(shù)表明GPU設(shè)備上的計(jì)算請求情況。結(jié)果如圖2所示。

        圖2 模型每秒的操作情況(對數(shù)刻度)

        可以看出,每個(gè)模型的操作量與表1中的模型參數(shù)規(guī)模呈正相關(guān)。同時(shí)聯(lián)系表3中的數(shù)據(jù),訓(xùn)練進(jìn)程的操作量越大,使得共享訓(xùn)練中其他模型性能退化得越多。所以可以得到如下結(jié)論。

        結(jié)論4如果參與共享訓(xùn)練的深度學(xué)習(xí)模型的參數(shù)規(guī)模有顯著差異,則較小模型的共享訓(xùn)練性能退化比較大的更加嚴(yán)重。

        最后,將探究共享訓(xùn)練過程中是否存在資源競爭情況及其影響,在該實(shí)驗(yàn)中關(guān)注GPU計(jì)算和I/O操作的指標(biāo)。我們將一種模型獨(dú)占訓(xùn)練和將該模型與其他模型組合共享訓(xùn)練,收集GPU實(shí)際占用率作為訓(xùn)練進(jìn)程的GPU計(jì)算情況指標(biāo);收集系統(tǒng)內(nèi)存到GPU內(nèi)存的拷貝吞吐量作為訓(xùn)練進(jìn)程的I/O操作特性。應(yīng)用KS檢驗(yàn)和卡方假設(shè)檢驗(yàn),驗(yàn)證獨(dú)占訓(xùn)練和共享訓(xùn)練下的兩種指標(biāo)是否屬于同一分布。

        圖3和圖4展示了獨(dú)占GPU訓(xùn)練與共享訓(xùn)練下的拷貝吞吐量直方圖。假設(shè)檢驗(yàn)得到的p值接近于0,這說明吞吐量分布有顯著區(qū)別,表明共享訓(xùn)練會影響系統(tǒng)I/O操作。人工比較了不同模式下的吞吐量,發(fā)現(xiàn)共享訓(xùn)練時(shí)的吞吐量出現(xiàn)了顯著下降。

        圖3 FCN模型獨(dú)占訓(xùn)練時(shí)的系統(tǒng)內(nèi)存吞吐率

        圖4 FCN與FCN模型共享訓(xùn)練時(shí)的系統(tǒng)內(nèi)存吞吐率

        圖5和圖6展示了獨(dú)占GPU訓(xùn)練與共享訓(xùn)練下的GPU占用率直方圖。假設(shè)檢驗(yàn)的結(jié)果表明它們屬于同一分布。人工比較了不同模式下的GPU實(shí)際占用率,發(fā)現(xiàn)它們幾乎相同。這說明在共享訓(xùn)練過程中,每個(gè)模型的GPU計(jì)算過程沒有受到其他模型的顯著影響。

        圖5 FCN模型獨(dú)占訓(xùn)練時(shí)的GPU實(shí)際占用率

        圖6 FCN與FCN模型共享訓(xùn)練時(shí)的GPU實(shí)際占用率

        我們聯(lián)系GPU的執(zhí)行運(yùn)算的機(jī)制分析。由于GPU設(shè)備上的不同宿主進(jìn)程會創(chuàng)建獨(dú)立的進(jìn)程上下文,且不同上下文中的操作在執(zhí)行時(shí)都會被底層驅(qū)動程序序列化而順序執(zhí)行,導(dǎo)致無論模型是獨(dú)占GPU訓(xùn)練還是共享訓(xùn)練,都會得到幾乎相同的實(shí)際占有率。即使調(diào)度兩個(gè)訓(xùn)練進(jìn)程共享訓(xùn)練,GPU在某一時(shí)刻也只能進(jìn)行一個(gè)模型的底層運(yùn)算。這使得共享訓(xùn)練時(shí)不同的訓(xùn)練進(jìn)程輪流占用GPU,導(dǎo)致額外的系統(tǒng)I/O開銷,進(jìn)而使得進(jìn)程不能很好地利用內(nèi)存的空間局部性。

        結(jié)論5共享訓(xùn)練時(shí)存在I/O操作競爭的情況,并導(dǎo)致了訓(xùn)練進(jìn)程性能下降。

        3.6 其他GPU設(shè)備上共享訓(xùn)練的性能表現(xiàn)

        為了驗(yàn)證以上實(shí)驗(yàn)中的共享訓(xùn)練性能變化情況是否具有普遍性,在性能較弱的GPU設(shè)備GTX 1080上重復(fù)了所有前面的實(shí)驗(yàn)。我們得到的絕大多數(shù)結(jié)果與之前在GTX 1080Ti上的結(jié)果相似。為了避免冗余,表6展示了最主要的共享訓(xùn)練性能退化系數(shù)情況??梢钥吹?,GTX 1080上的共享訓(xùn)練性能變化情況與GTX 1080Ti幾乎相同。

        表6 GTX 1080上模型組合的共享訓(xùn)練性能退化比率

        結(jié)論6共享訓(xùn)練時(shí)的性能變化是普遍存在的,且在相同架構(gòu)的GPU中性能下降的趨勢是相似的。

        4 實(shí)踐建議

        根據(jù)以上實(shí)驗(yàn)結(jié)論,我們提出了優(yōu)化GPU云平臺進(jìn)程調(diào)度的若干參考原則。

        在分配GPU資源時(shí),開發(fā)者一般需要考慮GPU內(nèi)存的分配。根據(jù)結(jié)論1,可以知道當(dāng)分配給訓(xùn)練進(jìn)程的GPU內(nèi)存足以完成訓(xùn)練任務(wù)時(shí),繼續(xù)分配額外的GPU內(nèi)存對訓(xùn)練效率幾乎沒有影響,這將會產(chǎn)生資源的浪費(fèi)。由此可以得到:

        原則1GPU資源調(diào)度程序只需確保每個(gè)深度學(xué)習(xí)模型訓(xùn)練進(jìn)程已經(jīng)被分配正常運(yùn)行所需的最小GPU內(nèi)存。

        當(dāng)一個(gè)深度學(xué)習(xí)模型訓(xùn)練進(jìn)程所需的資源已經(jīng)滿足時(shí),就可以將剩余的GPU內(nèi)存分配給其他進(jìn)程。結(jié)論2表明,是否應(yīng)該同時(shí)執(zhí)行兩個(gè)或多個(gè)模型訓(xùn)練進(jìn)程,取決于具體情況??偨Y(jié)如下:

        原則2當(dāng)模型組合滿足rAB×rBA

        結(jié)論4顯示在共享訓(xùn)練時(shí),較小模型的訓(xùn)練進(jìn)程性能更容易受到影響。根據(jù)結(jié)論5,I/O競爭使得每個(gè)訓(xùn)練進(jìn)程的性能都會不同程度的下降。而結(jié)論3表明不同模型的運(yùn)算屬性差異明顯,這將增加系統(tǒng)的I/O操作量,使得I/O競爭更加嚴(yán)重。為了盡量避免這種影響,可以得到:

        原則3雖然某些情況下共享訓(xùn)練可以提高整體訓(xùn)練效率,但其中某些模型的訓(xùn)練進(jìn)程效率可能會嚴(yán)重退化。在實(shí)踐中為了保證每個(gè)用戶的使用體驗(yàn),應(yīng)該盡量讓參數(shù)規(guī)模和運(yùn)算屬性相近的模型共享訓(xùn)練。

        根據(jù)結(jié)論6,我們所提出的以上參考原則適用于所有利用CUDA Toolkit執(zhí)行通用計(jì)算任務(wù)的NVIDIA GPU。

        5 相關(guān)工作

        5.1 GPU云平臺資源調(diào)度優(yōu)化

        為了滿足現(xiàn)代云計(jì)算系統(tǒng)中對通用計(jì)算,尤其是深度學(xué)習(xí)相關(guān)的應(yīng)用程序的高性能需求,開發(fā)者引入了GPU虛擬化技術(shù)[12-13]。Giunta等[14]實(shí)現(xiàn)了提高云平臺GPU虛擬化性能的gVirtuS組件。Shi等[15]提供vCUDA以重定向虛擬機(jī)中的CUDA API從而啟用GPU加速。還有一系列的研究集中在GPU云平臺的資源管理上[16-17]。Phull等[18]提出了一個(gè)驅(qū)動的管理框架,以提高GPU集群的資源利用率。Qi等[19]提出了VGRIS框架,用來虛擬化和高效調(diào)度云游戲中的GPU資源。Li等[20]分析和評估GPU云計(jì)算中多媒體處理服務(wù)的定價(jià)策略。

        5.2 深度學(xué)習(xí)模型訓(xùn)練效率優(yōu)化

        深度學(xué)習(xí)模型的精度在不斷提升的同時(shí),模型的結(jié)構(gòu)和參數(shù)規(guī)模也變得越來越大,這使得訓(xùn)練和部署變得困難。因此,一些工作的重點(diǎn)是在保持深度學(xué)習(xí)模型精度的同時(shí)減小模型的規(guī)模,使模型更適合在云平臺上訓(xùn)練和部署[21]。Iandola等[22]提出了一個(gè)與AlexNet精度相同的較小的圖像分類模型。Luo等[23]通過從神經(jīng)元中提取信息來壓縮人臉識別模型。一部分開發(fā)者利用分布式訓(xùn)練的方法提升效率。Storm[24]通過擴(kuò)展分布式隨機(jī)梯度下降來加速訓(xùn)練神經(jīng)網(wǎng)絡(luò)。Chen等[25]利用數(shù)據(jù)并行性,通過增量訓(xùn)練加速深度學(xué)習(xí)機(jī)的訓(xùn)練。Iandola等[26]設(shè)計(jì)了FireCaffe,它專注于跨集群擴(kuò)展深度學(xué)習(xí)模型訓(xùn)練,并減少集群間的通信開銷。

        6 結(jié) 語

        本文對深度學(xué)習(xí)模型在GPU設(shè)備上的共享訓(xùn)練性能進(jìn)行了研究。我們重點(diǎn)關(guān)注在共享GPU設(shè)備資源的情況下,深度學(xué)習(xí)訓(xùn)練進(jìn)程的性能表現(xiàn)將如何變化以及產(chǎn)生這種變化的原因。通過實(shí)驗(yàn)研究,我們發(fā)現(xiàn)在共享訓(xùn)練的情況下,每個(gè)深度學(xué)習(xí)模型的訓(xùn)練進(jìn)程的執(zhí)行時(shí)間都會延長,部分模型組合的總訓(xùn)練時(shí)間會縮短。造成訓(xùn)練進(jìn)程性能退化的主要原因是額外的系統(tǒng)I/O操作使得進(jìn)程的等待時(shí)間變得更長。這也導(dǎo)致規(guī)模相差懸殊的模型共享訓(xùn)練時(shí),小模型的訓(xùn)練進(jìn)程性能退化的情況更加嚴(yán)重。最后我們證明了以上實(shí)驗(yàn)結(jié)論具有普遍性,所總結(jié)的原則有助于提高GPU云平臺上的資源利用率。

        猜你喜歡
        運(yùn)算符進(jìn)程內(nèi)存
        老祖?zhèn)魇诨具\(yùn)算符
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        “春夏秋冬”的內(nèi)存
        C++運(yùn)算符重載剖析
        社會進(jìn)程中的新聞學(xué)探尋
        基于內(nèi)存的地理信息訪問技術(shù)
        我國高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        表達(dá)式求值及符號推導(dǎo)
        C++中運(yùn)算符的重載應(yīng)用
        www国产精品内射熟女| 亚洲sm另类一区二区三区| 国产人妖乱国产精品人妖| 免费人成视频xvideos入口| 欧美理论在线| 亚洲av天堂久久精品| 一本色道久久88—综合亚洲精品 | 天堂а√在线最新版中文| 中国免费av网| 亚洲自拍偷拍一区二区三区| 中文字幕中文有码在线| 亚洲午夜精品久久久久久人妖| 丰满人妻被黑人猛烈进入| 久久综合网天天 | 午夜av福利亚洲写真集| 男女av一区二区三区| 久久综合狠狠综合久久| 久热香蕉精品视频在线播放| 日韩va高清免费视频| 欧美老熟妇乱子| 欧美性性性性性色大片免费的| 国内精品久久久久久久久蜜桃| 侵犯了美丽丰满人妻中文字幕| 欧美三级不卡在线观看| 亚洲av色福利天堂| 国产三级精品三级在线观看粤语| 国产一区二区三区不卡在线观看| 黄网站欧美内射| 女女同性黄网在线观看| 久久久噜噜噜久久熟女| 国产尤物精品视频| yeyecao亚洲性夜夜综合久久| 日本黄色一区二区三区视频| 亚洲av日韩av卡二| 丰满熟女人妻中文字幕免费| 国产丝袜免费精品一区二区 | 久久天天躁夜夜躁狠狠85麻豆 | 中文乱码人妻系列一区二区| 日韩熟女一区二区三区| 精品人妻码一区二区三区剧情| 伊人久久五月丁香综合中文亚洲|