NVIDIA NVML ड्राइवर / लाइब्रेरी संस्करण बेमेल


232

जब मैं चलता nvidia-smiहूं तो मुझे निम्न संदेश मिलता है:

Failed to initialize NVML: Driver/library version mismatch

एक घंटे पहले मुझे एक ही संदेश प्राप्त हुआ और मैंने अपनी कोडा लाइब्रेरी को अनइंस्टॉल कर दिया और मैं nvidia-smiनिम्नलिखित परिणाम प्राप्त करने में सक्षम हो गया :

NVIDIA-SMI-परिणाम

इसके बाद मैंने आधिकारिक NVIDIA पेजcuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb से डाउनलोड किया और फिर बस:

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

अब मेरे पास cuda स्थापित है, लेकिन मुझे उल्लेखित बेमेल त्रुटि मिलती है।


कुछ संभावित उपयोगी जानकारी:

दौड़ना cat /proc/driver/nvidia/versionमुझे मिलता है:

NVRM version: NVIDIA UNIX x86_64 Kernel Module  378.13  Tue Feb  7 20:10:06 PST 2017
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

मैं Ubuntu 16.04.2 LTS चला रहा हूं।

कर्नेल रिलीज़ है: 4.4.0-66-जेनेरिक।

धन्यवाद!


12
आपने संभवतः अपने (वर्तमान) पैकेज मैनेजर इंस्टॉल (एप्ट-गेट) के साथ पिछले रनफाइल इंस्टॉल को मिलाया है। सभी पिछले NVIDIA ड्राइवर और CUDA फ़ाइलों को हटाने के लिए cuda linux install गाइड में दिए गए निर्देशों का पालन करें , और उसके बाद साफ करने के बाद फिर से इंस्टॉल करें। अपने पुनर्स्थापना को शुरू करने से पहले, आप पूरे लिनक्स इंस्टाल गाइड डॉक्स I लिंक को पढ़ना चाह सकते हैं। संघर्ष निश्चित रूप से आपके मौजूदा 378.13 ड्राइवर स्थापित के शीर्ष पर CUDA 8 GA2 पैकेज को स्थापित करने के आपके प्रयास से उत्पन्न होता है।
रॉबर्ट क्रोवेल्ला

मैं इस प्रश्न को बंद करने के लिए मतदान कर रहा हूं क्योंकि यह मूल रूप से GPU ड्राइवरों को स्थापित करने (या स्थापित करने) को तोड़ने और सीधे प्रोग्रामिंग से संबंधित नहीं है।
ताउम्र

जवाबों:


343

आश्चर्य चकित, रिबूटिंग ने इस मुद्दे को हल कर दिया (मुझे लगा कि मैंने पहले ही कोशिश की थी)।

रॉबर्ट क्रॉवेल्ला ने टिप्पणियों में जिस समाधान का उल्लेख किया है, वह किसी और के लिए भी उपयोगी हो सकता है, क्योंकि यह उस समस्या के समान है जो मैंने पहली बार इस मुद्दे को हल करने के लिए किया था।


2
कृपया कुछ दिनों में वापस आना याद रखें और इस उत्तर को स्वीकार करें ताकि यह सवाल CUDA टैग के लिए अनुत्तरित सूची से बाहर हो जाए
talonmies

5
मैं एक रिबूट के बाद इस काम के बारे में उलझन में था, लेकिन फिर भी मैंने इसे एक कोशिश की, और यह काम किया !! धन्यवाद!
अभिषेक पोटनिस

8
@AbhishekPotnis यदि आप सोच रहे हैं कि रिबूट ने काम क्यों किया, तो इसका कारण यह हो सकता है: /var/log/apt/history.logउबंटू पर जाँच से पता चला है कि सिस्टम ने स्वचालित रूप से कामेच्छा को अपडेट किया है, जिसे सही ढंग से काम करना जारी रखने के लिए संभवतः पुनरारंभ की आवश्यकता है। मैंने तब से उन अपडेट को इस उम्मीद में अक्षम कर दिया है कि मैं इसे दोबारा नहीं देखूंगा।
जॉन

1
दुर्भाग्य से यह एक स्थायी समाधान नहीं है। समस्या फिर से प्रकट हो सकती है। समाधान एनवीडिया पैकेज ( nvidia-390) का एक नया संस्करण स्थापित करना है । मेरा जवाब नीचे देखें
स्टीफन हॉर्न्ग

1
यह भी मेरे लिए काम किया। कुछ निर्देशों में शामिल हैं sudo reboot nowऔर अन्य नहीं हैं।
rjurney

233

जैसा कि @etal ने कहा, रिबूटिंग इस समस्या को हल कर सकता है, लेकिन मुझे लगता है कि रिबूट किए बिना एक प्रक्रिया से मदद मिलेगी।

चीनी के लिए, मेरे ब्लॉग की जाँच -> 中文版

त्रुटि संदेश

एनवीएमएल: ड्राइवर / लाइब्रेरी संस्करण बेमेल

बता दें एनवीडिया ड्राइवर कर्नेल मॉड्यूल (kmod) का गलत संस्करण है, इसलिए हमें इस ड्राइवर को उतारना चाहिए, और फिर kmod के सही संस्करण को लोड करना चाहिए

उसको कैसे करे ?

सबसे पहले, हमें पता होना चाहिए कि कौन से ड्राइवर लोड किए गए हैं।

lsmod | ग्रीप एनवीडिया

आपको मिल सकता है

nvidia_uvm            634880  8
nvidia_drm             53248  0
nvidia_modeset        790528  1 nvidia_drm
nvidia              12312576  86 nvidia_modeset,nvidia_uvm

हमारा अंतिम लक्ष्य nvidiaमॉड को अनलोड करना है , इसलिए हमें मॉड्यूल को अनलोड करना चाहिएnvidia

sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm

फिर, अनलोड करें nvidia

सुडो रम्मोद नविदिया

समस्या निवारण

यदि आपको कोई त्रुटि मिलती है rmmod: ERROR: Module nvidia is in use, जो इंगित करता है कि कर्नेल मॉड्यूल उपयोग में है, तो आपको उस प्रक्रिया को मारना चाहिए जो कि kmod का उपयोग कर रही है:

सुडो lsof / देव / nvidia *

और फिर उन प्रक्रिया को मार डालो, फिर किमी को अनलोड करना जारी रखें

परीक्षा

पुष्टि करें कि आप सफलतापूर्वक उन kmods उतारना

lsmod | ग्रीप एनवीडिया

आपको कुछ नहीं मिलना चाहिए, फिर पुष्टि करें कि आप सही ड्राइवर को लोड कर सकते हैं

NVIDIA-SMI

आपको सही आउटपुट मिलना चाहिए


3
@suraj यह सिर्फ लिंक नहीं है। जवाब अच्छी तरह से लिखा है। एकमात्र मुद्दा यह है कि उन्होंने अपनी संबद्धता का खुलासा नहीं किया और आपने ऐसा किया।
सागर V

2
@KiralyCraft गलत अब डिस्क पर मौजूद नहीं है, लेकिन फिर भी स्मृति में है। एनवीडिया-एसआईआई मुझे लगता है कि एक नई लोडिंग प्रक्रिया को ट्रिगर करता है।
कोमज़ी

1
प्रतिभाशाली! पता नहीं यह क्या समस्या का कारण था। तो रिबूट करना एक ही काम करता है?
Alys

1
@alys जाहिर है, रिबूटिंग अनलोड होगा और फिर सभी मॉड्यूल को फिर से लोड करेगा।
कॉमज़ी

1
काम किया लेकिन रिबूट करने से समस्या वापस आ गई .. और मेरा संकल्प भी सही नहीं है। यह बिल्कुल साफ स्थापना नहीं है ..
केविन हे

14

इसलिए मुझे यह समस्या हो रही थी, कोई भी अन्य उपचार काम नहीं करता था। त्रुटि संदेश अपारदर्शी था, लेकिन dmesg की जाँच करना महत्वपूर्ण था:

[   10.118255] NVRM: API mismatch: the client has the version 410.79, but
           NVRM: this kernel module has the version 384.130.  Please
           NVRM: make sure that this kernel module and all NVIDIA driver
           NVRM: components have the same version.

हालाँकि मैंने 384 संस्करण को पूरी तरह से हटा दिया था, और किसी भी शेष कर्नेल ड्राइवरों को हटा दिया था nvidia-384*। लेकिन रिबूट के बाद भी मुझे यह मिल रहा था। यह देखने का मतलब है कि कर्नेल अभी भी 384 संदर्भ के लिए संकलित किया गया था, लेकिन केवल 410 को खोज रहा था। इसलिए मैंने अपना कर्नेल पुनः खोज लिया:

# uname -a # find the kernel it's using
Linux blah 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# update-initramfs -c -k 4.13.0-43-generic #recompile it
# reboot

और फिर इसने काम किया।

384 निकालने के बाद, मेरे पास अभी भी 384 फाइलें थीं: /var/lib/dkms/nvidia-XXX/XXX.YY/4.13.0-43-generic/x86_64/module/lib/modules/4.13.0-43-generic/ कर्नेल / ड्राइवरों

मैं locateहर बार फाइल सिस्टम को खोजने के बजाय कमांड (डिफ़ॉल्ट रूप से स्थापित नहीं) का उपयोग करने की सलाह देता हूं ।


आपका बहुत बहुत धन्यवाद! यह उपयोग करने के लिए एक अच्छा विचार है locate nvidia-smi। मैंने कमांड का उपयोग यह पता लगाने के लिए किया कि एक और ड्राइवर स्थापित किया गया था।
हाओ

sudo update-initramfs -c -k uname -rने मेरी मदद नहीं की।
मर्ग्लोम

dmesgआउटपुट:NVRM: API mismatch: the client has the version 418.67, but NVRM: this kernel module has the version 430.26. Please NVRM: make sure that this kernel module and all NVIDIA driver NVRM: components have the same version.
मैर्ग्लोम

9

मुझे failed to initialize NVML: Driver/Library version mismatchअपने एनवीडिया-जीपीयू-तापमान-संकेतक से त्रुटि मिली । और एनवीडिया-एसएमआई किसी भी जानकारी को प्रिंट करने में विफल रहा। मैंने यह खोजने की कोशिश की कि मेरे ubuntu में एनवीडिया ड्राइवर के अन्य संस्करण स्थापित हैं या नहीं। लेकिन मुझे सिर्फ एनवीडिया-ड्राइवर-390 मिला। अंत में, rebootसमस्या को हल करने में मेरी मदद की।


9

शीर्ष -2 उत्तर मेरी समस्या का समाधान नहीं कर सकते हैं। मुझे Nvidia आधिकारिक मंच पर एक समाधान मिला और मेरी समस्या हल हो गई। नीचे की त्रुटि जानकारी ड्राइवर के दो अलग-अलग संस्करणों को अलग-अलग तरीकों से स्थापित करके हो सकती है। उदाहरण के लिए, एप्टीट्यूड और आधिकारिक इंस्टॉलर द्वारा एनवीडिया ड्राइवर स्थापित करें।

NVML को आरंभ करने में विफल: ड्राइवर / लाइब्रेरी संस्करण बेमेल

इस समस्या को हल करने के लिए, केवल निम्नलिखित दो आदेशों में से एक को निष्पादित करने की आवश्यकता है।

sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall

बैश: / usr / bin / nvidia-uninstall: ऐसी कोई फ़ाइल या निर्देशिका नहीं है
Stepan Yakovenko

यह काम करता हैं। कभी-कभी अनइंस्टॉल फ़ाइल मौजूद नहीं है।
Qinsheng झांग

5

यह मेरे लिए Ubuntu 16.04 पर nvidia-348पैकेज (Ubuntu 16.04 पर नवीनतम एनवीडिया संस्करण) का उपयोग करके भी हुआ ।

हालाँकि, मैं प्रॉपराइटरी GPU ड्राइवर्स PPA केnvidia-390 माध्यम से स्थापित करके समस्या का समाधान कर सकता था ।

तो Ubuntu 16.04 पर वर्णित समस्या का समाधान यह कर रहा है:

  • sudo add-apt-repository ppa:graphics-drivers/ppa
  • sudo apt-get update
  • sudo apt-get install nvidia-390

नोट: यह गाइड एक साफ उबंटू इंस्टॉल मानता है। यदि आपके पास पिछले ड्राइवर स्थापित हैं, तो सभी कर्नेल मॉड्यूल को फिर से लोड करने के लिए रिबूट मघ को स्थापित करने की आवश्यकता है।


1
यह और एक पुनरारंभ मेरे लिए यह किया!
साईबोट Sai ’

1

मुद्दा भी था। (मैं ubuntu 18.04 चला रहा हूं)

मैंने क्या किया:

dpkg -l | grep -i nvidia

तब sudo apt-get remove --purge nvidia-381और हर डुप्लिकेट संस्करण, मेरे मामले में मेरे पास 381, 384 और 387 थे)

फिर sudo ubuntu-drivers devicesजो उपलब्ध है उसे सूचीबद्ध करने के लिए

और मैं चुनता हूं sudo apt install nvidia-driver-430

उसके बाद, nvidia-smiसही आउटपुट दिया (रिबूट करने की आवश्यकता नहीं)। लेकिन मुझे लगता है कि संदेह होने पर आप रिबूट कर सकते हैं।

मैंने cuda + cudnn को पुन: स्थापित करने के लिए इस इंस्टॉलेशन का अनुसरण किया।


मुझे नहीं पता कि इसे नीचे क्यों (-1) चिह्नित किया गया था। मैंने इसे 0. बढ़ा दिया। कमांड "dpkg -l | grep -i nvidia" वैध है और दिखाता है कि क्या डिलीट नहीं हुआ है।
गेरार्डग

1

मैं एक CentOS मशीन पर एक सामान्य कर्नेल अद्यतन के बाद इस समस्या का अनुभव किया। चूंकि सभी CUDA और nVidia ड्राइवर और लाइब्रेरी YUM रिपॉजिटरी के माध्यम से स्थापित किए गए हैं, इसलिए मैं निम्नलिखित चरणों का उपयोग करके मुद्दों को हल करने में कामयाब रहा:

sudo yum remove nvidia-driver-*
sudo reboot
sudo yum install nvidia-driver-cuda nvidia-modprobe
sudo modprobe nvidia # or just reboot

इसने सुनिश्चित किया कि मेरा कर्नेल और मेरा nVidia ड्राइवर सुसंगत हैं। मुझे लगता है कि सिर्फ रिबूट करने से कर्नेल मॉड्यूल का गलत संस्करण लोड हो सकता है।


एक जादू की तरह काम किया!
अधिकतम

1

मुझे अपनी गुठली को फिर से शुरू करना होगा और उन सभी पैकेजों को हटाना होगा जो मैंने पहले स्थापित किए हैं (पहली स्थापना के दौरान), कृपया सभी पैकेजों को हटाना सुनिश्चित करें, यहां तक ​​कि नीचे दिए गए आदेशों द्वारा पैकेजों को हटाने के बाद भी

सूद apt-get --purge remove " nvidia "

"libtinfo6: i386" जैसे पैकेज हटाए नहीं जाते

मैं Ubuntu 20.04 और Nvidia-driver-440 का उपयोग कर रहा हूं, इसके लिए आपको छवि के नीचे दिखाए गए सभी पैकेजों को निकालना होगा

हटाने के लिए आवश्यक सभी पैकेजों की सूची:

img

जैसा कि चित्र में दिखाया गया है, सुनिश्चित करें कि जो पैकेज आप स्थापित कर रहे हैं, वह एनवीडिया-ड्राइवर-440 के लिए 207 एमबी का सही आकार का है, यदि यह कम है तो इसका मतलब है कि आपने सभी पैकेजों को नहीं हटाया है।


0

मैंने nvidia ड्राइवर को फिर से इंस्टॉल किया था: इन कमांड को rootमोड में चलाएं :

  1. systemctl isolate multi-user.target

  2. modprobe -r nvidia-drm

  3. Nvidia ड्राइवर को पुनर्स्थापित करें: chmod +x NVIDIA-Linux-x86_64–410.57.run

  4. systemctl start graphical.target

और अंत में जाँच करें nvidia-smi

इसके लिए धन्यवाद: Ubuntu-16.04 / 281.04 को RTX 2080 Ti GPU के लिए Nvidia ड्राइवर और CUDA-10.0 कैसे स्थापित करें

कर्नेल मॉड्यूल 'एनवीडिया-ड्रम' को कैसे उतारना है?


0

पूर्णता के लिए, मैं इस मुद्दे में भी भाग गया। मेरे मामले में यह पता चला है कि क्योंकि मैंने क्लैंग को अपने डिफ़ॉल्ट संकलक (उपयोग करते हुए update-alternatives) के रूप में सेट किया था , हालांकि कोई चेतावनी पोस्ट नहीं करने के बावजूद nvidia-driver-440(जांचना /var/crash/) संकलित करने में विफल रहा apt। मेरे लिए, समाधान का उपयोग करना , वापस apt purge nvidia-*सेट ccकरना gcc, रिबूट करना और फिर से स्थापित करना था nvidia-driver-440


-1

मैंने कंटेनर को एक डॉकटर छवि में रखा। तब मैं इस डॉकटर छवि का उपयोग करके एक और कंटेनर को पुन: बनाता हूं और समस्या दूर हो गई थी।


-1

ये उत्तर मेरे काम नहीं आए:

https://stackoverflow.com/a/43023000/1179925

https://stackoverflow.com/a/45319156/1179925

https://stackoverflow.com/a/54349675/1179925

dmesg

NVRM: API mismatch: the client has the version 418.67, but
NVRM: this kernel module has the version 430.26.  Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.

पुराने ड्राइवर को अनइंस्टॉल करें 418.67और नया ड्राइवर स्थापित करें 430.26(डाउनलोड करें NVIDIA-Linux-x86_64-430.26.run):

sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall
chmod +x NVIDIA-Linux-x86_64-430.26.run
sudo ./NVIDIA-Linux-x86_64-430.26.run
[ignore abort]

cat /proc/driver/nvidia/version

NVRM version: NVIDIA UNIX x86_64 Kernel Module  430.26  Tue Jun  4 17:40:52 CDT 2019
GCC version:  gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)

-1

रिबूट। यदि समस्या अभी भी मौजूद है:

sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia
nvidia-smi

सेंट / आरएचएल के लिए

cd /boot
mv initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -vf initramfs-$(uname -r).img $(uname -r)

फिर

reboot

-3

मेरे मामले के लिए, मैंने nvidia ड्राइवर और फिर cuda स्थापित किया है। मैंने पाया कि यह सिर्फ क्यूडा को इंस्टॉल करके तय किया जा सकता है। https://developer.nvidia.com/cuda-toolkit

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