By default, there is no need to enable OpenCV with CUDA for GPU processing, but during production, when you have heavy OpenCV manipulations to do on image/video files, we can make use of the OpenCV CUDA library to make those operations to run on GPU rather than CPU and it saves a lot of time.

It was not easy as it is said to connect the OpenCV library to enable it with CUDA, I had to go through a painful process for a week to establish the connection properly, also its both time & money consuming process. So this time I want to record the overall process for my future, as well as for others.

For the demonstration, I am renting an EC2 instance with a p3.8xlarge instance in the AWS, which has 4 Nvidia GPUs.

Image for post

Source — AWS EC2 Pricing

So if you need any help in starting an EC2 instance for the first time, you can refer to my previous post on Step by Step Creation of an EC2 Instance in AWS and Access it via Putty & WinSCP and during the process select the GPU instance you require.

Now after ssh-ing into the instance, before we get into the process we need to install a lot of packages to make the environment ready.

_Note: I have consolidated all the commands I ran from start to end and added them at the bottom. If you are more curious find them here in this __link _and follow along.

Run the below commands one after another on your instance and also I have attested the screenshots to compare the outputs against mine.

All the screenshots used hereafter are sourced by the author.

Table of Contents:

  1. Install OpenCV Dependencies, Nvidia CUDA driver, CUDA toolkit
  2. Download OpenCV Source Code
  3. Configure Python Virtual Environment
  4. Determine Your CUDA Architecture Version
  5. Configure OpenCV with Nvidia GPU Support
  6. Compile OpenCV and Create a Symbolic link
  7. References
  8. History of Commands

Step 1: Install OpenCV Dependencies, Nvidia CUDA driver, CUDA toolkit.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install gcc-6 g++-6
sudo apt-get install screen
sudo apt-get install libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libopenblas-dev libatlas-base-dev liblapack-dev gfortran
sudo apt-get install libhdf5-serial-dev
sudo apt-get install python3-dev python3-tk python-imaging-tk
sudo apt-get install libgtk-3-dev
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-driver-418
sudo reboot

#opencv-in-ubuntu #opencv-python #cuda #nvidia #opencv #ubuntu

OpenCV + CUDA + AWS EC2 + (No More Tears)
2.60 GEEK