कमांड लाइन से एनवीडिया चालक संस्करण कैसे प्राप्त करें?


97

CUDA कोड डिबग करने और कॉम्पिटिशन की जाँच करने के लिए, मुझे यह पता लगाने की आवश्यकता है कि मैंने जो GPU स्थापित किया है उसके लिए 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
मेरे सेंटोस 6.4 सिस्टम में, यह मुझे "-बैश: एनवीडिया-एसआईआई: कमांड नहीं मिला" के रूप में त्रुटि देता है। क्या समस्या हो सकती है ?
श्यामखड़का

@Shyamkkhadka संभवतः आपके PATH में कुछ गड़बड़ है। आप ऐसा करने की कोशिश कर सकते हैं nvidia-smi:locate nvidia-smi
ब्रेंडन वुड

@BrendanWood, कमांड का पता लगाने के साथ यह खाली आउटपुट दिखाता है। मुझे शक है कि यह कोई gpu हार्डवेयर है या नहीं। क्योंकि यह एचपीसी है। और मैं इसे ssh के साथ रिमोट से एक्सेस कर रहा हूं।
श्यामखड़का

@ श्यमखडका हां, शायद यही है। HPC में आम तौर पर GPU नहीं होते हैं जब तक कि उन्हें GPU क्लस्टर नहीं माना जाता है। आप उपलब्ध हार्डवेयर की जांच कर सकते हैं lspci। उदाहरण के लिए: stackoverflow.com/questions/10310250/…
ब्रेंडन वुड

@ ब्रेंडनवुड, जैसा कि आपके लिंक में सुझाया गया है, जब मैंने "lspci | grep VGA" किया था। यह आउटपुट को "lspci | grep VGA 01: 03.0 VGA संगत नियंत्रक: उन्नत माइक्रो डिवाइसेस, इंक। [AMD / ATI] ES1000 (Rev 02)" के रूप में दिखाता है। इसलिए मुझे लगता है कि इसमें GPU हार्डवेयर है।
श्यामखड़का

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
या यदि आपके पास भौंरा स्थापित है (NVIDIA ऑप्टिमस डुअल जीपीयू के कारण), तो इसके बजाय इसे चलाएं: "ऑप्टिरुन कैट / प्रॉप / ड्राइवर / एनवीडिया / संस्करण"
शेरविन इमामी

5
यह विशेष रूप से तब उपयोगी होता है जब इसका आउटपुट होता nvidia-smiहै:Failed to initialize NVML: GPU access blocked by the operating system
DarioP

1
मेरे सेंटोस 6.4 प्रणाली में, मेरे पास निर्देशिका एनवीडिया नहीं है / proc / चालक है। क्या समस्या हो सकती है ? इसके कारण, मैं अपना एनवीडिया ड्राइवर संस्करण नहीं देख पा रहा हूं।
श्यामखड़का

जब आप आउटपुट प्राप्त करते हैं तब भी उपयोगी होता Failed to initialize NVML: Driver/library version mismatchहै nvidia-smi
सेठोस 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:जो सही प्रमुख और मामूली ड्राइवर संस्करण लौटाता है।
ड्रैगन 788

1
Ubuntu पर 18.04 की मेरी संस्करण modinfoएक है --fieldआदेश पंक्ति विकल्प। तो आप grep को छोड़ सकते हैं modinfo nvidia --field version:। इसके अलावा, ubuntu 16.04 में यह काम नहीं करता है। मुझे हमेशा मिलता है ERROR: Module nvidia not found
चेशिरेको


7

[नोट: मैं उद्देश्य पर अपना जवाब नहीं हटा रहा हूं, इसलिए लोग देखें कि यह कैसे करना है]

यदि तुम प्रयोग करते हो:

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

आपको अपने वितरण तंत्र के पैकेजिंग तंत्र के माध्यम से स्थापित एनवीडिया चालक पैकेज का संस्करण मिलेगा। लेकिन यह वह संस्करण नहीं हो सकता है जो वास्तव में आपके कर्नेल के हिस्से के रूप में अभी चल रहा है।


11
यह आपको नहीं बताता है कि चालक का कौन सा संस्करण वास्तव में स्थापित है और कर्नेल द्वारा उपयोग में है। यह देखने के लिए खरीद फ़ाइल सिस्टम का उपयोग करें .... इसके अलावा यह केवल डेबियन शैली के वितरण में काम करता है।
तायोनोमीज़

2
@Framester इसे छोड़ने के लिए धन्यवाद - वह पहली चीज है जो मैंने (और इसके गलत!) की है
स्टीफन

@Framester: आपने पूरी तरह से सिस्टम तैयार कर लिया है! मैंने आपको एक और गलत उत्तर पर एक और +1 दिया ... आप चालाक शैतान :-)
einpoklum

4

Ccc के उत्तर पर विस्तार करने के लिए, यदि आप एक स्क्रिप्ट के साथ कार्ड को क्वेरी करना शामिल करना चाहते हैं, तो यहाँ Nvidia साइट पर जानकारी दी गई है कि ऐसा कैसे करें:

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

इसके अलावा, मैंने पाया कि यह धागा शक्तियां शोध कर रहा है। यहां एक उदाहरण कमांड है जो आपको आरंभ करने के लिए 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

यह ड्राइवर संस्करण के बारे में पूछे गए उत्तर से बेहतर सवाल का जवाब नहीं देता है
जेआर यूटली

1
@JRUtily, इस पकड़ने के लिए धन्यवाद। मैंने ड्राइवर संस्करण प्राप्त करने के तरीके को दिखाने के लिए कोड अपडेट किया। चीयर्स!
जेफ ब्ल्यूमेंथल

0

यदि आपको प्रजनन प्रणाली के लिए एक लिनक्स सिस्टम पर पायथन के साथ एक कार्यक्रम में इसे प्राप्त करने की आवश्यकता है:

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) 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.