Esto es lo que hice. Es posible que se agreguen cosas adicionales que probablemente no habría tenido que hacer, pero de todos modos las incluiré.
Primero obtenga los controladores del repositorio de ppa. (Diría que esto es necesario antes de la instalación, a menos que desee arriesgarse a un bucle de inicio de sesión de muerte).
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
Luego instale el último controlador. Utilizo el actualizador de GUI en su mayor parte llamado Software y actualizaciones, en la pestaña Controladores adicionales. A partir de hoy, el controlador nvidia 396 está disponible.
Obtenga g ++ - 6 y gcc-6. (Necesario)
sudo apt install g++-6
sudo apt install gcc-6
Puede intentar usar nvidia-cuda-toolkit, pero las rutas a las bibliotecas no me eran familiares. No quería meterme con eso.
(Probablemente me saltearía este, pero vaya si otras cosas están dando problemas)
sudo apt install nvidia-cuda-toolkit
Terminé instalando el archivo de ejecución 9.1 para Ubuntu 17.04. Descargalo. Marque el archivo como ejecutable (hago clic derecho en el archivo en el escritorio). Entra en la terminal y pon. (Necesario)
./cuda_9.1.85_387.26_linux.run --override
Lo instalará utilizando los nuevos compiladores gcc. Le hará un montón de preguntas y querrá que las respondan de inmediato.
Responda sí a la configuración no admitida.
No al controlador nvidia.
Sí, al kit de herramientas
Usé ubicaciones de instalación predeterminadas
Después de que esté instalado, asegúrese de configurar sus rutas. El archivo de ejecución también te dará un recordatorio. Además, la documentación de nvidia le dirá qué exportar.
echo 'export PATH=/usr/local/cuda-9.1/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:$LD_LIBRARY_PATH' >> ~/.bash.rc
source ~/.bashrc
Finalmente, debe configurar enlaces sim para gcc-6 y g ++ - 6 o recibirá una advertencia al compilar su propio código. (Obligatorio)
sudo ln -s /usr/bin/gcc-6 /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/local/cuda/bin/g++
Reinicia el sistema. (Necesario)