1 <!--#set var="root_directory" value="../.." --><!--#include virtual="$root_directory/shared/header.shtml"-->
3 <h1>Graphics Processing Units (GPUs)</h1>
5 <!--TableOfContents:Begin-->
6 <!--TableOfContents:End-->
10 <p>From <a href="http://en.wikipedia.org/wiki/Graphics_processing_unit">Wikipedia</a>:
11 A graphics processing unit or GPU (also occasionally called visual
12 processing unit or VPU) is a specialized processor that offloads 3D
13 graphics rendering from the microprocessor. It is used in embedded
14 systems, mobile phones, personal computers, workstations, and game
15 consoles. Modern GPUs are very efficient at manipulating computer
16 graphics, and their highly parallel structure makes them more
17 effective than general-purpose CPUs for a range of complex
20 <h2 id="computing">GPU Based Computing</h2>
22 <p>GPU computing is the use of a GPU (graphics processing unit) to do
23 general purpose scientific and engineering computing. The model for
24 GPU computing is to use a CPU and GPU together in a heterogeneous
25 computing model. The sequential part of the application runs on the
26 CPU and the computationally-intensive part runs on the GPU. From the
27 user's perspective, the application just runs faster because it is
28 using the high-performance of the GPU to boost
31 <p><a href= "http://www.nvidia.com/">NVIDIA</a> is
32 foremost in developing such
33 <a href="http://www.nvidia.com/object/GPU_Computing.html">systems</a>.</p>
35 <h2 id="borg3">borg3.physics.drexel.edu</h2>
37 <p><em>borg3.physics.drexel.edu</em> is the system we will use in this
39 <a href="resources/Silicon_Mechanics_Quote_167701_1U_GPU_Server.pdf">configuration</a>.</p>
41 <p>This system harbors two
42 NVIDIA <a href="http://www.nvidia.com/object/product_tesla_m1060_us.html">Tesla
43 M1060</a> GPUs. These are the 1U version (no fan — they relies on the
45 the <a href="http://www.nvidia.com/object/product_tesla_c1060_us.html">Tesla
47 the <a href="http://www.nvidia.com/docs/IO/56483/BD-04111-001_v05.pdf">specifications</a> of this GPU.</p>
49 <h2 id="CUDA">CUDA</h2>
51 <p>From <a href="http://en.wikipedia.org/wiki/CUDA">Wikipedia</a>:
52 CUDA (an acronym for Compute Unified Device Architecture) is a
53 parallel computing architecture developed by NVIDIA. CUDA is the
54 computing engine in NVIDIA graphics processing units or GPUs that is
55 accessible to software developers through industry standard
56 programming languages. Programmers use 'C for CUDA' (C with NVIDIA
57 extensions), compiled through a PathScale Open64 C compiler, to code
58 algorithms for execution n on the GPU. CUDA architecture supports a
59 range of computational interfaces including OpenCL and
60 DirectCompute. Third party wrappers are also available for Python,
61 Fortran, Java and Matlab.</p>
63 <h2 id="learn">Learning CUDA</h2>
66 <li>NVIDIA maintains numerous CUDA tutorials, references and language
67 descriptions on its web site. Look in particular at
68 <a href="http://www.nvidia.com/object/cuda_education.html">Cuda
70 <li>An interesting primer is that
71 of <a href="resources/Seland_2008_Cuda_Programming.pdf">Seland</a>.</li>
73 the <a href="http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUDA_C_Programming_Guide.pdf">CUDA
74 C Programming Guide</a> and other documentation distributed in
75 the <a href="http://www.nvidia.com/object/cuda_get.html">CUDA
77 <li>David Kirk, NVDIA, and Wen-Mei Hwua, ECE, U of Illinos, have
78 written an excellent textbook on
79 CUDA: <a href="http://www.elsevierdirect.com/morgan_kaufmann/kirk/">Programming
81 Processors</a>. Download <a href="Kirk_and_Hwu_DRAFT_Programming_Massively_Parallel_Processors.tar">an
84 book <a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_pref01.html">GPU
85 Gems 3</a> contains great demonstration GPU codes.</li>
90 <!--#include virtual="$root_directory/shared/footer.shtml"-->