In precedenza avevo installato CUDA 7.5 su Ubuntu 14.04 usando l'installazione "deb (rete)" di Nvidia. Ha funzionato per alcuni mesi, fino a quando ho corso sudo apt-get upgrade
oggi. Dopo aver fatto questo, ho riscontrato quanto segue
$ nvidia-smi
modprobe: ERROR: ../libkmod/libkmod-module.c:809 kmod_module_insert_module() could not find module by name='nvidia_352'
modprobe: ERROR: could not insert 'nvidia_352': Function not implemented
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Correre sudo nvidia-smi
non è diverso. Non riesco ad accedere in modalità GUI (ritorna alla schermata di accesso dopo aver inserito la mia password), ma posso accedere al terminale.
Sono stato in grado di ripristinare la funzionalità grafica, tuttavia dopo questo ho difficoltà a reinstallare CUDA. Potete per favore aiutarmi?
Ripristino della grafica
Ho scoperto che riesco a far funzionare di nuovo la grafica facendo
$ sudo apt-get remove --purge nvidia*
$ sudo apt-get autoremove
e poi modificando /etc/apt/sources.list.d/cuda.list
per rimuovere tutte le righe, quindi facendo
$ sudo apt-get install nvidia-352
e riavviare il sistema. Dopo questo, nvidia-smi
funziona di nuovo. Tuttavia, devo ancora reinstallare CUDA.
Prova di reinstallare CUDA
Ho provato a ripristinare il contenuto /etc/apt/sources.list.d/cuda.list
e poi a farlo sudo apt-get install cuda
. Ho notato questo messaggio di errore:
Loading new nvidia-352-352.93 DKMS files...
Building only for 3.13.0-68-generic
Building for architecture x86_64
Building initial module for 3.13.0-68-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-352.0.crash'
Error! Bad return status for module build on kernel: 3.13.0-68-generic (x86_64)
Dopo aver fatto ciò, il sistema torna al suo comportamento all'inizio. Ad esempio, nvidia-smi
stampa il messaggio di errore sopra riportato e dopo la creazione e l'esecuzione deviceQuery
ottengo un errore simile:
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
modprobe: ERROR: ../libkmod/libkmod-module.c:809 kmod_module_insert_module() could not find module by name='nvidia_352'
modprobe: ERROR: could not insert 'nvidia_352': Function not implemented
cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL
Mi sembra di ricordare che quando ho installato CUDA per la prima volta, avrebbe funzionato solo se l'avessi fatto senza aggiornare il nvidia-352
pacchetto dai repository Nvidia. Tuttavia, ora non ho la possibilità di farlo, perché quando sudo apt-get install cuda
lo eseguo aggiorna automaticamente il nvidia-352
pacchetto:
Unpacking nvidia-352 (352.93-0ubuntu1) over (352.63-0ubuntu0.14.04.1) ...
Se provo a impostare esplicitamente le versioni, ottengo
$ sudo apt-get install cuda-drivers nvidia-352=352.63-0ubuntu0.14.04.1 nvidia-352-dev=352.63-0ubuntu0.14.04.1
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies.
cuda-drivers : Depends: nvidia-352 (>= 352.93) but 352.63-0ubuntu0.14.04.1 is to be installed
Depends: nvidia-352-dev (>= 352.93) but 352.63-0ubuntu0.14.04.1 is to be installed
E: Unable to correct problems, you have held broken packages.
In effetti, se provo ad usare la versione 352.63-0ubuntu1
invece di 352.63-0ubuntu0.14.04.1
farlo
$ sudo apt-get install nvidia-352=352.63-0ubuntu1
quindi questo è sufficiente per interrompere il login grafico e causare la nvidia-smi
visualizzazione del messaggio di errore sopra.
Diagnostica
$ lspci | grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1)
$ dpkg -l | grep -i nvidia
ii bbswitch-dkms 0.7-2ubuntu1 amd64 Interface for toggling the power on nVidia Optimus video cards
ii libcuda1-352 352.93-0ubuntu1 amd64 NVIDIA CUDA runtime library
ii nvidia-352 352.93-0ubuntu1 amd64 NVIDIA binary driver - version 352.93
ii nvidia-352-dev 352.93-0ubuntu1 amd64 NVIDIA binary Xorg driver development files
ii nvidia-352-uvm 352.93-0ubuntu1 amd64 Transitional package for nvidia-352
ii nvidia-modprobe 352.93-0ubuntu1 amd64 Load the NVIDIA kernel driver and create device files
ii nvidia-opencl-icd-352 352.93-0ubuntu1 amd64 NVIDIA OpenCL ICD
ii nvidia-prime 0.6.2 amd64 Tools to enable NVIDIA's Prime
ii nvidia-settings 352.93-0ubuntu1 amd64 Tool for configuring the NVIDIA graphics driver