Je viens d'installer CUDA dans un cahier comme celui-ci:
Sudo apt-get install cuda
Comme dit ici .
La compilation fonctionne parfaitement mais lorsque j'essaie de l'exécuter, j'ai le problème suivant: erreur CUDA dans file.cu:128 code = 35 (cudaErrorInsufficientDriver) "cudaStreamCreate (& (stream [i]))"
Ma version de nvcc:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
Informations sur la carte graphique:
lspci | egrep 'VGA|3D'
00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
02:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)
J'ai également installé VirtualGL, bumblebee-nvidia, primus, freeglut3-dev. Suivant this .
Lorsque j'essaie d'exécuter quelque chose sur bumblebee, j'ai compris ceci: optirun glxspheres64
[ 41.413478] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver
[ 41.413520] [ERROR]Aborting because fallback start is disabled.
pilote nvidia ne fonctionne pas.
nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Il semble que la version nvidia 375 soit installée mais je ne peux pas le faire fonctionner.
whereis nvidia
nvidia: /usr/lib/nvidia /usr/share/nvidia /usr/src/nvidia-375-375.66/nvidia
Et quelques informations sur le conducteur.
modinfo nvidia_375
filename: /lib/modules/4.8.0-54-generic/updates/dkms/nvidia_375.ko
alias: char-major-195-*
version: 375.66
supported: external
license: NVIDIA
srcversion: 68751AFD79A210CEFFB8758
alias: pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends:
vermagic: 4.8.0-54-generic SMP mod_unload modversions
parm: NVreg_Mobile:int
parm: NVreg_ResmanDebugLevel:int
parm: NVreg_RmLogonRC:int
parm: NVreg_ModifyDeviceFiles:int
parm: NVreg_DeviceFileUID:int
parm: NVreg_DeviceFileGID:int
parm: NVreg_DeviceFileMode:int
parm: NVreg_UpdateMemoryTypes:int
parm: NVreg_InitializeSystemMemoryAllocations:int
parm: NVreg_UsePageAttributeTable:int
parm: NVreg_MapRegistersEarly:int
parm: NVreg_RegisterForACPIEvents:int
parm: NVreg_CheckPCIConfigSpace:int
parm: NVreg_EnablePCIeGen3:int
parm: NVreg_EnableMSI:int
parm: NVreg_TCEBypassMode:int
parm: NVreg_UseThreadedInterrupts:int
parm: NVreg_MemoryPoolSize:int
parm: NVreg_RegistryDwords:charp
parm: NVreg_RmMsg:charp
parm: NVreg_AssignGpus:charp
Je pense que cela peut être un problème de version de pilote:
dpkg -l | grep nvidia
ii bumblebee-nvidia 3.2.1-10 AMD64 NVIDIA Optimus support using the proprietary NVIDIA driver
ii nvidia-375 375.66-0ubuntu0.16.04.1 AMD64 NVIDIA binary driver - version 375.66
ii nvidia-375-dev 375.66-0ubuntu0.16.04.1 AMD64 NVIDIA binary Xorg driver development files
ii nvidia-modprobe 375.51-0ubuntu1 AMD64 Load the NVIDIA kernel driver and create device files
ii nvidia-opencl-icd-375 375.66-0ubuntu0.16.04.1 AMD64 NVIDIA OpenCL ICD
ii nvidia-prime 0.8.2 AMD64 Tools to enable NVIDIA's Prime
Qu'est-ce que je rate?
Si votre nvidia-smi
n'a pas réussi à communiquer mais que vous avez installé le pilote plusieurs fois, vérifiez prime-select
.
prime-select query
pour obtenir toutes les options possibles. Vous devriez voir au moins nvidia | intel
.prime-select nvidia
.nvidia is already selected
, sélectionnez-en un autre, par exemple. prime-select intel
, puis revenez à nvidia prime-select nvidia
nvidia-smi
.Vous voudrez peut-être installer cuda toolkit. En utilisant la commande suivante pour l'installer.
Sudo apt install nvidia-cuda-toolkit
Une fois l'installation terminée, redémarrez la machine. nvidia-smi
devrait fonctionner.
Pour les futurs lecteurs:
Je suis sur une instance de machine virtuelle (Google Cloud Platform)
et je suis this Gist pour installer Cuda
et CuDNn
sur ma machine virtuelle.
J'ai dû télécharger manuellement la partie CuDNn
. (Il suffit de le mettre là-bas.)
Passons maintenant à l'erreur:
J'avais ce problème mais un redémarrage complet de l'instance a fait le travail. Et par redémarrage complet, je veux dire arrêter l'instance et la réactiver.
J'espère que ça aidera quelqu'un.