NVIDIA CUDA Development Tools – Tesla

Intoduction

Tesla is NVIDIA’s first dedicated General Purpose GPU. The Tesla name originates from the inventor Nikola Tesla. Because of the very high computational power (measured in floating point operations per second or FLOPS) compared to recent microprocessors, the Tesla products are intended for the high performance computing market. The primary function of Tesla products are to aid in simulations, large scale calculations (especially floating-point calculations), and image generation for professional and scientific fields. The tesla nodes can be accessed and used by the CUDA programming libraries.

NVIDIA CUDA development tools provide four key components

CUDA Driver
CUDA Toolkit
CUDA Software Development Kit (SDK) with code samples
CUDA Documentation

Vendor : nVidia Tesla
Version :5.0
License :Non-commerical

CUDA Driver

Introduction
CUDA drivers are needed to drive the massively parallel Nvidia GPU’s. The CUDA drivers are already installed and loaded with the OS kernel.

Version: NVIDIA Driver 304.54 for Linux

CUDA Toolkit

Introduction
The CUDA Toolkit is a C language development environment for CUDA-enabled GPUs. The CUDA development environment includes

* nvcc C compiler
* CUDA FFT and BLAS libraries for the GPU
* gdb debugger for the GPU
* CUDA programming manual

Release: 5.0

NVIDIA CUDA Compiler

Introduction

CUDA is the compute engine in NVIDIA graphics processing units or GPUs, that is accessible to software developers through industry standard programming languages. Programmers use C for CUDA using the nvcc compiler.

Purpose of nvcc

This compilation trajectory involves several splitting, compilation, preprocessing, and merging steps for each CUDA source file, and several of these steps are subtly different for different modes of CUDA compilation (such as compilation for device emulation, or the generation of fat device code binaries). It is the purpose of the CUDA compiler driver nvcc to hide the intricate details of CUDA compilation from developers.

Vendor : nVidia Tesla
Version : 0.2.1221

Compiling with CUDA

In order to use nvcc to compile cuda programs, following environmental setup is requried:

CSH – Shell:

Add the following lines in your .cshrc file
setenv CUDA_INSTALL_PATH /usr/local/cuda-5.0
set path=(/usr/local/cuda-5.0/bin $path)
setenv LD_LIBRARY_PATH /usr/local/cuda-5.0/lib64

Run the command source .cshrc

BASH – Shell:

Add the following lines in your .bashrc file

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

Run the command source .bashrc 

nvcc filename.cu

CUDA SDK

Introduction

The CUDA Developer SDK provides examples with source code and utilities to help you get started writing software with CUDA. The SDK includes dozens of code samples covering a wide range of applications like

* Parallel bitonic sort
* Matrix multiplication
* Matrix transpose
* Performance profiling using timers
* Parallel prefix sum (scan) of large arrays

In Tesla cluster, Nvidia CUDA SDK are installed in

/home/sysadmin/NVIDIA_GPU_Computing_SDK/

To run the sample cuda programs

For C Shell

Add the following line in .cshrc file


set path=($path/home/sysadmin/NVIDIA_GPU_Computing_SDK/C/bin/linux/release)

Run the command source .cshrc

For Bash shell

Add the following line in .bashrc file

export PATH=$PATH:/home/sysadmin/NVIDIA_GPU_Computing_SDK/C/bin/linux/ release

Run the command source .bashrc

To run a sample program
histogram

The source files are located in
/home/sysadmin/NVIDIA_GPU_Computing_SDK/C/src/

CUDA Documentation

1.Nvidia CUDA Programming Guide

2.Nvidia CUDA Best Practices Guide

3.Nvidia CUDA Reference Manual

4.Nvidia CUDA GDB User Manual

5.Nvidia CUDA BLAS (CUBLAS) and CUDA FFT (CUFFT) library documentation

Report Problems to:

If you encounter any problem in using CUDA Development Tools please report to SERC helpdesk at the following email address helpdesk.serc@iisc.ac.in or contact System Administrators in 109, SERC.