CUDA 8 on EMR with g2.2xlarge instance type

By , 2017年2月10日 12:15 下午

Below is a quick recap of the steps to make CUDA 8 working on an single-node EMR cluster with the g2.2xlarge instance type. The challenges here being (1) finding a particular version of the Nvidia driver that would work with CUDA 8, and (2) installing the Nvidia driver and the CUDA Toolkit when there is only very limited disk space on /dev/xvda1.

#
# STEP 1: Install Nvidia Driver
# 367.57 is a version that has been verified to be working with CUDA 8
#
sudo yum install -y gcc kernel-devel-`uname -r`
cd /mnt
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/367.57/NVIDIA-Linux-x86_64-367.57.run
sudo /bin/bash ./NVIDIA-Linux-x86_64-367.57.run
nvidia-smi

#
# STEP 2: Install CUDA Repo
# Since we have limited disk space on /dev/xvda1, we use a symbolic link as a workaround
#
cd /mnt
wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-rhel6-8-0-local-ga2-8.0.61-1.x86_64-rpm
mkdir -p /mnt/cuda-repo-8-0-local-ga2
sudo ln -s /mnt/cuda-repo-8-0-local-ga2 /var/cuda-repo-8-0-local-ga2
sudo rpm -i cuda-repo-rhel6-8-0-local-ga2-8.0.61-1.x86_64-rpm

#
# STEP 3: Install CUDA Toolkit
# Since we have limited disk space on /dev/xvda1, we use a symbolic link as a workaround
#
cd /mnt
mkdir -p /mnt/cuda-8.0
sudo ln -s /mnt/cuda-8.0 /usr/local/cuda-8.0
sudo yum install cuda-toolkit-8-0
export PATH=$PATH:/usr/local/cuda-8.0/bin
nvcc –version

#
# STEP 4: Compile a sample program (deviceQuery) to use CUDA
#
cd /usr/local/cuda-8.0
sudo chown -R hadoop:hadoop samples
cd samples/1_Utilities/deviceQuery
make
./deviceQuery

At this point everything should be all set. I have also compiled and tested some other sample code from the samples folder and they all seemed to work.

A quick example on cuBLAS can be obtained from http://docs.nvidia.com/cuda/cublas/ . Simply copy Example 1 or Example 2 from this web page and save it as test.c, then compile and run the code with the following commands. I have tested both of them and verified them to be working.

#
# STEP 5: Compile and test cuBLAS code
#
nvcc test.c -lcublas -o test
./test

Leave a Reply

Panorama Theme by Themocracy