User Tools

Site Tools


drexel_cuda_install

5. Installing CUDA with OpenCV and PCL

0) Start

I would suggest starting this on a newly formatted partition of Linux, because if you screw up some things may be broken for good. You have been warned.

1) CUDA INSTALL

Installing CUDA-5.5 in Linux 12.04 LTS (Original Page--below is copied content)

This is a follow up to my previous post which was aimed at CUDA 4.2 on Ubuntu 12.04. Although 12.10 is out, it’s not as stable as I would like it to be – I’d recommend sticking with Ubuntu 12.04 for development unless you have specific reasons to upgrade. With CUDA 5, Nvidia has greatly simplified the installation process for Linux, packaging the CUDA toolkit, the SDK and the development drivers all in a neat little package.

A few points before we begin though -

As always, a working CUDA installation requires a CUDA capable card. Installing CUDA 5 will give you the option of opting for the development drivers or sticking with the regular ones. Personally, I chose the regular ones and they’ve worked out just fine (version 310.19 as of this writing).

STEP I – Driver installation (if you choose the regular drivers)

This section remains almost unchanged. Download the Nvidia drivers for Linux from their website, making sure to select 32 or 64-bit Linux based on your system.

Make sure the requisite tools are installed using the following command -

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

Next, blacklist the required modules (so that they don’t interfere with the driver installation) -

sudo nano /etc/modprobe.d/blacklist.conf

Add the following lines to the end of the file, one per line, and save it when done -

blacklist amd76x_edac blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv

In order to get rid of any nVidia residuals, run the following command in a terminal -

sudo apt-get remove --purge nvidia*

This may take a while, so be patient. Once it’s done, reboot your machine. At the login screen, don’t login just yet. Press Ctrl+Alt+F1 to switch to a text-based login, and switch to the directory which contains the downloaded driver. Run the following commands -

sudo service lightdm stop
chmod +x NVIDIA*.run

where NVIDIA*.run is the full name of your driver. Next, start the installation with -

sudo ./NVIDIA*.run

Follow the onscreen instructions. If the installer throws up an error about nouveau still running, allow it to create a blacklist for nouveau, quit the installation and reboot. In that case, run the following commands again -

sudo service lightdm stop
sudo ./NVIDIA*.run

The installation should now proceed smoothly. When it asks you if you want the 32-bit libraries and if you want it to edit xorg.conf to use these drivers by default, allow both.

Reboot once the installation completes.

STEP II – CUDA toolkit installation

Download the CUDA toolkit (I used the Ubuntu 11.10 64-bit version). Navigate to the directory that contains the downloaded CUDA toolkit package, and run the following command -

chmod +x cuda*.run
sudo ./cuda*.run

where cuda*.run is the full name of the downloaded CUDA toolkit. Accept the license that appears. Next, choose to install the driver if you’ve not done so already (this is the development version). Installation of the driver will require switching to a text-based shell (Ctrl+Alt+F1), stopping lightdm as detailed in the previous step and running the toolkit installer as superuser. The CUDA 5.0 toolkit installation is compulsory, while that of the included samples isn’t. Allow the installer to proceed with default locations unless you have specific reasons for not doing so. This makes for easier troubleshooting in the future.

This process might take a while depending upon your system config. Once it’s done, double check the summary screen to make sure everything is in place. If the installation of the samples fails (which it does more often than not), it’s probably due to one or more missing libraries. In that case, install the required libraries and rerun the installer, choosing to install the samples alone.

To make sure the necessary environment variables (PATH and LD_LIBRARY_PATH) are modified every time you access a terminal, add the requisite lines (from the summary screen) to the end of ~/.bashrc as follows -

32 bit systems -

export PATH=$PATH:/usr/local/cuda-5.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib

64 bit systems -

export PATH=$PATH:/usr/local/cuda-5.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/lib

The paths used above will vary based on the install directory you choose for the toolkit. This wraps up the arguably simpler setup (compared to CUDA 4.x for Linux users), although the samples’ installation still suffers from dependency hell.

STEP III – CUDA samples installation and troubleshooting

While the installation of the samples should be straightforward (simply run the all in one toolkit installer), it’s often not all that easy. If you’re getting an error similar to “Samples installation failed due to missing libraries – libglut.so not found”, it’s typically because the installer looks for libglut.so and not variants (like libglut.so.3). To fix this, we’ll have to create softlinks so the installer can track down these files.

Determine if variants of libglut.so are present as follows -

sudo find /usr -name libglut\*

On my 64-bit installation of Ubuntu 12.04, this output the following text -

/usr/lib/x86_64-linux-gnu/libglut.so.3
/usr/lib/x86_64-linux-gnu/libglut.so.3.9.0
/usr/lib/x86_64-linux-gnu/libglut.a
/usr/lib/x86_64-linux-gnu/libglut.so

Now that a variant of libglut.so (that is, libglut.so.3) has been found, we can create a softlink to it -

sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so.3 /usr/lib/libglut.so

Next, rerun the all in one installer choosing to install only the samples this time around. That should fix the “Missing libraries” error that cropped up previously.

Further reading resources can be found here if you’re looking for books on CUDA and GPGPU programming in general.

Credit for STEP III goes to these release notes (refer section III b – Known issues on CUDA Samples for Linux).

2) OpenCV Install

Go to your working directory/make one

Get the latest repo of OpenCV available

git clone https://github.com/Itseez/opencv.git

Install dependencies (not sure how many of these are actually needed….)

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev 

Install cmake gui

sudo apt-get install cmake-qt-gui

Set proper source (opencv) and build directories (opencv/build)

Click configure

Look through all options for anything related to CUDA and make sure it is checked. If there is a missing CUDA directory then you installed CUDA wrong (if you did this start over with a new partition….)

Now click generate to generate all of your make files. Wait till done then exit.

Go to your build directory

make -j8

(-j8 is a flag to tell your computer to make the file with all 8 cores. Change the 8 to however many cores you currently have.)

sudo make install

At this time you should try out a couple of the tests that they have so graciously provided. Some of the functions may not work but that is OKAY as long as most of them work…some functions will work with some versions of the CUDA SDK and others will not.

Go to some of their sample program code (not the tests) and try to run that–this will really be the determining fa

drexel_cuda_install.txt · Last modified: 2016/10/31 22:06 by dwallace