本篇文章為大家展示了基于云CPU和云GPU的TensorFlow是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)主營武寧網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶APP開發(fā)公司,武寧h5小程序制作搭建,武寧網(wǎng)站營銷推廣歡迎武寧等地區(qū)企業(yè)咨詢我一直在Keras和TensorFlow上進行一些個人的深度學習項目,但是使用和等云服務進行深度學習的訓練并不是免費的,作為個人項目的研究,我會額外關注開支,降低成本。因為CPU實例比GPU實例更加便宜,而且經(jīng)過實際操作,我發(fā)現(xiàn)在這兩者中,我的訓練模型姿勢慢了一點。因為我深入研究了這兩種類型實例的定價機制,來以了解CPU是否更適合我的需求。
Google Compute Engine上的起價為0.745美元/小時。幾個月前,Google 在現(xiàn)代英特爾 CPU架構上 CPU實例多達64個vCPU 。更重要的是,它們也可以用在可,這些在GCE上可存在24小時,可以在任何時候終止,但是花費大約是標準實例價格的20%。具有64個vCPU和57.6GB RAM的可搶占n1-highcpu-64實例以及使用Skylake CPU的額外費用為0.509美元/小時,約為GPU實例成本的2/3。
如果64個vCPU的模型訓練速度與GPU相當(甚至稍微慢一點),那么使用CPU會更具成本效益。這是假設深度學習軟件和GCE平臺硬件以100%的效率運行,如果不是100%,那么通過縮減vCPU的數(shù)量和成本可能會更加經(jīng)濟實惠。
由于GPU是針對深度學習硬件的刀片解決方案,所以沒有深度學習庫的基準。得益于Google economies of scale,可搶占實例的存在使得成本出現(xiàn)了巨大的差異,所以相比于使用GPU,使用CPU來進行深度學習模型訓練更具經(jīng)濟效益。
建立
我已經(jīng)有了真實世界的深度學習用例、Docker容器環(huán)境的基準測試腳本,以及來自TensorFlow與CNTK文章的結果日志。通過設置CLI參數(shù),可以對CPU和GPU實例做一些小的調(diào)整。我還重新構建了Docker容器以支持最新版本的TensorFlow(1.2.1),并創(chuàng)建了一個CPU版本的容器,該容器安裝了CPU-appropriate TensorFlow庫。
有一個明顯的CPU特定的TensorFlow行為,如果從pip(如和教程推薦的)開始安裝并開始在TensorFlow中訓練模型,則會在控制臺中看到以下警告:
為了解決這些警告,并從 / / 優(yōu)化中受益,我們,并創(chuàng)建了來完成這個任務。在新容器中訓練模型時,警告不再顯示,而且提高了速度,減少了訓練時間。
因此,我們可以使用Google Compute Engine測試三個主要案例:
Tesla K80 GPU實例。
64個Skylake vCPU實例,其中TensorFlow是通過pip安裝的(以及8/16/32 vCPU的測試)。
64 Skylake vCPU實例,TensorFlow使用CPU指令來編譯,(+ 8/16/32 vCPU)
結果
針對每種模型架構和軟/硬件配置,我計算了相對于GPU實例訓練的總訓練時間,以運行提供的測試腳本的模型訓練。在所有情況下,GPU 應該是最快的訓練配置,并且具有更多處理器的系統(tǒng)應該比具有更少處理器的系統(tǒng)訓練更快。
讓我們開始手寫加上常見的多層感知器(MLP)架構,以及密集的全連接層。訓練時間越短越好。水平虛線下的所有配置都比GPU好; 虛線以上的所有配置都比GPU差。
在這里,GPU是所有平臺配置中最快的,但這其中還有一些很有趣的現(xiàn)象,例如32 vCPUs 和 64 vCPUs之間的性能相似,在編譯TensorFlow庫時,比8vCPUs和16 vCPUs的訓練速度顯著提升。也許在vCPUs之間有過多的協(xié)商信息,從而消除了更多vCPUs的性能優(yōu)勢,也許這些開銷與編譯TensorFlow的CPU指令不同。最后,它是一個黑盒,這就是為什么我喜歡黑盒基準測試所有硬件配置而不是理論制作。
由于不同vCPU計數(shù)的訓練速度之間的差異是最小的,因此通過縮小vCPU確實具有優(yōu)勢。對于每種模型架構和配置,我計算相對于GPU實例訓練成本的規(guī)范化訓練成本。因為GCE實例成本是按比例分配的(與Amazon EC2不同),所以我們可以簡單地通過將實驗運行的總秒數(shù)乘以實例的成本(每秒)來計算實驗成本。理想情況下,我們想要最小化成本。
越低越好,較低的CPU數(shù)量對于這個問題來說更具成本效益。
現(xiàn)在,讓我們看一下卷積神經(jīng)網(wǎng)絡(CNN)數(shù)字分類方法相同的數(shù)據(jù)集:
GPU比CNN上任何CPU的速度都要快兩倍,但成本結構卻相同,除了64 vCPU 的成本比GPU更低。32 vCPU的訓練速度要比64vCP快。
讓我們深入了解CNNs,看看cifar - 10圖像分類數(shù)據(jù)集,以及利用deep covnet + a multilayer perceptron和理想圖像分類的模型(類似于vgg16架構)。
與簡單的CNN案例中的類似行為相比,在這個實例中,所有的cpu在編譯后的TensorFlow庫中執(zhí)行得更好。
在IMDb reviews dataset上使用的fasttext算法可以判斷一個評論是積極的還是消極的,與其他方法相比,它的分類速度非常快。
在這種情況下,GPU比CPU要快得多。降低CPU數(shù)量的好處并不那么明顯。盡管作為一個備用方案,正式的fasttext實現(xiàn)是為大量CPU設計的,并且可以更好地處理并行化。
Bidirectional long-short-term memory(LSTM)架構非常適合處理像IMDb評論這樣的文本數(shù)據(jù),但是在我之前的基準測試文章之后,注意到TensorFlow在GPU上使用了LSTM的低效實現(xiàn),所以差異會更加顯著。
等等,什么?雙向LSTMs的GPU訓練是CPU配置的兩倍。 (公平地說,基準使用Keras LSTM default of implementation=0,CPU表現(xiàn)更好更好,而LSTM default of implementation=2,GPU表現(xiàn)更好,但是雙方之間的差距不會很大。)
最后,Nietzsche著作的LSTM文本生成遵循與其他體系結構相似的模式,但是沒有對GPU的巨大沖擊。
結論
事實證明,64vcpu在深度學習的應用中并不具備經(jīng)濟效益,當前的軟硬件架構并不能充分利用它們,所以使得64 vCPU總是和32vCPU性能相似,甚至還會更糟。在訓練速度和成本方面,使用16vCPUs + compiled TensorFlow的訓練模型似乎表現(xiàn)更好。編譯后的TensorFlow庫有30% - 40%的速度提升是一個意外的驚喜。我很驚訝谷歌竟然沒有提供一個預編譯版本的TensorFlow。
這里所顯示的成本優(yōu)勢,僅在可搶占的情況下是不可能的。谷歌計算引擎的普通高CPU實例的成本大約為5x,因此完全消除了成本效益。
使用云CPU訓練方法的一個主要隱含假設是,你不需要ASAP的訓練模式。在專業(yè)的用例中,可能太浪費時間了,但是在個人用例中,一個人可能一晚上就離開模型訓練,這是一個極具成本效益的好選擇。
上述內(nèi)容就是基于云CPU和云GPU的TensorFlow是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道。
本文題目:基于云CPU和云GPU的TensorFlow是怎樣的-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article20/hodco.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、響應式網(wǎng)站、營銷型網(wǎng)站建設、手機網(wǎng)站建設、網(wǎng)頁設計公司、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容