DeepBench (2) NVIDIA Tesla K80 性能評測

環(huán)境
Linux
GPU Tesla K80


步驟

0. DeepBench下載

從官網 https://github.com/baidu-research/DeepBench下載DeepBench包
git方式:

git clone https://github.com/baidu-research/DeepBench

1. 編譯

  • 環(huán)境配置

NVIDIA benchmarks需要CUDA cuDNN MPI nccl
前三個可以直接由module導入,這里使用的是CUDA8.0 cuDNN5.1 openmpi1.10.2弯囊,nccl使用自己安裝好的路徑

后面出現的問題多半是這幾個庫的版本問題

export MODULEPATH=/BIGDATA/app/modulefiles_GPU/:/BIGDATA/app/modulefiles
module load CUDA/8.0
module load cudnn/5.1-CUDA8.0
module load openmpi/1.10.2-gcc4.9.2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/HOME/user_name/nccl/path/lib

從DeepBench目錄下進入NVIDIA目錄

cd code/nvidia
  • build

使用官網給出的build方法,build似乎可以不用yhrun延柠,make后要加上ARCH配置

yhrun -n 1 make CUDA_PATH=/BIGDATA/app/CUDA/8.0 CUDNN_PATH=/BIGDATA/app/cuDNN/5.1-CUDA8.0 MPI_PATH=/BIGDATA/app/openmpi/1.10.2-gcc4.9.2 NCCL_PATH=/HOME/user_name/nccl ARCH=sm_30,sm_32,sm_35,sm_50,sm_52,sm_60,sm_61,sm_62,sm_70

或者修改Makefile

也可以分開build浪讳,比如conv

make conv
#具體:
yhrun -n 1 make CUDA_PATH=/BIGDATA/app/CUDA/8.0 CUDNN_PATH=/BIGDATA/app/cuDNN/5.1-CUDA8.0 MPI_PATH=/BIGDATA/app/openmpi/1.10.2-gcc4.9.2 NCCL_PATH=/HOME/user_name/nccl ARCH=sm_30,sm_32,sm_35,sm_50,sm_52,sm_60,sm_61,sm_62 conv

build 成功

mkdir -p bin
/BIGDATA/app/CUDA/8.0/bin/nvcc conv_bench.cu -DPAD_KERNELS=1 -o bin/conv_bench -I ../kernels/ -I /BIGDATA/app/CUDA/8.0/include -I /BIGDATA/app/cuDNN/5.1-CUDA8.0/include/ -L /BIGDATA/app/cuDNN/5.1-CUDA8.0/lib64/ -L /BIGDATA/app/CUDA/8.0/lib64 -lcurand -lcudnn --generate-code arch=compute_30,code=sm_30 --generate-code arch=compute_32,code=sm_32 --generate-code arch=compute_35,code=sm_35 --generate-code arch=compute_50,code=sm_50 --generate-code arch=compute_52,code=sm_52 --generate-code arch=compute_60,code=sm_60 --generate-code arch=compute_61,code=sm_61 --generate-code arch=compute_62,code=sm_62 -std=c++11

運行前設置好LD_LIBRARY

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/BIGDATA/app/CUDA/8.0:/BIGDATA/app/cuDNN/5.1-CUDA8.0:/BIGDATA/app/PGIcompiler/17.1/linux86-64/2017/mpi/openmpi-1.10.2:/HOME/user_name/nccl

2. 運行測試

  • gemm benchmark

nvidia目錄下

yhrun -n 1 ./bin/gemm_bench

CUDA8.0 cudnn5.1 配置下運行會報錯宝磨,由于CUDA是天河配置好的疯潭,我不會改

terminate called after throwing an instance of 'std::runtime_error'
what():  sgemm failed
   1760     16   1760      0      0
halfyhrun: error: gn26: task 0: Aborted (core dumped)

CUDA7.0 cudnn4.0 配置可以正常運行
一部分結果

### CUDA7.0 cudnn4.0 openmpi1.10.2 nccl1 ###

                  Running training benchmark 
                         Times
----------------------------------------------------------------------------------------
    m       n      k      a_t     b_t      precision        time (usec) 
   1760     16   1760      0      0        float                 340 .
    ...
     略
  • conv benchmark

nvidia目錄下

yhrun -n 1 ./bin/conv_bench

CUDA8.0 cudnn6.0 可編譯但無法運行
CUDA7.0 cudnn4.0 無法編譯两蟀,會提示缺很多東西概说,可能是版本過老
CUDA8.0 cudnn5.1 配置運行中途會報錯:運行到第11個算例時出現runtime_error導致運行中止

Illegal algorithm passed to get_fwd_algo_string. Algo: 7

把conv_bench.cu文件中的std::string get_fwd_algo_string()函數中最后一部分的

else {
            std::stringstream ss;
            ss << "Illegal algorithm passed to get_fwd_algo_string. Algo: " << fwd_algo_ << std::endl;
            throw std::runtime_error(ss.str());
        }

改成

else {
            return "#unknown"
        }

重新編譯后再運行碧注,即可越過有問題的段落嚣伐,第11個顯示的是unknown,后面還有好多unknown

### CUDA8.0 cudnn5.1 openmpi1.10.2 nccl1 ###

                  Running training benchmark 
                         Times
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   w      h      c      n      k      f_w    f_h  pad_w  pad_h    stride_w  stride_h    precision  fwd_time (usec)  bwd_inputs_time (usec)  bwd_params_time (usec)  total_time (usec)   fwd_algo 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  700    161      1      4     32     20      5      0       0         2         2     float            929                    1136                    1074               3139            IMPLICIT_GEMM
  700    161      1      8     32     20      5      0       0         2         2     float           1587                    2168                    1928               5683            IMPLICIT_GEMM
  700    161      1     16     32     20      5      0       0         2         2     float           2813                    4337                    3508              10658    IMPLICIT_PRECOMP_GEMM
  700    161      1     32     32     20      5      0       0         2         2     float           6368                    8659                    6899              21926            IMPLICIT_GEMM
  341     79     32      4     32     10      5      0       0         2         2     float           2174                    4076                    2506               8756    IMPLICIT_PRECOMP_GEMM
  341     79     32      8     32     10      5      0       0         2         2     float           4211                    8128                    5007              17346    IMPLICIT_PRECOMP_GEMM
  341     79     32     16     32     10      5      0       0         2         2     float           8459                   16200                    9985              34644    IMPLICIT_PRECOMP_GEMM
  341     79     32     32     32     10      5      0       0         2         2     float          16903                   32380                   20188              69471    IMPLICIT_PRECOMP_GEMM
  480     48      1     16     16      3      3      1       1         1         1     float            752                    1014                    1515               3281            IMPLICIT_GEMM
  240     24     16     16     32      3      3      1       1         1         1     float            863                    1332                    1258               3453            IMPLICIT_GEMM
  120     12     32     16     64      3      3      1       1         1         1     float            613                     652                    1005               2270                 #unknown
  ...
   略
  • rnn benchmark

nvidia目錄下

yhrun -n 1 ./bin/rnn_bench

CUDA8.0 cudnn5.1 配置下可正常運行

### CUDA8.0 cudnn5.1 openmpi1.10.2 nccl1 ###

Running training benchmark 
                         Times
----------------------------------------------------------------------------------------
    type    hidden   N     timesteps   precision     fwd_time (usec)   bwd_time (usec)
 vanilla    1760      16      50         float             19590             17450
 vanilla    1760      32      50         float             18289             18044
     ...
    lstm     512      16      25         float              3888              5551
    lstm     512      32      25         float              3922              5603
     ...  
     gru    2816      32    1500         float           2638524           2475404
     gru    2816      32     750         float           1319982           1240556
     ...
      略     
  • all reduce benchmark

nccl_single_all_reduce
nvidia目錄下

yhrun -n 1 ./bin/nccl_single_all_reduce 2

可以正常運行

 NCCL AllReduce 
 Num Ranks: 2
---------------------------------------------------------------------------
    # of floats    bytes transferred    Time (msec)   
---------------------------------------------------------------------------
         100000         400000               0.109
        3097600       12390400               1.344
            ...
             略

nccl_mpi_all_reduce
nvidia目錄下

yhrun -n 2 -N 2 mpirun -np 2 ./bin/nccl_mpi_all_reduce 

可以運行但無結果应闯,我在那個目錄下有報錯提示缺失的文件纤控,不知為什么會這樣報錯

mca: base: component_find: unable to open /BIGDATA/app/openmpi/1.10.2-gcc4.9.2/lib/openmpi/mca_btl_scif: libscif.so.0: cannot open shared object file: No such file or directory (ignored)

3. 使用yhbatch測試

由于測試時間長挂捻,VPN總掉線碉纺,可以使用yhbatch來運行
創(chuàng)建一個test.sh,文件test.sh內容如下:

#! /bin/bash
yhrun -n xx xxx_bench (yhrun語句)

再使用yhbatch命令

yhbatch -n 1 ./test.sh

這樣即可將任務提交上去
任務完成后會有一個slurm_jobid.out文件刻撒,原本輸出到控制臺的語句都可以在這里找到

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末骨田,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子声怔,更是在濱河造成了極大的恐慌态贤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件醋火,死亡現場離奇詭異悠汽,居然都是意外死亡,警方通過查閱死者的電腦和手機芥驳,發(fā)現死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門柿冲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兆旬,你說我怎么就攤上這事假抄。” “怎么了丽猬?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵宿饱,是天一觀的道長。 經常有香客問我脚祟,道長谬以,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任由桌,我火速辦了婚禮为黎,結果婚禮上,老公的妹妹穿的比我還像新娘沥寥。我一直安慰自己碍舍,他們只是感情好,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布邑雅。 她就那樣靜靜地躺著片橡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淮野。 梳的紋絲不亂的頭發(fā)上捧书,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天吹泡,我揣著相機與錄音,去河邊找鬼经瓷。 笑死爆哑,一個胖子當著我的面吹牛,可吹牛的內容都是我干的舆吮。 我是一名探鬼主播揭朝,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼色冀!你這毒婦竟也來了潭袱?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤锋恬,失蹤者是張志新(化名)和其女友劉穎屯换,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體与学,經...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡彤悔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了索守。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晕窑。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蕾盯,靈堂內的尸體忽然破棺而出幕屹,到底是詐尸還是另有隱情,我是刑警寧澤级遭,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布望拖,位于F島的核電站,受9級特大地震影響挫鸽,放射性物質發(fā)生泄漏说敏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一丢郊、第九天 我趴在偏房一處隱蔽的房頂上張望盔沫。 院中可真熱鬧,春花似錦枫匾、人聲如沸架诞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谴忧。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沾谓,已是汗流浹背委造。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留均驶,地道東北人昏兆。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像妇穴,于是被迫代替她去往敵國和親爬虱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現筛欢,斷路器,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,867評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,328評論 25 707
  • 一邊是勝利喝彩诱建,一邊打出王牌! 一 日前仅颇,京東正式公布2017年第二季度財報单默。第二季度中,京東營收暴漲43.6%忘瓦,...
    云學科技閱讀 161評論 0 0
  • 這周讀了《哈佛家訓》除了對這座世界聞名的學府的濤濤景仰之情外搁廓,對它的軼事也很感興趣。 哈佛大學 (Harvard ...
    Fwx煙雨傾城閱讀 495評論 0 4