NVIDIA® TESLA™ GPU Based Super Computer By : Adam Powell Student # For COSC 3P93
What is a GPU? It is a GPU (Graphical Processing Unit) First introduced in 1999 First non-graphical applications started 2003 Had many problems for non-graphical applications ie. Programmer needed knowledge of API and architecture
Along came CUDA Introduction of CUDA (Compute Unified Device Architecture) Changed the architecture to better suit general programming CUDA is a software and hardware architecture Supports C Programming
Along came CUDA cont. Replaced pixel and vertex pipelines with a single pipeline Added SIMT (single instruction multiple thread) Still programmers asked for more
Next Gen Code Name “Fermi” Improved double precision performance ECC Support (error correction code) True Cache Hierarchy More Shared Memory Faster Context Switching Faster Atomic Operations
“Fermi” Architecture 16 SMs (streaming multiprocessors) Each SM contains 32 CUDA cores Totaling 512 CUDA cores Has 64-bit memory partitions Supports up to 6 GB GDDR5 DRAM Connects to a host CPU via PCI Express
Build Your Own ComponentTypePrice MotherboardAsus P6T7 Ws SuperComputer$ GPUTesla C1060 x 3$ x 3 = $ Display GPUPNY Quadro FX 570$ CPUIntel Core i7 860$ RAM DDR 3Kingston 4GB DDR3$ * 6 = $ Total$
Programming Model Parallel functions are done on the GPU Non parallel code is done on the host CPU Parallel functions are organized in threads/thread blocks/arrays of thread blocks Threads each have it’s own private memory Thread blocks share memory with each thread in it’s block Arrays of blocks share memory for application
Threads and SMs
Development Tools OpenCL – Already talked about by Ryan CUDA C DirectCompute – Supported byt DirectX 10 and DirectX 11 CUDA Fortran Compiler Sadly there is no NVIDIA support for ADA NVIDIA Nexus or NSight
Nexus or Parallel NSight ??? NVIDIA refers to the tool kit for Visual Studio Currently in a private beta Planned to support OpenCL, CUDA C, DirectCompute, Direct 3D and OpenGL It has 3 major components
Parallel NSight 3 components Debugger – Break points – Memory inspection Analyzer – Tool for viewing performance – CPU/GPU Events such as waits and core allocation Graphics Inspector – Texture viewer, vertex buffers, API state
References s/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf s/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf er2-CudaProgrammingModel.pdf er2-CudaProgrammingModel.pdf