齊萬華 胡向陽
【摘 要】隨著數(shù)據(jù)化社會的到來,深度學習模型被廣泛地研究,并涌現(xiàn)了一批有影響力的模型。由于超參和神經(jīng)元的數(shù)目是百萬級別,所以這些模型的復雜度很高。另外,當訓練數(shù)據(jù)集增大時,模型需要消耗更多的計算資源。GPGPU具有強大的并行計算能力,大大減少深度學習模型的訓練時間。但GPU通用計算的性能提升與模型有關(guān),這方面鮮有人研究。本文側(cè)重于GPGPU下深度學習模型的性能分析。
【關(guān)鍵詞】GPU;GPGPU;深度學習;性能
中圖分類號: TP391 文獻標識碼: A 文章編號: 2095-2457(2018)32-0218-002
DOI:10.19694/j.cnki.issn2095-2457.2018.32.101
【Abstract】With the advent of the data society,deep learning models have been extensively studied and a number of influential models have emerged.The complexity of these models is high,as the number of super-parameters and neurons is in the millions.In addition,as the training data set increases,the model consumes more computing resources.GPGPU has powerful parallel computing capability,which can greatly reduce the training time of deep learning models.But the performance improvement from GPGPU is related to the model.There is little research in this problem.This paper focuses on the performance analysis of deep learning models based on GPGPU.
【Key words】GPU;GPGPU;Deep learning;Efficiency
0 前言
盡管神經(jīng)網(wǎng)絡(luò)和深度學習在上世紀早已被提出,但它們一直作為機器學習的普通分支默默存在。直到最近,由于數(shù)據(jù)量的增加,計算能力的增強(如CPU、GPU以及基于CPU或GPU的集群系統(tǒng))和先進深度學習技術(shù)的推動(如Embedding 和注意力策略等[1,2]),基于神經(jīng)網(wǎng)絡(luò)和深度學習的工作才開始表現(xiàn)優(yōu)異,并得到學術(shù)界和工業(yè)界的廣泛關(guān)注。如2012年CNN在ImageNet取得驚人成績(接近10%的提升);Google公司的AlphaGO戰(zhàn)勝了李世石和柯潔。由于神經(jīng)網(wǎng)絡(luò)超參和神經(jīng)元的數(shù)目是百萬級別,所以模型復雜度很高。另外,當訓練數(shù)據(jù)集增大時,模型需要消耗更多的計算資源。GPU通用計算(GPGPU)具有強大的并行計算能力,大大減少深度學習模型的訓練時間。但GPU通用計算的性能提升與模型有關(guān),這方面鮮有人研究。鑒于此,本文研究分析在GPU通用計算下不同深度模型的性能特點。
1 GPU通用計算
GPU通用計算(General-Purpose computing on Graphics Processing Units,GPGPU)是一種新型的計算架構(gòu)。與CPU不同,GPU的設(shè)計初衷是為了加速圖形處理,因此它的核心數(shù)是成千上萬,且具有強大的并行計算能力。目前,GPU通用計算已經(jīng)進入高性能計算的主流行業(yè)[2],廣泛地用于圖形圖像處理和自然語言處理等領(lǐng)域,并取得了明顯的效果提升。
最初的GPU不具備可編程性。針對這一不足,一些高級編程平臺(如CUDA和OpenCL)被提出。CUDA是Nvidia公司提出的一個基于GPU的異構(gòu)編程平臺。它支持OpenACC和OpenCL編程框架,并提供了豐富的函數(shù)庫,如用于加速人工神經(jīng)網(wǎng)絡(luò)的 cuDNN[2]。
2 深度學習模型
自2006年杰弗里·辛頓等人在科學雜志上發(fā)表論文《一種深度置信網(wǎng)絡(luò)的快速學習算法》后,深度學習模型被廣泛地關(guān)注并研究。卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是其中的兩類代表模型。
2.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)主要用于圖像處理。它由一個輸入層,一個輸出層和多個隱藏層。每個隱藏層包括池化層,卷積層,全連接層和歸一化層。CNN的思想是卷積層。卷積層用來進行特征抽取。它先構(gòu)建一個N*N的矩陣作為過濾器,然后對每個圖片進行卷積操作。由于圖像經(jīng)過卷積操作后,圖像就縮小了,而且圖像邊緣的大部分信息都丟失了,池化層就是針對兩個問題提出的。池化層的思想是在圖像邊緣填充像素。本文的CNN包含兩個卷積層,每個卷積層采用1個2X2的卷積過濾器。
2.2 循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是針對序列數(shù)據(jù)設(shè)計的,在語音識別、自然語言處理領(lǐng)域引起了深刻地變革。它包括一個輸入層,一個輸出層,和多個隱層。與CNN有兩個不同點:(1)RNN的輸入是有時序關(guān)系的。(2)網(wǎng)絡(luò)結(jié)構(gòu)不同,其中第隱層的輸入包括第隱層的中間結(jié)果。由于基本的RNN在深層的連接存在時會出現(xiàn)梯度消失的問題,長短期記憶網(wǎng)絡(luò)(LSTM),循環(huán)門單元(GRU)等RNN的變體被提出,用來改善梯度消失的問題。其中,LSTM在隱藏層計算時,用加法代替了乘法,從而避免了梯度消失問題。本文的RNN模型是LSTM。
3 實驗分析
本節(jié)首先介紹了實驗環(huán)境和數(shù)據(jù)集,然后分析了不同模型在GPU和CPU計算條件下性能的特點,以及不同數(shù)據(jù)量對GPU并行計算的影響。
CPU環(huán)境:英特爾Core i7-8086K 4.00GHz處理器,16GB內(nèi)存。
GPU環(huán)境:NVIDIA GeForce GTX 1080,16GB顯存, CUDA是CUDA9.0,人工神經(jīng)網(wǎng)絡(luò)的函數(shù)庫是cuDNN7。
數(shù)據(jù)集:CNN模型使用了MNIST數(shù)據(jù)集。MNIST由書寫數(shù)字的圖片和相應(yīng)的標簽組成。圖片標簽包括10類,即0到9。RNN模型是使用LSTM實現(xiàn)Char RNN功能。Char RNN[3]用來生成文章、詩歌甚至代碼。它的輸入是長度為N的序列,輸出是與輸入長度相等的序列。編程語言是Python 3。
3.1 不同模型的性能分析
本節(jié)在1000、2000、3000迭代次數(shù)下,分析CPU與GPU并行計算的性能和兩個深度學習模型(CNN和RNN)的性能特點,如圖1所示。從圖中可以看出,(1)無論是CNN還是RNN,GPU的運行速度都要大大高于CPU的運算性能。這說明:GPU有更強的并行計算能力。如當?shù)螖?shù)為1000時,使用GPU運行CNN所消耗的時間僅為5.36秒,而使用CPU所消耗的時間是76.15秒。對于大規(guī)模的并行計算,采用GPU運算,比CPU要省時很多。(2)在相同實驗環(huán)境下,CNN的運算效率要高于RNN。因為CNN模型在迭代次數(shù)為1000,2000,3000情況下,CPU與GPU運行時間的比值依次為14.20、17.76和18.07,而RNN模型,在相同條件下,比值僅為5.88、5.81和5.89。這是由于在RNN模型的計算過程中,隱藏層之間存在數(shù)據(jù)依賴,導致一個樣本的計算過程不能完全并行。但多個樣本之間不存在數(shù)據(jù)依賴可以實現(xiàn)完全并行,所以GPU能夠加速RNN模型的訓練,但CPU與GPU運行時間的比值有限,小于CNN模型的相應(yīng)比值。
4 結(jié)束語
本文分析了CNN和RNN在CPU和GPU環(huán)境下,和不同迭代次數(shù)下性能的特點。實驗結(jié)果表明:GPU在并行計算上有較強的加速能力。
【參考文獻】
[1]GOODFELLOW I,BENGIO Y,COURVILLE A,et al.Deep learning [M].MIT press Cambridge,2016.
[2]丁科,譚營.GPU通用計算及其在計算智能領(lǐng)域的應(yīng)用 [J].智能系統(tǒng)學報,2015,10(01):1-11.
[3]何之源.21個項目玩轉(zhuǎn)深度學習——基于TensorFlow的實踐詳解[M].北京:電子工業(yè)出版社,2018.