Update CUDA reference doc links.
[parallel_computing.git] / content / GPUs / index.shtml
1 <!--#set var="root_directory" value="../.." --><!--#include virtual="$root_directory/shared/header.shtml"-->
2
3 <h1>Graphics Processing Units (GPUs)</h1>
4
5 <!--TableOfContents:Begin-->
6 <!--TableOfContents:End-->
7
8 <h2 id="GPU">GPUs</h2>
9
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
18 algorithms.</p>
19
20 <h2 id="computing">GPU Based Computing</h2>
21
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
29 performance.</p>
30
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>
34
35 <h2 id="borg3">borg3.physics.drexel.edu</h2>
36
37 <p><em>borg3.physics.drexel.edu</em> is the system we will use in this
38 course. See its
39 <a href="resources/Silicon_Mechanics_Quote_167701_1U_GPU_Server.pdf">configuration</a>.</p>
40
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
44 chassis fan) of
45 the <a href="http://www.nvidia.com/object/product_tesla_c1060_us.html">Tesla
46 C1040</a>. Check
47 the <a href="http://www.nvidia.com/docs/IO/56483/BD-04111-001_v05.pdf">specifications</a> of this GPU.</p>
48
49 <h2 id="CUDA">CUDA</h2>
50
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>
62
63 <h2 id="learn">Learning CUDA</h2>
64
65 <ul>
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
69     Training</a>.</li>
70   <li>An interesting primer is that
71     of <a href="resources/Seland_2008_Cuda_Programming.pdf">Seland</a>.</li>
72   <li>Also look at
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
76                 toolkit</a>.</li>
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
80     Massively Parallel
81     Processors</a>. Download <a href="Kirk_and_Hwu_DRAFT_Programming_Massively_Parallel_Processors.tar">an
82     early draft</a>.</li>
83   <li>The
84     book <a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_pref01.html">GPU
85     Gems 3</a> contains great demonstration GPU codes.</li>
86 </ul>
87
88
89
90 <!--#include virtual="$root_directory/shared/footer.shtml"-->