2017-05-30 124 views
1

我已經在CUDA 8.0和libcudnn.so.5.1.10的Ubuntu 16.04上安裝了H2O 3.11.0.266,所以我相信H2O應該能夠找到我的GPU。如何判斷H2O 3.11.0.266是否在使用GPU運行?

但是,當我在Python中啓動h2o.init()時,沒有看到它實際上使用我的GPU的證據。我看到:

  • H2O簇總芯:8
  • H2O集羣允許芯:8

這是相同的,因爲我在以前的版本(預GPU)了。

此外,http://127.0.0.1:54321/flow/index.html也只顯示8個內核。

我不知道如果我沒有什麼正確安裝或是否最新h2o.init()沒有執行什麼的GPU可還是什麼信息...

提前非常感謝。

我應該提到3.11.0.266應該是支持GPU的版本。

感謝您的所有建議。我現在運行的H2O 3.13.0.337

我發現這個命令也很有用:

sudo watch -n 0.1 'ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `/usr/bin/lsof -n -w -t /dev/nvidia*`' 

但是,我一點點疑惑。當我運行XGBoost時,我清楚地看到,GPU的使用率非常活躍30%到40%(以及我所有的8個CPU核心,我猜想它們必須管理GPU)。XGB完成我的分類問題20秒。

GLM運行非常快,所以這是一個有點硬,如果它使用我的GPU(在不到一秒鐘完成的判斷。它由PS程序顯示啓動的列開始時鐘。

USER  PGRP PID %CPU %MEM STARTED  TIME COMMAND 
user  3380 3380 116 12.0 10:52:56 04:36:36 /usr/local/anaconda2/bin/java -ea -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -jar /usr/local/anaconda2/lib/python2.7/site-packages/h 

分佈式隨機森林也啓動時鐘,但似乎沒有使用任何GPU處理,但它確實使用了所有CPU核心。

GBM類似,訓練相同問題需要1.5分鐘,XGB需要20秒。由於算法是相似的,我會期待他們花費相似的時間並以類似的方式使用GPU。我發現這種意外NG。

我確信XGBoost正在使用GPU,但我不確定是否有其他算法。

[加入]

通過在H 2 O 3.13.0.341比較的方式。注意到溫度差異(!)和百分比GPU

這裏是gpustat -cup節目,當我運行xgboost

[0] GeForce GTX 1080 | 64'C, 90 % | 1189/8105 MB | clem:java/31183(191M) 

下面是它顯示當我運行分佈隨機森林(類似的結果發生了GBM和深度學習)

[0] GeForce GTX 1080 | 51'C, 5 % | 1187/8105 MB | clem:java/31183(189M) 

回答

2

您將需要啓用GPU的H2O版本,可在H2O download page上獲得。從您的問題中不清楚您是否使用常規的H2O或具有GPU功能的H2O,但是如果您使用的是具有GPU功能的H2O並具有適當的依賴關係,則應該會看到您的GPU。目前依賴列表是:

  • 的Ubuntu 16.04
  • CUDA 8.0
  • cuDNN 5.1

我已經開了一個JIRA ticket添加在h2o.init()打印一些元數據,以便你會看到信息關於您的GPU(未來版本)。

2

從終端窗口運行nvidia-smi工具。看看利用率。如果它爲0%,則表示您沒有使用GPU。

在下面的示例中,您可以看到易失性GPU利用率爲0%,因此未使用GPU。

$ nvidia-smi 
Tue May 30 13:50:11 2017 
+-----------------------------------------------------------------------------+ 
| NVIDIA-SMI 370.28     Driver Version: 370.28     | 
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. | 
|===============================+======================+======================| 
| 0 GeForce GTX 1080 Off | 0000:02:00.0  Off |     N/A | 
| 27% 30C P8 10W/180W |  1MiB/8113MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 1 GeForce GTX 1080 Off | 0000:03:00.0  On |     N/A | 
| 27% 31C P8  9W/180W |  38MiB/8112MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 1  1599 G /usr/lib/xorg/Xorg        36MiB | 
+-----------------------------------------------------------------------------+ 

我使用以下方便的小腳本來監視自己的GPU利用率。

$ cat bin/gputop 
#!/bin/bash 

watch -d -n 0.5 nvidia-smi 
+1

另外需要指出的是,即使即將使用h2o.init()輸出,也不會提及GPU。但上面的nvidia-smi工具是可靠的。 – TomKraljevic

相關問題