Making your own server

:slight_smile:

Prices are very volatile because of miners of bitcoin & other crypto currencies :frowning:

1 Like

I’m helping someone set up a workstation (GTX 1080 Ti, etc) for the International Fellowship course that started yesterday. I’ve had it set up for v1 of Deep Learning 1 previously and this worked fine.

Would this script here still be the recommended way to do it? https://github.com/fastai/courses/blob/master/setup/install-gpu.sh — I’ve seen on the fast.ai Paperspace instances that different versions of software are installed. For example, anaconda3 instead of anaconda2, etc.

If this is still good to go I’m just going to try to clone the new fastai repo and try to run the notebooks within.

Hey @ehd - the previous script is not up to date. I updated it to have all the goodies we seem we might need for this course, you can find the script here. It should bring your machine up to speed starting from fresh installation of Ubuntu server 16.04 LTS.

It also comes with an update notebook for lesson one that should work on your local machine (I only tested this on AWS p2 and p3 instances) and it will also pull and unzip the dogs vs cats dataset used in the first lesson.

Good luck with the setup! :slight_smile:

1 Like

@radek You’re a legend, thank you so much! This will make one of the students very happy because a) it’s fast b) it’s cheaper and c) I can’t play Doom anymore when she’s learning :slight_smile:

1 Like

Hello everyone.

I’ve just published a guide on how i got my own Machine Learning rig assembled and installed (i7 6850K, X99 Deluxe II mobo with 2x GTX 1080Ti) with a dual boot Ubuntu 16.04/Win10 and working via remote access.

After much research through this forum (thanks everyone for sharing your tips and builds) i opted for this setup as the best money-to-price ratio hardware i could afford. Getting it setup from scratch was quite a pain though, so i hope the guide will be useful and save you some sweat, in case anyone else ventures on the same path with these specs.

I’d also be interested to know if someone has figured out a “standardized ML speed test” that i could put my machine through and verify that my Ubuntu nvidia settings are optimal?

3 Likes

My personal setup is using ngrok to just tunnel my home computer’s jupyter notebook on my laptop. Easy setup and no real configs to go through as everything is basically being funneled to your comp.

This is really cool! Though I haven’t started the course at all, the scripts work well :D. Thanks!

1 Like

one question @radek. your script recently splits to two: one for Cuda8 and one for Cuda9.
I see the course script is using Cuda8. What is the real difference in terms of the course content, which one shall I use?

CUDA9 + cudnn 7.0.3 (which is what the cuda9 script installs) turned out to be around twice as slow on lesson1 notebook as using the official CUDA8 binaries from pytorch. For a headache free setup, I would recommend using the cuda8 one with p2.xlarge.

1 Like

Hi @radek, I followed your cuda8 script to install stuff in my local machine. Everything goes well but when using browser to access localhost:8888, there is no anacuda kernal listed in jupyter. Do you have any idea why?

Screenshot

Console

❯ which python
/home/finxxi/anaconda3/bin/python
                                                                                                                                                                                              
~
❯ which jupyter
/home/finxxi/anaconda3/bin/jupyter
                                                                                                                                                                                              
~
❯ which pip
/home/finxxi/anaconda3/bin/pip
                                                                                                                                                                                              
~
❯ jupyter notebook
[W 23:52:45.652 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 23:52:45.676 NotebookApp] JupyterLab alpha preview extension loaded from /home/finxxi/anaconda3/lib/python3.6/site-packages/jupyterlab
JupyterLab v0.27.0
Known labextensions:
[I 23:52:45.677 NotebookApp] Running the core application with no additional extensions or settings
[I 23:52:45.680 NotebookApp] Serving notebooks from local directory: /home/finxxi
[I 23:52:45.680 NotebookApp] 0 active kernels 
[I 23:52:45.680 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/
[I 23:52:45.680 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

I think everything is okay :slight_smile: The Python 3 kernel should be the python environment provided by Anaconda.

1 Like

ahh really XD…? This drove me crazy so far. Thanks!

1 Like

@radek the install script for cuda8 doesn’t install cuDNN. Is that intentional ?

Yes, it is :slight_smile: Pytorch devs were kind enough to provide all the necessary binaries (including cuDNN) when we install using conda - I think this is really great :slight_smile: This gives a much greater sense of confidence that everything is set up properly on our box than compiling all this by hand.

It would be cool to create some sort of common speed benchmark to test our configurations. To account for different GPU memory size we can vary batch_size. The latest Keras (2.0.9) makes multi-GPU training easy so we can test things like 2x1070 vs 1080ti. The CPU/HDD can also be tested by using CPU intensive augmentation strategies.
We can compare:

  • pure GPU speed (time spent on some common model/dataset per one epoch)
  • GPU/CPU speed (time spent on heavily augmented data located in memory)
  • GPU/CPU/HDD speed(time spent on heavily augmented images located on HDD)
  • Multi-GPU vs. more powerful single GPU.
    We can pick some standard dataset like CIFAR100 that comes with Keras.

Great idea, was thinking the same. And i believe the more novice portion of the ML community (such as myself) would benefit from such a benchmark, to know if we’ve configured our libraries/drivers correctly…

Anyone more knowledgeable has any idea how should we start on this topic?

Tensorflow.org has a methodology specified for drawing their own benchmarks , and they have provided the scripts they have used. That can be a starting point.

1 Like

Note: The vgg16 model put forward in the course added batch normalization to the model, which wasn’t available in the original VGG16. Also, there are better options for GPUs available now, obviously, such as the 1080 Ti or the new 1070 Ti cards. The next genration Volta GPU, which has “tensor units” optimized for operations needed by cuDNN is currently only available in pro-level Tesla cards. Apparently, NVIDIA likes to sell off the Pascal GPUs for as long as possible until the large Volta dies can be produced with satisfactory yield.

Just posted my completed build to PcPartPicker (Intel 8700K, 1080Ti, Intel Optane 900P 480GB XPoint SSD).

Small, Silent, Powerful Machine Learning System