m for gpu computing - hpc advisory council · © nvidia corporation 2011 ansys mechanical > 125k...

24
USAGE MODELS FOR GPU COMPUTING Timothy Lanfear

Upload: voquynh

Post on 18-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

USAGE MODELS FOR GPU

COMPUTING

Timothy Lanfear

© NVIDIA Corporation 2011

PHYSICAL USAGE

© NVIDIA Corporation 2011

Underground Movement

© NVIDIA Corporation 2011

Gaming Cards in the Data Centre!

© NVIDIA Corporation 2011

GPU Servers Go Mainstream

®

Tesla S870

Dec 2007

Tesla S1070 / M1060

2008-2009

Tesla M2050 / M2070

2010

© NVIDIA Corporation 2011

The World’s Fastest Supercomputer

Tianhe-1A

2.507 Petaflop

7168 Tesla M2050 GPUs

National Supercomputing Center in

Tianjin

© NVIDIA Corporation 2011

APPLICATION USAGE

© NVIDIA Corporation 2011

Commercial Adoption

© NVIDIA Corporation 2011

ANSYS Mechanical

> 125K Commercial Seats

Faster Better Quality =

© NVIDIA Corporation 2011

MATLAB

1 million+ Users in 175+ Countries

3,500+ Universities Worldwide

1,500+ MATLAB/Simulink Books

GPU Performance in High-Level Programming Tool

Faster Productivity =

© NVIDIA Corporation 2011

COMPLEX GPU SYSTEM USAGE

© NVIDIA Corporation 2011

CUDA 4.0 Highlights

• Share GPUs across multiple threads

• Single thread access to all GPUs

• No-copy pinning of system memory

• New CUDA C/C++ features

• Thrust templated primitives library

• NPP image/video processing library

• Layered Textures

Easier Parallel

Application Porting

• Auto Performance Analysis

• C++ Debugging

• GPU Binary Disassembler

• cuda-gdb for MacOS

New & Improved

Developer Tools

• Unified Virtual Addressing

• NVIDIA GPUDirect™ v2.0

• Peer-to-Peer Access

• Peer-to-Peer Transfers

• GPU-accelerated MPI

Faster

Multi-GPU Programming

© NVIDIA Corporation 2011

NVIDIA GPUDirect™

• Direct access to GPU memory for 3rd

party devices

• Eliminates unnecessary sys mem

copies & CPU overhead

• Supported by Mellanox and Qlogic

• Up to 30% improvement in

communication performance

Version 1.0

for applications that communicate

over a network

• Peer-to-Peer memory access,

transfers & synchronization

• MPI implementations natively

support GPU data transfers

• Less code, higher programmer

productivity

Details @ http://www.nvidia.com/object/software-for-tesla-products.html

Version 2.0

for applications that communicate

within a node

© NVIDIA Corporation 2011

Before GPUDirect v2.0

Required Copy into Main Memory

GPU1

GPU1

Memory

GPU2

GPU2

Memory

PCI-e

CPU

Chip

set

System

Memory

© NVIDIA Corporation 2011

GPUDirect v2.0: Peer-to-Peer Communication

GPU1

GPU1

Memory

GPU2

GPU2

Memory

PCI-e

CPU

Chip

set

System

Memory

Direct Transfers between GPUs

© NVIDIA Corporation 2011

Unified Virtual Addressing Easier to Program with Single Address Space

No UVA: Multiple Memory Spaces

UVA: Single Address Space

System

Memory

CPU GPU0

GPU0

Memory

GPU1

GPU1

Memory

System

Memory

CPU GPU0

GPU0

Memory

GPU1

GPU1

Memory

PCI-e PCI-e

0x0000

0xFFFF

0x0000

0xFFFF

0x0000

0xFFFF

0x0000

0xFFFF

© NVIDIA Corporation 2011

C++ Templated Algorithms & Data Structures: Thrust

Powerful open source C++ parallel algorithms & data structures

Similar to C++ Standard Template Library (STL)

Automatically chooses the fastest code path at compile time

Divides work between GPUs and multi-core CPUs

Parallel sorting @ 5x to 100x faster than STL and TBB

Data Structures

• thrust::device_vector • thrust::host_vector • thrust::device_ptr

• Etc.

Algorithms

• thrust::sort • thrust::reduce • thrust::exclusive_scan

• Etc.

© NVIDIA Corporation 2011

Parallel Nsight 2.0 Highlights

CUDA Toolkit 4.0 Support

Full Microsoft Visual Studio 2010 Platform

Support

Tesla Compute Cluster (TCC) Analysis

PTX Assembly Debugging

CUDA Attach to Process

CUDA Derived Metrics and Experiments

CUDA Concurrent Kernel Trace

CUDA Runtime API Trace

Advanced Conditional Breakpoints

Available Q2 2011

© NVIDIA Corporation 2011

NVIDIA CUDA Summary

New in

CUDA 4.0

Parallel Libraries

Thrust C++ Library Templated Performance Primitive Library

NVIDIA Library Support Complete math.h

Complete BLAS Library (1, 2 and 3)

Sparse Matrix Math Library

RNG Library

FFT Library (1D, 2D and 3D)

Video Decoding Library (NVCUVID)

Video Encoding Library (NVCUVENC)

Image Processing Library (NPP)

Video Processing Library (NPP)

3rd Party Math Libraries

CULA Tools (EM Photonics)

MAGMA Heterogeneous LAPACK

IMSL (Rogue Wave)

VSIPL (GPU VSIPL)

Tools

Parallel Nsight Pro 2.0

NVIDIA Tools Support Parallel Nsight

for MS Visual Studio

cuda-gdb Debugger

with multi-GPU support

CUDA/OpenCL Visual Profiler

CUDA Memory Checker

CUDA C SDK

CUDA Disassembler

NVML

CUPTI

3rd Party Developer Tools Allinea DDT

RogueWave /Totalview

Vampir

Tau

CAPS HMPP

Platform

GPUDirecttm (v 2.0)

Peer-Peer Communication

Hardware Features ECC Memory

Double Precision

Native 64-bit Architecture

Concurrent Kernel Execution

Dual Copy Engines

6GB per GPU supported

Operating System Support MS Windows 32/64

Linux 32/64

Mac OS X 32/64

Designed for HPC Cluster Management

GPUDirect

Tesla Compute Cluster (TCC)

Multi-GPU support

Programming Model

Unified Virtual Addressing

C++ new/delete

C++ Virtual Functions

C support NVIDIA C Compiler

CUDA C Parallel Extensions

Function Pointers

Recursion

Atomics

malloc/free

C++ support Classes/Objects

Class Inheritance

Polymorphism

Operator Overloading

Class Templates

Function Templates

Virtual Base Classes

Namespaces

Fortran Support CUDA Fortran (PGI)

© NVIDIA Corporation 2011

FUTURE GPU USAGE

© NVIDIA Corporation 2011

Echelon Team

© NVIDIA Corporation 2011

Self-Aware OS

Self-Aware Runtime

Locality-Aware Compiler & Autotuner

Echelon System

Cabinet 0 (C0) 2.6PF, 205TB/s, 32TB

Module 0 (M)) 160TF, 12.8TB/s, 2TB M15

Node 0 (N0) 20TF, 1.6TB/s, 256GB

Processor Chip (PC)

L0

C0

SM0

L0

C7

NoC

SM127

MC NIC L20 L21023

DRAM Cube

DRAM Cube

NV RAM

High-Radix Router Module (RM)

CN

Dragonfly Interconnect (optical fiber)

N7

LC

0

LC

7

System Sketch

© NVIDIA Corporation 2011

Dragonfly Interconnect 400 Cabinets is ~1EF and ~15MW

System—Exascale and Beyond

© NVIDIA Corporation 2011

GPU Computing Enables Exascale At reasonable power 2

The GPU is the Computer A general purpose computing engine, not just an accelerator 3

GPU Computing is #1 Today On Top 500 AND dominant on Green 500 1

The Real Challenge is Software 4

GPU Computing is the Future