Making your own server

With regards to GPU’s I thought I had issues with adding a 1080ti, the main thing is power. From what I remember of the 820 it’s likely to have a 1kw (1000w) power supply, then the next problem is power supply cables. The 1080ti needs 2 power connections a 6 way and an 8 way. As I had two cards only the 1080ti needed extra power connection. My box had two 6 way cables so all I had extra to buy was a 6 to 8 adapter cable. PCI 3 is good for cpu. So I don’t think you’ll have performance issues.

Be aware that the more you add to the PCI bus the more you interfere with the GPU, if you need power for a data ssd you’ll lose for you gpu

I was a bit worried about installing Ubuntu on a windows machine, but all went well. If it has windows already installed, install to a separate disk if you can. Then leave space in the windows partition for the swap. You can do this once Ubuntu is install, just install parted.

You can check HP for serial number maybe you have warranty left.

Thanks Roger - I already installed Ubuntu on my Win7 machine as a second boot option for flashing my Nividia Jetson. Like you, I was worried but all went well and it works far better than I expected! I am looking forward to the 820, and will order extra power cables if I need to.

Interesting how do you find the Jetson, I have a friend who is into FPGA’s. Not sure it is based on FPGA but I see they have ethernet connections. Looking to get away from GPU’s and create a server of some type

I haven’t really done much with it yet, but flash it and load stuff onto it. :slight_smile: It was a real challenge to build Tensorflow. I have some apps in mind that I want to play with, I hope to do that soon.

Today I came up against a kernel update which blew away my nvidia so no gui and no cuda. It took awhile to find out what was wrong.

The unattended-update facility was to blame for the kernel update. this can be disable several ways.

The brilliant thing I learned is that all is not lost.

The option sudo sh ./NVIDIA-DRIVER.run -K rebuilds the nvidia kernel
see sudo sh ./NVIDIA-DRIVER.run --advanced-options

This will only work if ./NVIDIA-DRIVER.run version is already installed
Which is the situation when a linux kernel gets bumped up a version from a working system. As this happens the nvidia kernel module gets destroyed or lost when the new linux kernel is installed.
There are other ways to manage this.

Can anyone comment on the below desktop for Deep Learning tinker toy?

https://www.costco.com/CyberpowerPC-SLC3600C-Desktop---Intel-Core-i7---11GB-NVIDIA-GeForce-GTX-1080Ti-Graphics.product.100350563.html

Thank you.

Looks like a very nice system. I would install Ubuntu 16.04 LTS though to run the software (shrink the windows partition, then install Ubuntu “next” to it).

Second the Ubuntu comment. Also Costco has fantastic return policy, so really no risk. I’d check if the ssd is a nvme drive. Not a deal breaker, but good to have at this price.

Turns out that multiprocessing on the CPU is trivial with Keras 2, see https://github.com/kzuiderveld/deeplearning1/blob/master/Improving%20training%20speeds%20using%20Keras%202.ipynb for my notebook.

Always look up “power supply tier list” before buying a power supply. Many of them are fires waiting to happen. You generally want to buy the best power supply you can justify, but at minimum stay in the first 2-3 tiers. There is an updated list frequently so make sure you look for the latest.

1 Like

Component price list

  • Intel Core i7-7700K $340

  • Motherboard z170 or z270 $80 - 230

  • Windows 10 Pro $140 oem price

  • GTX 1080Ti $690 - 750

  • 32GB DDR4 RAM $200 - 350 but $200 - 250 is probably a more realistic range

  • 3TB 7200RPM HDD $70 - 170

  • 480GB SSD $130 - 480 but $130 - 190 is probably better

  • 800W PSU $80 - 180

  • Case $40 - 140

  • Liquid Cooler $50 -150

  • Keyboard + mouse $50 - 150

  • Estimated Total $1,870 - 2,690

Overall not bad, $2,200 is probably a 10-15% markup on their cost which is the bottom range of components.

Somehow i am unable to invoke Jupyter notebook on my laptop.

Desktop
chetan@DeepLearning:~$ jupyter notebook –no-browser
[W 09:53:04.317 NotebookApp] server_extensions is deprecated, use nbserver_extensions
[I 09:53:04.319 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 09:53:04.725 NotebookApp] [jupyter_nbextensions_configurator] enabled 0.2.4
[I 09:53:04.726 NotebookApp] Serving notebooks from local directory: /home/chetan
[I 09:53:04.726 NotebookApp] 0 active kernels
[I 09:53:04.726 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I 09:53:04.726 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

Laptop

ssh chetan@ipaddress

ssh -N -f -L localhost:8889:localhost:8888 chetan@ipaddress
chetan@ipaddress’s password:

http://localhost:8889
Error: Connection refused

http://ipaddress:8889

Error: Connection timeout

Since the SSH command is not giving any error message , i am not able to figure out the reason why the localhost:8889 command not invoking jupyter notebook.

please help me in resolving the issue.

I’m not an expert, but isn’t your Jupyter running on port 8888 rather than 8889?

Yes on my desktop , port forwarded to 8889 on my laptop

Why are you doing port forwarding? I’d expect http://ipaddress:8888 to work on your laptop (don’t use localhost).

Thank you @kzuiderveld, @Surya501 and @onebitbrain for your feedback. I may try this machine and test it out.

Get a z270, the z170 is not a good choice for Kaby Lake. Make sure you get a good PSU, Google “PSU Tier List” and pick the most recent post and try to get something in the top 3 brackets, as high as you can spend, this is not a black box part, it is very critical.

If you can, get 16GB sticks if you go with 32GB, that will allow you room to go to 64GB if you need to but ram prices are climbing so if it makes more sense to get 4x 8GB then do it. I wouldn’t waste time with a liquid cooler, it isn’t really necessary and they are not all that much better unless you go with a full liquid system.

A good fan (Noctua) will be pretty close to the closed liquid cooling systems. You can even go with a cheap Evo cooler for like $25. You don’t need much unless you go extreme overclocking, you can get the same overclock 90% of people use with a $25 cooler (if you get a good one). This is what I use and I overclock my cpu https://www.amazon.com/exec/obidos/ASIN/B005O65JXI/lexesto-20/ref=nosim/

For SSD, I would recommend sticking with Samsung EVO series, it is the best option regardless if you go SATA SSD or NVMe.

For the nVidia card I would recommend the MSI Gaming X edition or EVGA (not ideal but popular). I would avoid the founder cards as they have improper cooling, especially for extended 100% loads that you see with ML.

I would use Linux for ML and not Windows. Dual Booting to windows is fine if that is your plan, but Windows is too much of a problem once you get out of Part 1.

1 Like

why did you install python3.4? as far as I understood we need python2

I am trying to use Azure NC6 machine and the speed is pretty slow (~600+ seconds for lesson 1 notebook training)
Any suggestion?
I am using python 3.6 and Keras 2 as in here.
Using tensorflow as backend with keras.json with:

{
    "floatx": "float32",
    "epsilon": 1e-07,
    "backend": "tensorflow",
    "image_data_format": "channels_last"
}

update: I moved to NC12, two GPU and still very slow. When I do nvidia-smi it seems like only one GPU it working
Opened a dedicated thread for this problem here

Many thanks for everyone posting here their configs!
This is really the best almost one stop place for building your server.

Here is the config that worked for me in Ubuntu 16.04 ( a slight modification of Jeremy’s code):

# This script is designed to work with ubuntu 16.04 LTS
# Key issues
# - open-cv
# - keras version


# ensure system is updated and has basic build tools
sudo apt-get update
sudo apt-get --assume-yes upgrade
sudo apt-get --assume-yes install tmux build-essential gcc g++ make binutils
sudo apt-get --assume-yes install software-properties-common

# download and install GPU drivers
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.44-1_amd64.deb" -O "cuda-repo-ubuntu1604_8.0.44-1_amd64.deb"

sudo dpkg -i cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get -y install cuda
sudo modprobe nvidia
nvidia-smi

# install Anaconda for current user
mkdir downloads
cd downloads
wget "https://repo.continuum.io/archive/Anaconda2-4.2.0-Linux-x86_64.sh" -O "Anaconda2-4.2.0-Linux-x86_64.sh"
bash "Anaconda2-4.2.0-Linux-x86_64.sh" -b

echo "export PATH=\"$HOME/anaconda2/bin:\$PATH\"" >> ~/.bashrc
export PATH="$HOME/anaconda2/bin:$PATH"
conda install -y bcolz
conda upgrade -y --all

# install and configure theano
pip install theano
echo "[global]
device = gpu
floatX = float32
[cuda]
root = /usr/local/cuda" > ~/.theanorc

# install and configure keras
pip install keras==1.2.2
mkdir ~/.keras
echo '{
    "image_dim_ordering": "th",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "theano"
}' > ~/.keras/keras.json

# install cudnn libraries
wget "http://platform.ai/files/cudnn.tgz" -O "cudnn.tgz"
tar -zxf cudnn.tgz
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/* /usr/local/cuda/include/

# configure jupyter and prompt for password
jupyter notebook --generate-config
jupass=`python -c "from notebook.auth import passwd; print(passwd())"`
echo "c.NotebookApp.password = u'"$jupass"'" >> $HOME/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False" >> $HOME/.jupyter/jupyter_notebook_config.py

# clone the fast.ai course repo and prompt to start notebook
cd ~
git clone https://github.com/fastai/courses.git
echo "\"jupyter notebook\" will start Jupyter on port 8888"
echo "If you get an error instead, try restarting your session so your $PATH is updated"

Also an amazing blog post about GPUs for deep learning and its TLDR message

Also if you happen to speak Russian, here is my PC config