Interactive GPU Stations (CSE 262)

There are 5 interactive GPUs workstations are available for the course. Like Stampede, all 5 machines are running CUDA version 5.5.

hostnameCPUGPUGPU Compute Capability
cseclass03-074-core 8-thread Intel Core i7 950GTX 460 (Fermi)2.1

The cseclass machines are all Intel based and have Fermi GPUs (device capability 2.1): GTX 460's each with 336 cores configured as 7 multiprocessors with 48 cores.


Setting up your environment

The interactive CSE machines (cseclassNN, N=03-07) share the same file system. To get started, log in to any of the CSE systems, and modify the .bashrc and .bash_profile files. Copy the files BASHRC and PROFILE, located in $PUB to the end of the .bashrc and .bash_profile which are located in your home directory. Log out, and log in.

You'll get an augmented PATH, a few handy commands, and a pre-defined environment variable, called PUB:

/class/public/cse262-wi15

CUDA

You've been provided with simple CUDA program to get your started. Use this app to establish that your environment has been set up correctly and that you can compile and run a CUDA program. The app, incrArr, is located in $PUB/Examples/CUDA. (This directory structure is set up on all course hardware testbeds).

Create a copy of incrArray in your home directory, then compile ("Make") and run the executable as you would a conventional one. The program increments an array and it shows you the basics of CUDA such as how to manage storage on the device (the GPU) and to take timings.

The output of incrArr includes information about the hardware and should look something like this:

1 Devices

Device 0 has 7 cores
Device # 0 has 0.999207 GB global memory
Device is a GeForce GTX 460, capability: 2.1
CUDA Driver version: 5050, runtime version: 5050

sm_21
N = 8388480, reps = 10

Success!

N = 8388480, block size = 128
reps: 10

Device running time: Total (0.094838 sec.), Compute (0.005144 sec.)

You'll notice that the Makefile provided with incrArr includes an "arch" file of the form $(PUB)/Arch/arch.* (or arch.*.*.) This file contains various settings needed to compile and build executables and generally it should not be changed. Don't use a private copy since as I may modify the file over the duration of the course. (Many of the Makefiles in the provided codes use conditional statements that enable the Makefile to be portable onto the platforms identified in the course.) The CUDA compiler is called nvcc and your path should already be set up to find it.


Documentation

For documentation, start here:

  1. CUDA C Programming Guide HTML    PDF.
  2. Best Practices Guide HTML     PDF

You can also find more documents here.

Note that while NVIDIA hosts many useful CUDA toolkit documents these are for the latest version of CUDA (6.5). The Developer Zone hosts a good deal of resources, including (free) downloads for the toolkit and drivers, together with downloadable applications.

The latest documentation emphasizes Kepler and Maxwell. Here is the Fermi Architecture Whitepaper and an article that gives an overview of Fermi: Nvidia's 'Fermi' GPU architecture revealed, Scott Watson, tech report.com, Sept 2009.


Maintained by [Thu Jan 8 18:43:36 PST 2015]

Valid XHTML 1.0 Strict   Valid CSS!