国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于高性能計算平臺的TensorFlow應(yīng)用探索與實踐

2018-01-29 07:46:36王一超韋建文
實驗室研究與探索 2017年12期
關(guān)鍵詞:高性能集群運(yùn)算

王一超, 韋建文

(上海交通大學(xué) 網(wǎng)絡(luò)信息中心, 上海 200240)

0 引 言

深度學(xué)習(xí)作為近年來興起的一種機(jī)器學(xué)習(xí)方法[1],可大幅提升包括圖像識別在內(nèi)的諸多模式識別問題的準(zhǔn)確率。同時,該方法經(jīng)由GPU大規(guī)模并行計算的助推,已經(jīng)大幅縮短了其模型的訓(xùn)練時間,成為了學(xué)術(shù)與工業(yè)界炙手可熱的機(jī)器學(xué)習(xí)方法[2-3]。當(dāng)前,利用深度學(xué)習(xí)提升圖像和語音識別精度的軟件產(chǎn)品層出不窮,并且已大量應(yīng)用于安防、人機(jī)交互、語音輸入法等實際場景。在科研領(lǐng)域,越來越多的科學(xué)家也意識到了可以嘗試?yán)蒙疃葘W(xué)習(xí)替代傳統(tǒng)的機(jī)器學(xué)習(xí)方法[4],提高模式識別或分類問題的精度[5]。在這一大背景下,為支撐校內(nèi)高水平科研用戶的需要,在校高性能計算平臺上結(jié)合高性能計算軟件棧的特點(diǎn),部署了多款支持深度學(xué)習(xí)的軟件框架,包括CNTK、MXnet、TensorFlow等。同時,在目前的交大超算平臺上,利用TensorFlow框架下的圖像識別模型訓(xùn)練,與最新的NVIDIA Minsky高性能工作站進(jìn)行了性能對比測試,以驗證平臺對于深度學(xué)習(xí)應(yīng)用的支持效果。

1 高性能計算平臺

為應(yīng)對校內(nèi)各院系用戶對計算需求的大幅增加,上海交通大學(xué)于2012年初成立校級高性能計算中心,掛靠校網(wǎng)絡(luò)信息中心,為全校提供高性能計算的公共服務(wù)。該校級高性能計算平臺于2013年建成并上線服務(wù)超算集群π,2013年6月世界排名158,國內(nèi)高校第一,上海地區(qū)第一[6]。

1.1 硬件環(huán)境

π集群采用異構(gòu)計算設(shè)計,計算資源由Intel至強(qiáng)多核處理器和NVIDIA GPU加速卡組成,經(jīng)過2輪升級之后,目前整機(jī)的理論計算峰值性能為343TFlops,聚合存儲能力達(dá)4PB,為國內(nèi)高校領(lǐng)先的大規(guī)模GPU異構(gòu)計算集群,具體硬件配置如表1所示。

表1 π集群硬件配置

2016年發(fā)布的NVIDIA Pascal架構(gòu)是目前最先進(jìn)的GPU加速卡架構(gòu),相較于2013年建設(shè)集群時所采用的Kepler架構(gòu),不僅提升了浮點(diǎn)數(shù)運(yùn)算能力和內(nèi)存訪問帶寬,更支持了適應(yīng)目前深度學(xué)習(xí)應(yīng)用特點(diǎn)的半精度浮點(diǎn)數(shù)計算(即FP16)[7]。NVIDIA P100加速卡的半精度浮點(diǎn)數(shù)運(yùn)算性能約為K80的單精度浮點(diǎn)數(shù)運(yùn)算性能的逾3倍,由于深度學(xué)習(xí)對于精度要求較低,半精度即可勝任,所以現(xiàn)已在集群的GPU節(jié)點(diǎn)上部署測試P100加速卡。

1.2 軟件環(huán)境

π集群利用module管理面向用戶的全局軟件環(huán)境,我們在集群上安裝了諸多常用的開源軟件及完整的編譯環(huán)境,面向所有用戶開放使用。用戶僅需在自己賬號下加載相關(guān)軟件或者工具庫,即module load指令,便可使用所需要的軟件。這種配置方案節(jié)省了用戶對于軟件及編譯環(huán)境的部署學(xué)習(xí)時間,同時我們對于全局軟件環(huán)境的定期升級與維護(hù),也保障了用戶始終能在優(yōu)化后的軟件環(huán)境下運(yùn)行計算作業(yè),從而提升作業(yè)運(yùn)行效率。

TensorFlow是由Google公司開發(fā)的一款支持不同深度學(xué)習(xí)應(yīng)用的軟件框架,在這款基于Python的軟件框架上可以通過調(diào)用不同的程序接口,構(gòu)建深度學(xué)習(xí)訓(xùn)練所需的流圖,進(jìn)行深度學(xué)習(xí)訓(xùn)練。目前人工智能領(lǐng)域最著名的案例,圍棋軟件AlphaGo正是基于該框架開發(fā)的[8]。TensorFlow今年剛剛推出了其1.0版本,目前更新速度較快,故本文中采用基于源代碼的安裝部署方式,目的是在于能使用最新的軟件版本。以下將簡述一下在π集群上部署TensorFlow的實踐方法。

首先,用戶需要加載正確的全局軟件環(huán)境,包括完整的編譯工具和GPU所需的CUDA并行庫環(huán)境。

$ module purge

$ module load gcc/5.4 python/3.5 bazel cuda/8.0 cudnn/6.0

virtualenv是一款創(chuàng)建隔絕的Python環(huán)境的軟件工具,它通過創(chuàng)建一個包含所有必要的可執(zhí)行文件的文件夾,來解決依賴、版本以及間接權(quán)限問題。用戶被允許在其HOME目錄下創(chuàng)建一個Python的虛擬環(huán)境,然后使用pip管理所需軟件包。

$ python3 virtualenv.py ~/python35-gcc

$ source ~/python35-gcc54/bin/activate

$ pip3 install numpy

用戶通過git將TensorFlow源代碼下載至其HOME目錄下,并更新至最新版本,進(jìn)行下一步編譯和安裝

$ git clone https://github.com/tensorflow/tensorflow

$ cd tensorflow; git checkout r1.0

利用bazel編譯工具開啟編譯環(huán)境設(shè)置,在選項中,用戶需要選擇使用GPU,并指明CUDA和cuDNN的安裝路徑。

$ bazel build--config=opt--config=cuda //tensorflow/tools/pip_package:build_pip_package

用戶最終將基于以上操作編譯而成的基于pip的TensorFlow安裝包安裝到用戶本地的python目錄下。打開Python后,即可正常使用TensorFlow。

2 深度學(xué)習(xí)應(yīng)用

深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)是由一個或多個卷積層和頂端的全連通層組成,同時也包括關(guān)聯(lián)權(quán)重和池化層[9]。這種網(wǎng)絡(luò)數(shù)學(xué)上就是許多卷積運(yùn)算和矩陣運(yùn)算的組合,而卷積運(yùn)算通過一定的數(shù)學(xué)手段也可以通過矩陣運(yùn)算完成。這些操作和GPU本來能做的那些圖形點(diǎn)的矩陣運(yùn)算是一樣的。因此深度學(xué)習(xí)就可以非常恰當(dāng)?shù)赜肎PU進(jìn)行加速了。

目前,交大高性能計算平臺上的深度學(xué)習(xí)計算需求主要來自于語音識別和圖像處理,計算機(jī)系和醫(yī)學(xué)圖像處理的團(tuán)隊對于在集群上利用GPU跑深度學(xué)習(xí)作業(yè)。當(dāng)前他們的應(yīng)用占了GPU應(yīng)用的11%,僅次于傳統(tǒng)科學(xué)計算領(lǐng)域的軟件Amber,與GPU版本的Gromacs和Lammps相當(dāng)(見圖1)。

目前在π集群上使用最多的開源深度學(xué)習(xí)框架是Google公司開發(fā)的TensorFlow。TensorFlow是一個使用數(shù)據(jù)流圖進(jìn)行數(shù)值計算的開源軟件庫。數(shù)據(jù)流圖中的節(jié)點(diǎn)表示數(shù)學(xué)運(yùn)算, 數(shù)據(jù)流圖中的邊表示節(jié)點(diǎn)之間互聯(lián)的多維數(shù)據(jù)數(shù)組[11]。而目前在圖像識別領(lǐng)域使用最多的訓(xùn)練模型Inception,即如圖2示例,是一個13層的網(wǎng)絡(luò)模型。本文基于以上現(xiàn)狀,在π集群上基于TensorFlow框架針對Inception模型進(jìn)行測試實驗[12],用以驗證目前高性能計算集群對于深度學(xué)習(xí)應(yīng)用的支持情況。

圖1 π集群GPU應(yīng)用利用率占比[10]

圖2 TensorFlow框架下Inception模型的數(shù)據(jù)流圖

3 性能分析

為分析深度學(xué)習(xí)應(yīng)用在π集群上的實際性能,本文針對基于TensorFlow架構(gòu)的Inception-V3模型進(jìn)行訓(xùn)練性能的測試,圖像測試集采用大規(guī)模數(shù)據(jù)集ImageNet,該數(shù)據(jù)集大小約1.5 TB,由逾22 000個種類和超過1 500萬張圖片組成。目前,國際上公認(rèn)最具權(quán)威性的ImageNet國際計算機(jī)視覺挑戰(zhàn)賽(ILSVRC)正是基于該數(shù)據(jù)集進(jìn)行圖像識別準(zhǔn)確率的比拼的[13]。由于數(shù)據(jù)集體量較大,我們將ImageNet數(shù)據(jù)集下載并保存至π集群的并行文件系統(tǒng)上,以方便跨界點(diǎn)及多用戶的共同訪問。

3.1 測試環(huán)境

為了能和目前主流的深度學(xué)習(xí)專用工作站進(jìn)行性能對比,本次實驗不僅只在π集群的GPU測試節(jié)點(diǎn)(搭載了NVIDIA P100加速卡[14])上進(jìn)行,我們還在同樣搭載了NVIDIA P100加速卡且支持NVLink高速互聯(lián)技術(shù)的IBM Minsky測試機(jī)上做了同樣的訓(xùn)練測試。

如圖3所示,NVLink高速互聯(lián)技術(shù)相較于異構(gòu)計算中常用的PCIe互聯(lián),訪存帶寬可以取得5倍的提升,從而緩解由主存與GPU顯存之間傳輸效率低造成的性能瓶頸。具體的測試平臺軟硬件環(huán)境配置如表2所示。

3.2 性能結(jié)果對比

本文使用了ImageNet數(shù)據(jù)集訓(xùn)練Inception-V3圖像識別模型,依次進(jìn)行了1~4塊GPU卡的訓(xùn)練測試,為保證負(fù)載的平均,batch值也相應(yīng)做了調(diào)整,實驗輸入如表3所示。

配置項目πsupercomputer測試節(jié)點(diǎn)Minsky測試機(jī)CPU雙路IntelE5?2680POWER8GPU2塊P100?PCIE4塊P100?SMXNVLink不支持支持內(nèi)存64GB32GB操作系統(tǒng)CentOS7.0CentOS7.0CUDA版本8.08.0cuDNN版本6.06.0

表3 深度學(xué)習(xí)應(yīng)用測試輸入

實驗結(jié)果如圖4所示,Minsky測試機(jī)相對于目前π集群的GPU單節(jié)點(diǎn)的1和2卡的性能非常接近,性能差在12%以內(nèi)。而由于目前集群環(huán)境下的TensorFlow尚不支持分布式GPU節(jié)點(diǎn)并行,故無法在此情況下做相應(yīng)對比測試,圖4中展示了Minsky在4卡運(yùn)行時的性能,相對之前的結(jié)果而言,呈線性增長。

圖4 利用TensorFlow在Minsky和π集群上訓(xùn)練Inception-V3模型的性能對比

造成π集群節(jié)點(diǎn)與Minsky測試機(jī)上性能差異的原因主要有2點(diǎn):①M(fèi)insky上配備的NVLink高速互聯(lián)技術(shù),提供了5倍于π測試節(jié)點(diǎn)上基于PCIe技術(shù)的傳輸帶寬。從而使得數(shù)據(jù)在從主存?zhèn)鬏斨罣PU設(shè)備內(nèi)存的時間明顯降低了,在1和2卡的實驗中提升了性能;②Minsky測試機(jī)集成了4塊P100-SMX GPU卡,該款加速卡相較于采用同樣硬件架構(gòu)的P100-PCIE版本,其核心的主頻更高,因此計算能力有約16%的提升[15]。

綜上所示,在2013年建成的π超算上成功部署了TensorFlow深度學(xué)習(xí)框架,在將GPU節(jié)點(diǎn)上的GPU加速卡從原有的NVIDIA Kepler架構(gòu)升級至最新的Pascal架構(gòu)后。在實驗中,對比了其與2016年發(fā)布的Minsky測試機(jī)上Inception-V3模型的訓(xùn)練性能,實驗結(jié)果顯示性能差異在12%以內(nèi)。由此可見,當(dāng)前的集群硬件條件可以支持深度學(xué)習(xí)應(yīng)用在單節(jié)點(diǎn)上的運(yùn)行,但在未來的建設(shè)中,仍有待進(jìn)一步考察高密度GPU節(jié)點(diǎn)對提升深度學(xué)習(xí)應(yīng)用性能的幫助。

4 結(jié) 語

在這一輪新的人工智能大潮中,人們利用深度學(xué)習(xí)方法大踏步提升人工智能應(yīng)用預(yù)期的同時,也越來越認(rèn)識到計算性能對于未來人工智能能發(fā)展的重要性。日本政府近期也提出了發(fā)展面向人工智能的超級計算機(jī)戰(zhàn)略。在高校一級的高性能計算平臺上,人工智能的研究需求也理應(yīng)得到滿足,這就需要在已有的集群上更新軟硬件環(huán)境,幫助用戶更快地成功運(yùn)行相關(guān)計算應(yīng)用。本文分享了交大在高性能計算平臺上配置部署深度學(xué)習(xí)軟件框架,并實踐對比了其與目前最先進(jìn)的GPU工作站的性能,證明了校級高性能計算平臺可以支撐深度學(xué)習(xí)用戶的計算需求,但在分布式深度學(xué)習(xí)上的性能還有待評估。因為與傳統(tǒng)的科學(xué)計算不同,深度學(xué)習(xí)應(yīng)用由于極高的運(yùn)算強(qiáng)度,對于多卡情況下的數(shù)據(jù)傳輸性能要求更高,故在工業(yè)界普遍采用單機(jī)多卡的高密度GPU節(jié)點(diǎn)方案[16],以提高其性能。在這一方面,在建設(shè)新一階段的超算集群時,也可以對類似的高密度節(jié)點(diǎn)性能進(jìn)行調(diào)研,以評估其實際應(yīng)用價值。

[1] 李 航. 統(tǒng)計學(xué)習(xí)方法[M].北京:清華大學(xué)出版社,2012.

[2] 余 凱, 賈 磊, 陳雨強(qiáng), 等, 深度學(xué)習(xí)的昨天、今天和明天[J]. 計算機(jī)研究與發(fā)展, 2013, 50(9): 1799-1804.

[3] 張建明,詹智財,成科揚(yáng),等.深度學(xué)習(xí)的研究與發(fā)展[J]. 江蘇大學(xué)學(xué)報:自然科學(xué)版, 2015,36(2): 191-200.

[4] LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444.

[5] 張煥龍, 胡士強(qiáng), 楊國勝, 基于外觀模型學(xué)習(xí)的視頻目標(biāo)跟蹤方法綜述[J]. 計算機(jī)研究與發(fā)展, 2015, 52(1): 177-190.

[6] 林新華, 顧一眾, 上海交通大學(xué)高性能計算建設(shè)的理念與實踐[J]. 華東師范大學(xué)學(xué)報(自然科學(xué)版),2015(S1): 298-303.

[7] GP100 Pascal Whitepaper [EB/OL]. https://images.nvidia.com/content/pdf/tesla/whitepaper/pascal-architecture-whitepaper.pdf

[8] Silver D, Huang A, Maddison C J,etal. Mastering the game of Go with deep neural networks and tree search[J]. Nature, 2016, 529(7587):484-489.

[9] 周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016.

[10] 上海交通大學(xué)高性能計算中心年度報告2016[EB/OL]. http://hpc.sjtu.edu.cn/report2016_170607.pdf.

[11] 黃文堅, 唐 源.TensorFlow實戰(zhàn)[M].北京:電子工業(yè)出版社,2017.

[12] Installing TensorFlow from Sources [EB/OL]. https://www.tensorflow.org/install/install_sources.

[13] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.

[14] Deep Learning Performance with P100 GPUs[EB/OL]. http://en.community.dell.com/techcenter/high-performance-computing/b/general_hpc/archive/2016/11/11/deep-learning-performance-with-p100-gpus.

[15] Inside Pascal: NVIDIA’s Newest Computing Platform [EB/OL]. https://devblogs.nvidia.com/parallelforall/inside-pascal/.

[16] 顧乃杰, 趙 增, 呂亞飛,等, 基于多GPU的深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法[J]. 小型微型計算機(jī)系統(tǒng),2015(5): 1042-1046.

猜你喜歡
高性能集群運(yùn)算
重視運(yùn)算與推理,解決數(shù)列求和題
有趣的運(yùn)算
海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
電子制作(2018年11期)2018-08-04 03:25:40
Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
“整式的乘法與因式分解”知識歸納
一款高性能BGO探測器的研發(fā)
電子制作(2017年19期)2017-02-02 07:08:49
勤快又呆萌的集群機(jī)器人
撥云去“誤”學(xué)乘除運(yùn)算
高性能砼在橋梁中的應(yīng)用
吉木萨尔县| 晴隆县| 百色市| 德江县| 滕州市| 阳谷县| 乌审旗| 长宁县| 锦州市| 旬阳县| 白城市| 富顺县| 秦安县| 舞阳县| 云龙县| 大同县| 平陆县| 哈尔滨市| 阳山县| 奉节县| 泾源县| 日喀则市| 南充市| 黄冈市| 紫金县| 牡丹江市| 千阳县| 安吉县| 永靖县| 西峡县| 应用必备| 阳新县| 长海县| 渭南市| 静乐县| 通山县| 永济市| 桓台县| 阿城市| 郴州市| 全州县|