Я провел несколько дней на это, и в конце моего остроумия относительно того, как продвинуться.
У меня есть ASUS Zenbook UX303UB с Двойной загрузкой Windows 10 и Ubuntu 16.04. Это имеет NVIDIA GeForce 940M, выделил GPU с 2 ГБ памяти. Я использую Ubuntu, прежде всего, для программирования. Я хочу играть вокруг с некоторыми инструментами глубокого обучения как tensorflow и theano, на который мне сначала нужен CUDA для работы. Только CUDA 8.0rc, кажется, работает с Ubuntu 16.04 официально.
Во-первых, я перешел к веб-сайту NVIDIA и загрузил CUDA 8.0 runfile. Я следовал их инструкциям для установки и сделал так в TTY1, включая помещение в черный список noveau и добавление
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
в конец .bashrc файла.
Когда я пробую тестовый пример, который NVIDIA обеспечивает,
$ cd NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody
$ make
мой вывод:
>>> WARNING - libGLU.so not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
>>> WARNING - gl.h not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
>>> WARNING - glu.h not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
[@] /usr/local/cuda-8.0/bin/nvcc -ccbin g++ -I../../common/inc -m64 -ftz=true -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o bodysystemcuda.o -c bodysystemcuda.cu
[@] /usr/local/cuda-8.0/bin/nvcc -ccbin g++ -I../../common/inc -m64 -ftz=true -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o nbody.o -c nbody.cpp
[@] /usr/local/cuda-8.0/bin/nvcc -ccbin g++ -I../../common/inc -m64 -ftz=true -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o render_particles.o -c render_particles.cpp
[@] /usr/local/cuda-8.0/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o nbody bodysystemcuda.o nbody.o render_particles.o -L/usr/lib/nvidia-361 -lGL -lGLU -lX11 -lglut
[@] mkdir -p ../../bin/x86_64/linux/release
[@] cp nbody ../../bin/x86_64/linux/release
когда я затем делаю
$ ./nbody -benchmark -numbodies=256000 -device=0
Я получаю сообщение
bash: ./nbody: No such file or directory
В процессе диагноза я понял 2 вещи:
1) nvidia-smi
кажется, не работает (nvidia-smi: command not found
)
2) Когда я делаю cat /proc/driver/nvidia/version
Я добираюсь cat: /proc/driver/nvidia/version: No such file or directory
Я затем решил, возможно, существует некоторая проблема с драйвером NVIDIA. Таким образом, я следовал инструкциям по Проблемам с графическим драйвером Nvidia и CUDA после того, как Кв. - получает обновление
В основном, для чистки всех драйверов Nvidia выключите lightdm и введите runlevel3 и установите драйвер NVIDIA runfile с веб-сайта NVIDIA.
Однако существует ошибка установки, и она прерывается.
Я затем перезагрузка и чистка все драйверы Nvidia и делаю a sudo apt-get install nvidia-367
Я возвращаюсь к начальной ситуации теперь. Дополнительная диагностическая информация следующим образом:
$ sudo nvidia-modprobe
sudo: nvidia-modprobe: command not found
$ uname -r
4.4.0-36-generic
$ dpkg -l | grep ii | grep -i linux-headers
ii linux-headers-4.4.0-31 4.4.0-31.50 all Header files related to Linux kernel version 4.4.0
ii linux-headers-4.4.0-31-generic 4.4.0-31.50 amd64 Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii linux-headers-4.4.0-34 4.4.0-34.53 all Header files related to Linux kernel version 4.4.0
ii linux-headers-4.4.0-34-generic 4.4.0-34.53 amd64 Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii linux-headers-4.4.0-36 4.4.0-36.55 all Header files related to Linux kernel version 4.4.0
ii linux-headers-4.4.0-36-generic 4.4.0-36.55 amd64 Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii linux-headers-generic 4.4.0.36.38 amd64 Generic Linux kernel headers
$ dpkg -l | grep -i nvidia
ii bbswitch-dkms 0.8-3ubuntu1 amd64 Interface for toggling the power on NVIDIA Optimus video cards
ii libcuda1-367 367.44-0ubuntu0~gpu16.04.1 amd64 NVIDIA CUDA runtime library
ii nvidia-367 367.44-0ubuntu0~gpu16.04.1 amd64 NVIDIA binary driver - version 367.44
ii nvidia-opencl-icd-367 367.44-0ubuntu0~gpu16.04.1 amd64 NVIDIA OpenCL ICD
ii nvidia-prime 0.8.2 amd64 Tools to enable NVIDIA's Prime
ii nvidia-settings 370.23-0ubuntu0~gpu16.04.1 amd64 Tool for configuring the NVIDIA graphics driver
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Wed_May__4_21:01:56_CDT_2016
Cuda compilation tools, release 8.0, V8.0.26
Любая справка очень ценилась бы, поскольку я очень близко подошел к повреждающейся человечности набор времен!!
Я решил его следующим это учебное руководство: http://kislayabhi.github.io/Installing_CUDA_with_Ubuntu/
Следует за ним свободно, т.е. загружает и устанавливает lastest драйвер с веб-сайта Nvidia вместо того, чтобы загрузить и установить nvidia-367, который рекомендует учебное руководство.