systemc -ams(cuda)

20
SystemC-AMS(CUDA) Ruru 2012 8/14

Upload: jonah-clements

Post on 01-Jan-2016

71 views

Category:

Documents


1 download

DESCRIPTION

SystemC -AMS(CUDA). Ruru 2012 8/14. Outline. Introduction Modeling Formalisms ELN(Electrical Linear Networks ) Solve Ordinary Differential Equation Solve Eln -Cluster Workflow SystemC Kernel Solver Performance. Introduction. Positioning SystemC AMS Extensions. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SystemC -AMS(CUDA)

SystemC-AMS(CUDA)

Ruru 2012 8/14

Page 2: SystemC -AMS(CUDA)

Outline

Introduction

Modeling Formalisms

ELN(Electrical Linear Networks)

Solve Ordinary Differential Equation

Solve Eln-Cluster Workflow

SystemC Kernel Solver

Performance

Page 3: SystemC -AMS(CUDA)

Introduction

Positioning SystemC AMS Extensions

Page 4: SystemC -AMS(CUDA)
Page 5: SystemC -AMS(CUDA)

Introduction

Modeling formalisms and use cases

Page 6: SystemC -AMS(CUDA)
Page 7: SystemC -AMS(CUDA)

Modeling Formalisms

Page 8: SystemC -AMS(CUDA)

Electrical Linear Networks

ELN

Page 9: SystemC -AMS(CUDA)

Electrical Linear Networks

Setup of the equation system

Kirchhoff’s current law(KCL)

Page 10: SystemC -AMS(CUDA)

Electrical Linear Networks

ELN elaboration and simulation phases

Page 11: SystemC -AMS(CUDA)

Problem : Thermo Model

Thermo Model :

RLC model

Solve ELN equation

Purpose

Using CUDA to Speedup

Page 12: SystemC -AMS(CUDA)

Solve Ordinary Differential Equation

Euler’s Method

Backward Euler Method

Page 13: SystemC -AMS(CUDA)

SystemC Kernel Solver

Eln-cluster Initialization

Module(r, l, c …) : modules

Node(sca_terminal, sca_node …) : equations

Sparse Matrix

Spcode

Page 14: SystemC -AMS(CUDA)

Solve Eln-Cluster Workflow

Solve Differential Equation

ana_solvDATA (Sdata, R,

X)

Next Cluster

Next Timestamp

Cluster?

Timestamp?

Page 15: SystemC -AMS(CUDA)

Modify ana_solv to GPU

Every eln-cluster

Every time stamp

Workflow

Copy matrix data to GPU

Execute ana_solv by GPU

Copy result data to host

ana_solvDATA (Sdata, R,

X)

GPU ana_solvDATA (Sdata, R,

X)

Page 16: SystemC -AMS(CUDA)

Solve Eln-Cluster Workflow

Solve Differential Equation

ana_solvDATA (Sdata, R,

X)

Next Cluster

Next Timestamp

Cluster?

Timestamp?

GPU ana_solvDATA (Sdata, R,

X)

Page 17: SystemC -AMS(CUDA)

Performance

The result is correct

No speed up

200 module of one cluster : 75 ms (CPU)

200 module of one cluster : 165 ms (GPU)

Page 18: SystemC -AMS(CUDA)

Thanks for Your

Attention!

Page 19: SystemC -AMS(CUDA)

Euler’s Method

Question : y’ = f(x, y) , x0 < x < b , y(x0) = y0 , h is constant

xi = x0 + i*h ; (i = 0 1 2 ….)

yi = y(xi) ~ Yi (Yi is result)

yn+1 = yn + h*f(yn, xn)

Example : y’ = y , y(0) = 1 , h = 0.5

Solve :

y1 = y(0) + y’(0)*h = 1 + 1*0.5 = 1.5

y2 = …

Yi = exp(x) => Y(0.5) = 1.649…

1.5 vs 1.649

Page 20: SystemC -AMS(CUDA)

Backward Euler Method

Question : y’ = f(x, y) , x0 < x < b , y(x0) = y0 , h is constant

xi = x0 + i*h ; (i = 0 1 2 ….)

yi = y(xi) ~ Yi (Yi is result)

yn+1 = yn + h*f(yn, xn)

Example : y’ = -y^3 , y(0) = 1 , h = 0.5

Solve :

y1 = y(0) + f(x1, y1)*h = 1 - 0.5*y1^3

First => y1 = y(0) + f(x0, y0)*h = 1-0.5*y0^3 = 0.5

Then recursive…

y1 = 0.9375 => 0.588 => 0.898 … => 0.7709