Hallo,
ich habe auf einem Server eine Nvidia Geforce GTX 1080 und möchte diese mit CUDA, aber headless, also ohne Monitor und damit auch ohne X-Server-Rattenschwanz betreiben. Da soll unter anderem Tensorflow laufen. Folgendes habe ich gemacht:
sudo apt install nvidia-headless-418
Anschließend neu gestartet. lspci -nnk liefert mir dann folgendes:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104 [GeForce GTX 1080] [10de:1b80] (rev a1) Subsystem: NVIDIA Corporation GP104 [GeForce GTX 1080] [10de:119e] Kernel driver in use: nvidia Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
Danach habe ich dann installiert:
sudo apt install nvidia-cuda-dev nvidia-cuda-toolkit
Nun habe ich Python und Tensorflow-GPU installiert und folgenden code direkt im Pyton-Interpreter eingetippt:
import tensorflow as tf a = tf.constant(1) b = tf.constant(2) c = a * b sess = tf.Session()
An dieser Stelle versuccht Tensorflow nun CUDA aufzurufen, was zu folgender Warnung führt: ("Nur" eine Warnung, weil Tensorflow hier einfach auf der CPU weiter machen würde)
2019-07-29 15:16:44.823665: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcuda.so.1 2019-07-29 15:16:44.824620: E tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected 2019-07-29 15:16:44.824676: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:163] no NVIDIA GPU device is present: /dev/nvidia0 does not exist
Ich verstehe die Fehlermeldung so, dass CUDA die GPU über /dev/nvidia0 ansprechen will, dieses aber nicht findet. Also mal in /dev nachgesehen und es war tatsächlich nicht da. Stattdessen:
/dev/nvidia-uvm /dev/nvidia-uvm-tools
Welche Pakete fehlen, damit ich /dev/nvidia0 kriege?