Download presentation

Presentation is loading. Please wait.

Published byKristofer Waddell Modified about 1 year ago

1
SystemC-AMS(CUDA) Ruru /14

2
Outline Introduction Modeling Formalisms ELN(Electrical Linear Networks) Solve Ordinary Differential Equation Solve Eln-Cluster Workflow SystemC Kernel Solver Performance

3
Introduction Positioning SystemC AMS Extensions

4

5
Introduction Modeling formalisms and use cases

6

7
Modeling Formalisms

8
Electrical Linear Networks ELN

9
Setup of the equation system Kirchhoff’s current law(KCL)

10
Electrical Linear Networks ELN elaboration and simulation phases

11
Problem : Thermo Model Thermo Model : RLC model Solve ELN equation Purpose Using CUDA to Speedup

12
Solve Ordinary Differential Equation Euler’s Method Backward Euler Method

13
SystemC Kernel Solver Eln-cluster Initialization Module(r, l, c …) : modules Node(sca_terminal, sca_node …) : equations Sparse Matrix Spcode

14
Solve Eln-Cluster Workflow Solve Differential Equation ana_solv DATA (Sdata, R, X) Next Cluster Next Timestamp Cluster? Timestamp? …

15
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_solv DATA (Sdata, R, X) GPU ana_solv DATA (Sdata, R, X)

16
Solve Eln-Cluster Workflow Solve Differential Equation ana_solv DATA (Sdata, R, X) Next Cluster Next Timestamp Cluster? Timestamp? … GPU ana_solv DATA (Sdata, R, X)

17
Performance The result is correct No speed up 200 module of one cluster : 75 ms (CPU) 200 module of one cluster : 165 ms (GPU)

18
Thanks for Your Attention!

19
Euler’s Method Question : y’ = f(x, y), x0 < x < b, y(x0) = y0, h is constant xi = x0 + i*h ; (i = ….) 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

20
Backward Euler Method Question : y’ = f(x, y), x0 < x < b, y(x0) = y0, h is constant xi = x0 + i*h ; (i = ….) 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 = *y1^3 First => y1 = y(0) + f(x0, y0)*h = 1-0.5*y0^3 = 0.5 Then recursive… y1 = => => … =>

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google