コマンドラインからnvidiaドライバーのバージョンを取得する方法


回答:


140

を使用nvidia-smiすると、次のことがわかります。

bwood@mybox:~$ nvidia-smi 
Mon Oct 29 12:30:02 2012       
+------------------------------------------------------+                       
| NVIDIA-SMI 3.295.41   Driver Version: 295.41         |                       
|-------------------------------+----------------------+----------------------+
| Nb.  Name                     | Bus Id        Disp.  | Volatile ECC SB / DB |
| Fan   Temp   Power Usage /Cap | Memory Usage         | GPU Util. Compute M. |
|===============================+======================+======================|
| 0.  GeForce GTX 580           | 0000:25:00.0  N/A    |       N/A        N/A |
|  54%   70 C  N/A   N/A /  N/A |  25%  383MB / 1535MB |  N/A      Default    |
|-------------------------------+----------------------+----------------------|
| Compute processes:                                               GPU Memory |
|  GPU  PID     Process name                                       Usage      |
|=============================================================================|
|  0.           Not Supported                                                 |
+-----------------------------------------------------------------------------+

2
私のcentos 6.4システムでは、「-bash:nvidia-smi:command not found」というエラーが表示されます。何が問題でしょうか?
Shyamkkhadka 2017年

@Shyamkkhadka PATHに問題がある可能性があります。あなたは見つけることを試みることができるnvidia-smi:そうのようにlocate nvidia-smi
ブレンダン・ウッド

@ BrendanWood、locateコマンドを使用すると、空白の出力が表示されます。GPUハードウェアもないのではないかと思います。HPCだからです。そして、私はsshでリモートからアクセスしています。
Shyamkkhadka 2017年

@Shyamkkhadkaはい、おそらくそれだけです。HPCは通常、GPUクラスターであると想定されていない限り、GPUを備えていません。使用可能なハードウェアはで確認できますlspci。たとえば、次のようにstackoverflow.com/questions/10310250/...
ブレンダン・ウッド

@BrendanWood、あなたのリンクで示唆されているように、私が "lspci | grep VGA"をしたとき。出力は、「lspci | grep VGA 01:03.0 VGA互換コントローラー:Advanced Micro Devices、Inc. [AMD / ATI] ES1000(rev 02)」として表示されます。ですから、GPUハードウェアがあると思います。
Shyamkkhadka 2017年

101

上の任意の NVIDIAドライバがインストールされ、カーネルにロードされたLinuxシステム、あなたが実行することができます。

cat /proc/driver/nvidia/version

現在ロードされているNVIDIAカーネルモジュールのバージョンを取得します。次に例を示します。

$ cat /proc/driver/nvidia/version 
NVRM version: NVIDIA UNIX x86_64 Kernel Module  304.54  Sat Sep 29 00:05:49 PDT 2012
GCC version:  gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 

5
「optirun猫の/ proc /ドライバ/ NVIDIA /バージョン」:あなたは(原因NVIDIAオプティマスデュアルGPUに)バンブルビーがインストールされている場合は、この代わりに実行する
のShervin Emami

5
出力が場合に特に便利ですnvidia-smi:あるFailed to initialize NVML: GPU access blocked by the operating system
DarioP

1
私のcentos 6.4システムでは、/ proc / driver内にnvidiaディレクトリがありません。何が問題でしょうか?このため、nvidiaドライバーのバージョンを確認できません。
Shyamkkhadka 2017年

Failed to initialize NVML: Driver/library version mismatchから出力を取得する場合にも役立ちますnvidia-smi
Sethos II

14

modinfo トリックを行います。

root@nyx:/usr/src# modinfo nvidia|grep version:
version:        331.113

3
私のシステムでは、モジュールにはnvidia_XXX、インストールしたメジャードライバーシリーズに対応する名前が付けられており、modinfoワイルドカードや名前の部分一致をサポートしていないためmodinfo $(find /lib/modules/$(uname -r) -iname nvidia_*.ko | head -1) | grep ^version:、正しいメジャーおよびマイナードライバーのバージョンを返すようにする必要がありました。
dragon788

1
ubuntu 18.04では、私のバージョンmodinfoのに--fieldコマンドラインオプションがあります。したがって、grep:をスキップできますmodinfo nvidia --field version。また、ubuntu 16.04では、これは機能しないようです。私はいつも得ERROR: Module nvidia not foundます。
cheshirekow

11

Windowsバージョン:

cd \ Program Files \ NVIDIA Corporation \ NVSMI

nvidia-smi


7

[注:私はわざと私の回答を削除するのではないので、人々はそれをしないようにする方法を見ます]

使用する場合:

me@over_there:~$  dpkg --status nvidia-current | grep Version | cut -f 1 -d '-' | sed 's/[^.,0-9]//g'
260.19.06

ディストリビューションのパッケージメカニズムを通じてインストールされたnVIDIAドライバーパッケージのバージョンを取得します。しかし、これ現在カーネルの一部として実際に実行されているバージョンではない可能性があります。


11
これは、実際にインストールされ、カーネルによって使用されているドライバーのバージョンを通知するものではありません。procファイルシステムを使用してそれを確認してください...また、これはdebianスタイルのディストリビューションでのみ機能します。
talonmies

2
@Framesterこれを残してくれてありがとう-それは私がやった最初のことです(そしてそれは間違っています!)
スティーブン

@Framester:システムを完全にゲーム化しました!私はちょうどあなたに有用な間違った答えで別の+1を与えた...あなたは悪魔を狡猾に:-)
einpoklum

4

cccの答えをさらに詳しく説明するために、スクリプトを使用したカードのクエリを組み込む場合は、Nvidiaサイトの情報を以下に示します。

https://nvidia.custhelp.com/app/answers/detail/a_id/3751/~/useful-nvidia-smi-queries

また、私はこのスレッドがpowershellを研究しているのを見つけました。次に、ユーティリティを実行して、GPUで利用可能な実際のメモリを取得して開始するコマンドの例を示します。

# get gpu metrics
$cmd = "& 'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi' --query-gpu=name,utilization.memory,driver_version --format=csv"
$gpuinfo = invoke-expression $cmd | ConvertFrom-CSV
$gpuname = $gpuinfo.name
$gpuutil = $gpuinfo.'utilization.memory [%]'.Split(' ')[0]
$gpuDriver = $gpuinfo.driver_version

これは、受け入れられている回答よりも優れたドライババージョンに関する質問に回答しません
JR Utily

1
@JRUtily、キャッチありがとうございます。コードを更新して、ドライバーのバージョンを取得する方法を示しました。乾杯!
ジェフブルーメンタール2018

0

LinuxシステムでPythonを使用するプログラムで再現性を確保する必要がある場合:

with open('/proc/driver/nvidia/version') as f:
    version = f.read().strip()
print(version)

与える:

NVRM version: NVIDIA UNIX x86_64 Kernel Module  384.90  Tue Sep 19 19:17:35 PDT 2017
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.