2016-12-02 8 views
17

私はnvidia-smi -l 1が1秒ごとにGPUを使用することを知っています(以下同様)。しかし、私はVolatile GPU-Utilが実際に意味するものについての説明を感謝します。これは、総SM以上の使用済みSMの数、または占有率などですか?nvidia-smi揮発性GPU - 利用の説明?

+-----------------------------------------------------------------------------+ 
| NVIDIA-SMI 367.48     Driver Version: 367.48     | 
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. | 
|===============================+======================+======================| 
| 0 Tesla K20c   Off | 0000:03:00.0  Off |     0 | 
| 30% 41C P0 53W/225W |  0MiB/4742MiB |  96%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 1 Tesla K20c   Off | 0000:43:00.0  Off |     0 | 
| 36% 49C P0 95W/225W | 4516MiB/4742MiB |  63%  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 1  5193 C python          4514MiB | 
+-----------------------------------------------------------------------------+ 
+4

SMはStreaming Multiprocessorを意味し、ここで説明されています(https://stackoverflow.com/questions/3519598/streaming-multiprocessors-blocks-and-threads-cuda) – Davidmh

答えて

21

a sampled measurement over a time periodです。一定期間、1つまたは複数のGPUカーネルがアクティブ(すなわち実行中)であった時間のパーセンテージを報告します。

使用されたSMの数、コードの使い方、正確に何をしていたのか、どのようにメモリを使用していたのかについては何も教えてくれません。

上記のクレームは、マイクロベンチマーキング型の運動(下記参照)を使用することをあまり難しくすることなく確認することができる。

期間を正確に定義する方法はわかりませんが、全体的にちょうどサンプリングされた測定値です(つまり、nvidia-smiはそれをポーリングすると1つのサンプリングされた測定値を報告します)ツールの一般的な使用方法や理解に重要です。期間は明らかに短く、ポーリング間隔が指定されている場合は、必ずしもポーリング間隔に関係なく、nvidia-smiとなります。マイクロベンチマーキング技術を用いてサンプリング時間を明らかにすることも可能である。

また、「揮発性」という単語は、nvidia-smiのこのデータ項目には関係しません。あなたは出力フォーマットを誤解しています。

はここに私の主張をサポートして些細なコードです:私は100のコマ​​ンドラインパラメータを指定して上記のコードを実行したときに、私のシステムで

#include <stdio.h> 
#include <unistd.h> 
#include <stdlib.h> 

const long long tdelay=1000000LL; 
const int loops = 10000; 
const int hdelay = 1; 

__global__ void dkern(){ 

    long long start = clock64(); 
    while(clock64() < start+tdelay); 
} 

int main(int argc, char *argv[]){ 

    int my_delay = hdelay; 
    if (argc > 1) my_delay = atoi(argv[1]); 
    for (int i = 0; i<loops; i++){ 
    dkern<<<1,1>>>(); 
    usleep(my_delay);} 

    return 0; 
} 

、NVIDIA-SMIは、99%の使用率を報告します。 1000のコマ​​ンドラインパラメータで実行すると、nvidia-smiは約83%の使用率を報告します。 10000というコマンドラインパラメータで実行すると、nvidia-smiは〜9%の使用率を報告します。