IAM

ARTICLE

Installing CUDA and Caffe on Ubuntu 14.04

Caffe [1] is a popular deep learning framework used within the computer vision community. The first challenge when working with Caffe (at least for me) is setting up CUDA on Ubuntu. In this article, I want to share my experience on how to install CUDA 7 on Ubuntu 14.04.

According to some of my posts, such as Neural Networks and Convolutional Networks - Reading List or Recognizing Handwritten Digits using a Two-Layer Perceptron and the MNIST Dataset as well as my seminar papers Understanding Convolutional Neural Networks and Introduction to Neural Networks, I should already have experimented with Caffe, the deep learning framework from the Berkeley Vision and Learning Center. Caffe does even provide pre-trained models to easily test performance on new datasets and apply convolutional neural networks to new tasks. However, due to my seminar paper inspired by Babenko et al. [2], I finally decided to try Caffe and conduct some experiments for image retrieval (see [2]).

Having a GeForce GTX 660 installed (mainly for gaming purposes), the first challenge is installing CUDA. In the following, I briefly want to share my experience with installing CUDA and Caffe on Ubuntu 14.04 64 bit.

Installing CUDA on Ubuntu 14.04

Update. To check which Nvidida graphic gards support CUDA, see here.

For installing CUDA, I closely followed the Nvidia CUDA Getting Started Guide for Linux. In addition, I frequently consulted the web ... see for example here and here

The CUDA 7 Runtime Installer for Linux 64 bit can be found here. Although, as I realized later, this is not the ideal way to install the Nvidia driver, I am not sure whether CUDA 7 will run on Nvidia drivers installed differently. To get started, we need to install build essentials and extract the downloaded runtime installer:

sudo apt-get install build-essential
cd ~/Downloads
# Path has to be absolute, execution rights might be necessary:
./cuda_7.0.28_linux.run -ectract=~/Downloads/nvidia_insallers;

To be sure, I removed everything from nvidia previously installed on my machine:

sudo apt-get ---purge remove nvidia-*

Then, I disabled the Nouveau driver (the installation will not continue when Nouveau kernel drivers are running). Open /etc/modprobe.d/blacklist.conf and add blacklist nouveau at the end. Now reboot.

After rebooting, I directly switched to the terminal (using Control + Alt + F1) and killed the X server to install the Nvidida driver:

sudo service lightdm stop
sudo ./NVIDIA-Linux-x86_64-346.46.run

After accepting the End-User License Agreement, the pre-install script may fail which was not a problem for me. I also let Nvidia update the Xorg configuration files. After the installation, I activated the Nvidia driver and installed CUDA and the CUDA examples:

sudo modprobe nvidia
sudo ./cuda-linux64-rel-7.0.28-19326674.run
sudo ./cuda-samples-linux-7.0.28-19326674

To test the installation, I compiled the following example:

cd /usr/local/cuda/samples
sudo chown -R david
cd 1_utilities/deviceQuery
make
./deviceQuery

Now, the X server can be started again:

sudo service lightdm start

I also added CUDA to the PATH variable (this line can also be added to .bashrc):

export PATH=/usr/local/cuda-7.0/bin:$PATH

Note: It seems that this is not the proper way to install the Nvidia driver. Every time Ubuntu gets updated, the driver will fail. This manifests in a broken login screen (the login loop). In this case, the driver needs to be reinstalled. So I kept the NVIDIA-Linux-x86_64-346.46.run file and can reinstall the driver (reinstalling CUDA is not required) if necessary.

Installing Caffe

Installing Caffe was simple. I downloaded the source from GitHub and ran:

cd ~/caffe
mkdir build
cd build
cmake ..
make all
make runtest

References

  • [1] Y. Jia and E. Shelhamer and J. Donahue and S. Karayev and J Long and R. Girshick and S. Guadarrama, T. Darrell. Caffe: Convolutional Architecture for Fast Feature Embedding. arXiv preprint arXiv:1408.5093, 2014.
  • [2] A. Babenko, A. Slesarev, A. Chigorin, V. S. Lempitsky. Neural Codes for Image Retrieval. Computing Research Repository abs/1404.1777, 2014.
What is your opinion on this article? Let me know your thoughts on Twitter @davidstutz92 or LinkedIn in/davidstutz92.