-
Star
(217)
You must be signed in to star a gist -
Fork
(50)
You must be signed in to fork a gist
-
-
Save whizzzkid/37c0d365f1c7aa555885d102ec61c048 to your computer and use it in GitHub Desktop.
| # Instructions for 4.14 and cuda 9.1 | |
| # If upgrading from 4.13 and cuda 9.0 | |
| $ sudo apt-get purge --auto-remove libcud* | |
| $ sudo apt-get purge --auto-remove cuda* | |
| $ sudo apt-get purge --auto-remove nvidia* | |
| # also remove the container directory direcotory at /usr/local/cuda-9.0/ | |
| # Important libs required with 4.14.x with Cuda 9.X | |
| $ sudo apt install libelf1 libelf-dev | |
| # Install Intel Graphics Patch Firmwares (This should reboot your system): | |
| bash -c "$(curl -fsSL http://bit.ly/IGFWL-install)" | |
| # Update to 4.14 kernel. nvidia-384 compiles fine with this. | |
| cd /tmp | |
| wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.13/linux-headers-4.14.13-041413_4.14.13-041413.201801101001_all.deb | |
| wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.13/linux-headers-4.14.13-041413-generic_4.14.13-041413.201801101001_amd64.deb | |
| wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.13/linux-image-4.14.13-041413-generic_4.14.13-041413.201801101001_amd64.deb | |
| sudo dpkg -i *.deb | |
| # Add Nvidia repository | |
| sudo add-apt-repository ppa:graphics-drivers/ppa | |
| sudo apt update | |
| # Install via ubuntu drivers | |
| sudo ubuntu-drivers autoinstall | |
| # <optional for ML Folks> Install CUDA 8 (if you're interested in using gpu for ML) ~> requires nvidia stable drivers | |
| # This acts as repo so install it somewhere safe and do not delete | |
| # cuda is now available with membership only, download from https://developer.nvidia.com/cuda-release-candidate-download | |
| sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-rc_9.0.103-1_amd64.deb | |
| sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub | |
| sudo apt-get update | |
| sudo apt-get install cuda | |
| # Update Path to have /usr/local/cuda/bin incase using dotfiles. | |
| # <optional for ML Folks> Install CuDNN for running things like tensorflow | |
| # Download cudnn7 for cuda9 from nvidia https://developer.nvidia.com/cudnn | |
| sudo dpkg -i libcudnn7_7.0.2.43-1+cuda9.0_amd64.deb | |
| # Testing cuda. | |
| $ sudo prime-select intel | |
| $ nvidia-smi | |
| # This should give an error, no drivers found | |
| # Try this | |
| $ sudo prime-select nvidia | |
| # displays CUDA info. | |
| # At this point the nvidia drivers work well enough. Search for "nvidia x server settings" | |
| # in your applications menu and you can switch between intel and nvidia PRIME profiles. | |
| # But the nvidia card is still ON (bbswitch will report it off, but the battery consumption is (20 +- 5) Watts | |
| # You can leave it here if you're not worried about battery but if you are then continue with this. | |
| # Install powertop | |
| sudo apt install powertop | |
| # TLP interferes with bluetooth, better not install it, or remove it completely. | |
| sudo apt remove --purge tlp | |
| # Run powertop: | |
| sudo powertop | |
| # You should see battery discharge around 20w +/- 5W, this eats up my battery 4 times faster. | |
| # Add command line params: | |
| sudo nano /etc/default/grub | |
| # Make the following look like this, do not ask why. | |
| GRUB_CMDLINE_LINUX_DEFAULT='pcie_port_pm=off acpi_backlight=none acpi_osi=Linux acpi_osi=! acpi_osi="Windows 2009"' | |
| sudo update-grub2 | |
| # Install bumblebee - now this is the danger zone, this software has not been updated in a while and I am not sure when will this available. | |
| # Avoid updating your system if you're fine with this. | |
| sudo add-apt-repository ppa:bumblebee/testing | |
| sudo apt update | |
| sudo apt install bumblebee bumblebee-nvidia | |
| # at the time of writing this, the latest is nvidia-381 but cuda 8 requires the stable, which is nvidia-375 | |
| # add them to bumblebee config file. | |
| sudo nano /etc/bumblebee/bumblebee.conf | |
| # Change 'Driver=' to 'Driver=nvidia' | |
| # Change all occurences of 'nvidia-current' to 'nvidia-xxx' | |
| # Change KernelDriver=nvidia-384 | |
| # save and run | |
| sudo service bumblebeed restart | |
| # this should give you daemon already running | |
| sudo bumblebeed | |
| # Since the driver load will now be handled by bumblebee, we need to stop the OS from loading it. | |
| sudo nano /etc/modprobe.d/bumblebee.conf | |
| # Make the following section look like this (the drm line will be added): | |
| #387 | |
| blacklist nvidia-387 | |
| blacklist nvidia-387-drm | |
| blacklist nvidia-387-updates | |
| blacklist nvidia-experimental-387 | |
| # once that is done, you'll need bbswitch dkms module | |
| sudo apt-get install bbswitch-dkms | |
| # Load this with the kernel. | |
| sudo nano /etc/modules-load.d/modules.conf | |
| # add following | |
| i915 | |
| bbswitch | |
| # now make sure nvidia-settings has nvidia prime profile selected. | |
| # So what actually happened: | |
| # The control for switching between graphics has been moved from nvidia's driver to bumblebee. This helps | |
| # maximize battery life because now you can selectively switch between which graphics card to use. In case | |
| # you want to provide access to nvidia gpu for the current application run it using optirun. | |
| # e.g. if you want to run steam with nvidia gpu, run something like: $ optirun steam | |
| # or if you're using gpu to run ml tasks, just run them with optirun and they would work just fine. | |
| # Additional | |
| # TLP is known to interfere with bumblebee, make it avoid using this https://wiki.archlinux.org/index.php/Talk:Bumblebee#Bumblebee_and_TLP_interferening | |
| # Run powertop to see if battery consumption is in check: 10w +/- 5W | |
| # Testing bumblebee | |
| cat /proc/acpi/bbswitch # Ouput:0000:01:00.0 OFF | |
| optirun glxgears -info # Runs the Gears demo | |
| optirun nvidia-smi # Should give an error | |
| sudo prime-select nvidia # Should select nvidia hardware for cuda | |
| optirun nvidia-smi # Outputs: | |
| +-----------------------------------------------------------------------------+ | |
| | NVIDIA-SMI 387.34 Driver Version: 387.34 | | |
| |-------------------------------+----------------------+----------------------+ | |
| | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | |
| | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | |
| |===============================+======================+======================| | |
| | 0 GeForce GTX 1050 Off | 00000000:01:00.0 Off | N/A | | |
| | N/A 29C P0 N/A / N/A | 5MiB / 4041MiB | 2% Default | | |
| +-------------------------------+----------------------+----------------------+ | |
| +-----------------------------------------------------------------------------+ | |
| | Processes: GPU Memory | | |
| | GPU PID Type Process name Usage | | |
| |=============================================================================| | |
| | 0 23052 G /usr/lib/xorg/Xorg 5MiB | | |
| +-----------------------------------------------------------------------------+ | |
| cat /proc/acpi/bbswitch # Still Outputs:0000:01:00.0 OFF which means, we're using nvida hardware only when we run applications using optirun | |
| # Getting mouse freezes, random misses? | |
| dmesg -w | grep psmouse #check if your trackpad is out of sync frequently | |
| # Add this boot flag: | |
| "psmouse.resetafter=0" | |
| # The system loads a blank screen with just a cursor on reboot? | |
| # I found that selecting nvidia and restarting the system would need nvidia to run again, | |
| # but unfortunately we disable nvidia on startup. A simple fix could be adding an alias in your ~/.(bash|zsh)rc | |
| # I always restart my system from the terminal so this makes sure I move back to intel always before restart. | |
| alias reboot="sudo prime-select intel; sudo reboot now" | |
| alias shutdown="sudo prime-select intel; sudo shutdown -h now" | |
| # Other Helpful links: | |
| http://en.community.dell.com/techcenter/os-applications/f/4613/t/19629103 | |
| https://karlgrz.com/dell-xps-15-ubuntu-tweaks/ | |
| https://hemenkapadia.github.io/blog/2016/05/07/Ubuntu-with-Nvidia-Bumblebee.html | |
| https://askubuntu.com/questions/879856/nvidia-prime-cant-switch-to-intel/885487 | |
| http://www.webupd8.org/2016/08/how-to-install-and-configure-bumblebee.html | |
| #Benchmarks | |
| ================================== | |
| GpuTest 0.7.0 | |
| http://www.geeks3d.com | |
| Module: TessMark X64 | |
| Score: 5243 points (FPS: 87) | |
| Settings: | |
| - 1920x1080 windowed | |
| - antialiasing: Off | |
| - duration: 60000 ms | |
| Renderer: | |
| - GeForce GTX 1050/PCIe/SSE2 | |
| - OpenGL: 4.5.0 NVIDIA 384.98 | |
| ================================== | |
| ================================== | |
| GpuTest 0.7.0 | |
| http://www.geeks3d.com | |
| Module: Plot3D | |
| Score: 11340 points (FPS: 189) | |
| Settings: | |
| - 1920x1080 windowed | |
| - antialiasing: Off | |
| - duration: 60000 ms | |
| Renderer: | |
| - GeForce GTX 1050/PCIe/SSE2 | |
| - OpenGL: 4.5.0 NVIDIA 384.98 | |
| ================================== | |
| ================================= | |
| GpuTest 0.7.0 | |
| http://www.geeks3d.com | |
| Module: FurMark | |
| Score: 2670 points (FPS: 44) | |
| Settings: | |
| - 1920x1080 windowed | |
| - antialiasing: Off | |
| - duration: 60000 ms | |
| Renderer: | |
| - GeForce GTX 1050/PCIe/SSE2 | |
| - OpenGL: 4.5.0 NVIDIA 384.98 | |
| ================================== |
Welcome everyone
I updated to 390.48 a couple of days ago and 4.15.18 kernel, the watts are oddly satisfying on idle.

@fayazkhan try reinstalling, I am clueless.
Cheers :)
@whizzzkid it actually wasn't a setup issue, but an issue from steam which had a solve here: ValveSoftware/steam-for-linux#5428 (comment)
This command solves it
primusrun steam -steamos
Hello! Thank you for taking the time to provide clear instructions.
I am running Ubuntu 16.04 on my Dell XPS 15 9560 (UHD screen, 16Gb RAM, 512 SSD etc.) After following the guide, I ended up with a black screen (no cursor) upon reboot. I have a feeling the error has something to do with one of these factors:
- When running sudo bumblebeed , the output was something to the effect of "nvidia" not being found.
- When I ran cat /proc/acpi/bbswitch, the output was 0000:01:00.0 ON
- I installed the V4.14.13 kernel, but sudo ubuntu-drivers autoinstall installed the version 396 driver.
Do you perhaps have any advice how I could get this working properly? At the moment, having removed all nvidia related components, powerstat indicates an average power draw of 25W. I would very much like to get this down to more reasonable figures.
My CPU temperature sits around 50 degrees - which is hotter than the 40 degrees I have read online others are able to achieve. Furthermore, the GPU temperature seems to be at around 60 degrees.
I finally installed Manjaro Arch Linux and suddenly everything works perfectly out of the box, zero configuration required !
@whizzzkid, my setup has stopped working suddenly. I had an abrupt shutdown while steam with
primusrunwas live.Then, when I try to start steam again, it just runs the updater and quits.
This doesn't happen when running
steamin intel or withoptirun, but the performance is just not there.Also I am seeing some weird
dmesgoutput too.