NVIDIA GPU コンピューティング最新情報～Keplerアーキテクチャを採用した次世代Tesla製品のご紹介～
エヌビディア ジャパン
Tesla Quadro事業部
セールスマネージャー 吉田圭二

NVIDIA Confidential: NDA Required

Name

M2090

M/C2075

M2070

GPU Arch

Fermi

Fermi

Fermi

# of cores

512444488

448

30

Memory size

6 GB

6 GB

6 GB

25

177.6 GB/s

150 GB/s

150 GB/s

20

Memory bandwidth(ECC off)

35

M2090 vs. M2070: 20-30%
Speedup

15

Power Management

Yes

Yes

NoSP

1331

1030

1030

DP

665

515

515

Peak
Performance
In GFlops

1050

Supercomputing

Life Sc

Linpack

AMBER

Oil & Gas
Kirchoff Time
Migration

高い倍精度演算性能と高い信頼性を実現

Material Sc

WL-LSMS

Manufacturing

Abaqus世界最大の GPU コンピューティングイベント！
 2012年5月14～17日にサンノゼで開催
 世界50ヵ国から3,000人が参加
 300以上のセッションで、最先端の GPU コンピューティングの取組みを紹介
 チュートリアルセッション

ウェブサイト
http://www.gputechconf.com

主催: エヌビディア ジャパン
共催: 東京工業大学 GPU コンピューティング研究会
日時: 2012年7月26日（木）午前10時から午後8時

会場: 東京ミッドタウンホール＆カンファレンス（六本木）参加費: 無料
予定参加者: 1,500名
予定協賛会社：40社
イベントサイト：http://www.gputechconf.jp

Kepler
Fastest, Most Efficient HPC Architecture Ever

SMX
Hyper-Q

Dynamic Parallelism

Kepler: Fast & Efficient

SMSMX

Fermi

CONTROL LOGIC

Kepler

3x

CONTROL LOGIC

Perf / Watt32 cores

192 cores1 Petaflop
Just 10 Racks
400 kWattHyper-Q

CPU Cores Simultaneously Run Tasks on Kepler
FERMI

1 MPI Task at a Time

KEPLER

32 Simultaneous MPI Tasks

Hyper-Q

Max GPU Utilization, Slashes CPU Idle Time
100

GPU Utilization %GPU Utilization %100

500500TimeTime

Dynamic Parallelism

GPU Adapts to Data, Dynamically Launches New Threads
CPUFermi GPUCPU

Kepler GPU

Simpler Code: LU Example
LU decomposition (Fermi)

LU decomposition (Kepler)

dgetrf(N, N) {for j=1 to N
for i=1 to 64
idamax<<<>>>
memcpydswap<<<>>>
memcpydscal<<<>>>
dger<<<>>>
next idgetrf(N, N) {dgetrf<<<>>>

memcpydlaswap<<<>>>
dtrsm<<<>>>
dgemm<<<>>>
next jidamax();dswap();
dscal();dger();

dlaswap();
dtrsm();
dgemm();}

dgetrf(N, N) {for j=1 to N
for i=1 to 64
idamax<<<>>>
dswap<<<>>>
dscal<<<>>>
dger<<<>>>
next idlaswap<<<>>>
dtrsm<<<>>>
dgemm<<<>>>
next j}synchronize();}

CPU Code

GPU Code

CPU Code

GPU CodeDynamic Parallelism
Makes GPU Computing Easier & Broadens Reach
Too coarse

Too fine

Just rightKepler Addresses Broader Set of Applications

Tesla K10

Tesla K20

3x Single Precision

3x Double Precision

1.8x Memory Bandwidth

Hyper-Q, Dynamic Parallelism

Image, Signal, Seismic

CFD, FEA, Finance, Physics

Available Now

Available Q4 2012

Q2

Q3

Q4

Supercomputing

Weather / Climate Modeling
Molecular Dynamics
Computational Physics

Life Sciences

Biochemistry
Bioinformatics
Material Science

Manufacturing

Structural Mechanics
Comp Fluid Dynamics (CFD)Electromagnetics

Defense / Govt

Signal Processing
Image ProcessingVideo Analytics

Oil and Gas
Reverse Time Migration
Kirchoff Time Migration

Tesla
K20Tesla
M2090

Fermi
Tesla
M2075

Tesla
K10Tesla K10 specification
Product NameGPU Architecture# of GPUs

M2090

K10

Fermi

Kepler GK104

12

Board

Per GPU

Single Precision Flops

1.3 TF4.58 TF

2.29 TF

Double Precision Flops

0.66 TF

0.190 TF

0.095 TF

# CUDA Cores

5123072

1536

Memory size

6 GB

8 GB

4GB

Memory BW (ECC off)

177.6 GB/s

320 GB/s

160GB/s

PCI-Express

Gen 2: 8 GB/s

Gen 3: 16 GB/s

CUDA 5Nsight™ for Linux & Mac
NVIDIA GPUDirect™
Library Object Linking

NVIDIA Nsight™ for Linux & Mac(and Windows of course)

Kepler Enables Full NVIDIA GPUDirect™
SystemMemoryCPU

GDDR5MemoryGDDR5MemoryGDDR5MemoryGDDR5Memory

GPU1

GPU2

GPU2

GPU1

PCI-e

PCI-e

NetworkCard

Server 1

NetworkNetworkCard

Server 2

SystemMemoryCPU

3rd Party GPU Library Object Linking
Library Vendor
Rest of C
Application

CUDA C/C++
Code

CUDA C/C++
Library CodeCPU
Object Files

CUDA
Object Files

CUDA
Library

CPU-GPU Executable
GPU Code
3rd Party
Library Code

CUDA 4: Whole-Program Compilation & Linking

main.cpp+a.cub.cuc.cuprogram.exe

Include files together to build

CUDA 4 required single source file for a single kernel
No linking external device code

CUDA 5: Separate Compilation & Linking

a.cu
main.cpp

b.cu

c.cu

+

program.exe
a.ob.oc.o

Separate compilation allows building independent object files
CUDA 5 can link multiple object files into one program

CUDA 5: Separate Compilation & Linking

a.cu

b.cu

main.cpp

main2.cpp++

foo.cubar.cu++ab.culiba.o+ab.culib

b.oprogram.exe

program2.exe

Can also combine object files into static libraries
Link and externally call device code

Facilitates code reuse, reduces compile timeThank you