Building a high performance GPU computing workstation for deep learning – part III
So we have done steps 1-6 in our configuration. Here’s what we have left:
Update ASUS Motherboard BIOS to most current UEFI version.Install Windows 10 Pro via USB to NVMe Drive.Partition (shrink) NVMe Drive in Windows to free up space for UbuntuFormat & Partition 8Tb data driveCreate a bootable USB drive with Ubuntu 16.04LTSTurn off Secure Boot in UEFI BIOS- Install Ubuntu 16.04LTS via USB drive to NVMe free partition
- Install Nvidia 1080Ti Drivers in Ubuntu
- Test both windows and Ubuntu for proper function
- Install CUDA and cuDNN in Ubuntu
- Install Tensorflow, Keras, pytorch, and jupyter in Ubuntu
- Run MNIST, Deep Dream, and small VGG network
- Modify GRUB boot loader (optional) & configure system
So if you’re not there already, enter UEFI BIOS, set the Ubuntu USB into a slot, adjust boot order, and save/exit BIOS.
Install Ubuntu 16.04LTS via USB drive to NVMe free partition
Rebooting will allow the Ubuntu iso to load and you will be given an option to “try Ubuntu” or “install Ubuntu”. If you are nervous and have never used Ubuntu, you might want to select “try” and cruise around Ubuntu to familiarize yourself with the GUI. (realizing of course that you can’t really damage an empty hard drive) The most important icons are the icon with the terminal prompt (>_), the files icon, the settings icon, the firefox icon, and the settings icon in the far upper right corner where you can restart or shut down.
The next screen is the “Preparing to Install Ubuntu”. Tick both checkboxes off as it will save you from doing an apt-get upgrade && apt-get update which is likely to give you a black screen later.
Next screen is Installation Type. Choose “Something Else” Ubuntu loads the GParted program which is its disk partitioning utility. Note: here we are deviating from the Tecmint installation guide What we are doing is an install more along the lines of the Verdict guide, so click here instead. Scroll down to step 8.
Consider where your boot loader will be saved – this is on the bottom labeled “device for boot loader installation” I selected my NVMe drive in its entirety – not any particular partition – and let Ubuntu do its thing. See this discussion for more info. We need to set up the root partition on the NVMe drive (the SSD). Select your unallocated free space and click ‘+’ underneath.
This pops up a window with different parameters. I allocated 25GB to root as Primary & Beginning, & selected EXT4 journaling for root which is represented as ‘/’. I then hit OK.
The HOME partition is next. My placement of home on my HDD was based on some somewhat controversial advice that you shouldn’t put HOME on a SSD with root. As such, I placed HOME on the 8TB HDD (/dev/sda2). Hit + again, I sized it to 200GB, primary & beginning, EXT4 and selected /home. I might not make this choice again – the SSD is rock stable in daily use, and I perceive all I did was decrease performance.
Next, the SWAP partition. There are a lot of conflicting ideas about swap, with answers ranging from ‘Don’t need it’ to ‘need only 4GB’ to ‘you need at least as much memory in swap as in RAM for hibernation’, and everything in between. With 64GB of DDR4 ram, I don’t think I’m going to be using SWAP frequently. However, with an 8TB HDD, I have storage to burn, so I allocated 100GB to SWAP on /dev/sda2. I doubt I will ever use it or I will ever miss it.
From a use perspective, the current system works great, although I do think I could have gotten a slight speedup from putting HOME on the NVMe. If I had to do it again, (and I probably will configure this in a few months) I would have allocated space 500GB to windows, 400GB to Ubuntu with a 35GB root and a 250GB HOME on the NVMe and the rest fallow.
Take your smartphone and take pictures of the above partitions on your computer as you are doing it. It was really helpful for me, particularly if there is a screw up in installation and you have to re-install ubuntu.
Once this is all done, click on install now and continue.
You will be asked to set a username and password. Ubuntu requires this password FREQUENTLY, so make it something easy to type, for your own sake.
Once you have Ubuntu installed, you can hopefully cruise around and test it out. Don’t apt-get update && apt-get upgrade just yet.
If you get the black screen of death, don’t panic. Refer to this site and previous post.
Install the NVIDIA Drivers.
Head on over to the Nvidia Driver website. I’ve done it for you here with the 1080Ti.
Download the driver. Click on the command line (or right click to open up a terminal) Nvidia instructs you to execute sh ./NVIDIA-Linux-x86_64-384.98.run as root. First, you have to move into firefox’s download directory nd then execute it as root, which implies a ‘sudo’ (superuser do) command and password.
IMHO it is easier to move this into your Desktop directory where you will see it in the GUI and run it there as root with sudo in terminal.
So once downloaded, click on the download arrow in firefox to see the file and drag the file over onto your desktop. Then invoke the terminal prompt, type cd Desktop <enter>. Then execute the driver by:
sudo sh ./NVIDIA-Linux-x86_64-384.98.run
and it should work. Note that newer versions of the driver may have been released since this post was written if you are copying and pasting.
Once you are done, restart the computer. At this point a text menu should come up which allows you to select between Windows and Ubuntu (you only have a few seconds so pay attention). This is the GRUB bootloader. Highlight the Ubuntu option. Hit e, and go to my last blog post where I tell you how to type nomodeset next to quiet splash. Exit, and with luck, everything will come up roses.
Test both Ubuntu and Windows for proper function
In Ubuntu, to check the GPU, pull up a command prompt and type: nvidia-smi <enter> That should bring up information about the GPU, and indicate to you that you installed the Nvidia drivers correctly.
I might switch over to Windows at this point with a reset and ensure that everything there is working out great. I would probably also check and see if I was using the latest driver I from Nvidia in windows as well, and if not update it. There shouldn’t be cross-contamination between the two OS’s. To test your 1080Ti, a neat freeware program is FurMark, which you can download.
To test the GPU’s integrity in Ubuntu, the game Super Tux Cart worked great. Pump up the graphics and be impressed.
In the testing process, don’t be surprised if an update in linux happens and you might lose graphics. Same drill as before, with one exception.
If you have installed the wrong Nvidia driver (like I did at first), you will need to uninstall the Nvidia products and then reinstall them. Now, if you have disabled nouveaux, and uninstalled Nvidia, you may not have a driver present for your graphics system, which gives you black screen of death. So, try real hard to install the right one the first time around as the workarounds get progressively more complicated. In a pinch, remember the console login <ctrl><alt><f1> combination to get into your system text only. From there you can reinstall the proper Nvidia driver and get back to a working system. I’ll detail these solutions in a separate post after the final post on configuration.