IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport....

30
spcl.inf.ethz.ch @spcl_eth A. N. ZIOGAS, T AL BEN-NUN, G. FERNANDÉZ, T. SCHNEIDER, M. L UISIER, T. HOEFLER A Data-Centric Approach to Quantum Transport Simulations

Transcript of IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport....

Page 1: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

A. N. ZIOGAS, TAL BEN-NUN, G. FERNANDÉZ, T. SCHNEIDER, M. LUISIER, T. HOEFLER

A Data-Centric Approach to Quantum Transport Simulations

Page 2: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

2

Motivation

electronic devices

electronic components

nanodevices

Source: Intel

Page 3: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

3

CPU Power Density Trends

1

10

100

1000

1985 1990 1995 2000 2005 2010 2015

Pow

er D

ensi

ty (W

/cm

2 )

Year

Source: freeimageslive.co.uk

Source: lululombard (youtube)

Source: Argonne National Laboratory,Idaho National Laboratory

End of Dennard Scaling

Multicore Crisis

Page 4: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

Quantum Mechanical PhenomenaTransistor is

4

Gate

Source

Drain

High-k dielectric

Source-to-drain Tunneling

Source DrainChannel

Energy

CB Edge

ONOFF

Page 5: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

5

Characteristics of Nanotransistors

Page 6: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

6

Quantum Transport Simulation

Energy/Momentum

Channel

Channel

(𝐸𝐸, 𝑘𝑘)

(𝐸𝐸, 𝑘𝑘)

(𝜔𝜔1, 𝑞𝑞1)(𝐸𝐸 + ℏ𝜔𝜔1,𝑘𝑘 − 𝑞𝑞1)

𝐸𝐸 + ℏ(𝜔𝜔1−𝜔𝜔2 , 𝑘𝑘 − 𝑞𝑞1 − 𝑞𝑞2) (𝜔𝜔2, 𝑞𝑞2)

Energy/Momentum

Ballistic Transport

Incoherent Transport

Phonons: Crystal Vibrations

Page 7: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

7

Workflow of Quantum Transport Simulation

Creation of Input Parameters(Hamiltonian, Hessian matrices etc.)

Non-Equilibrium Green's Function(NEGF) Solver Poisson Solver

𝑯𝑯,𝜱𝜱

𝒑𝒑(𝒓𝒓)

𝑽𝑽(𝒓𝒓)

Focus of this work

2 times GB finalist

Need for ab initio model (DFT)

<1% of runtime

Negligible % of runtime

Page 8: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

8

OMEN Model

𝑁𝑁𝑜𝑜𝑜𝑜𝑜𝑜 ≥ 10

𝑁𝑁3𝐷𝐷 = 3𝒘𝒘 ≥ 𝟒𝟒𝟒𝟒𝟒𝟒

𝑵𝑵𝒂𝒂 ≥ 𝟏𝟏𝟏𝟏,𝟏𝟏𝟏𝟏𝟏𝟏

𝑵𝑵𝒃𝒃 ≥ 𝟑𝟑𝟏𝟏

Page 9: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

9

OMEN Model

𝑁𝑁𝑘𝑘𝑧𝑧 ≥ 20 𝑁𝑁𝑞𝑞𝑧𝑧 ≥ 20

𝑁𝑁𝐸𝐸 ≥ 1,000 𝑁𝑁𝜔𝜔 ≥ 50

Page 10: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

10

NEGF Mathematical Formulation

Electrons 𝑮𝑮 𝑬𝑬,𝒌𝒌𝒛𝒛 Phonons 𝑫𝑫 𝝎𝝎,𝒒𝒒𝒛𝒛

GF

SSE

SSE

Σ 𝐺𝐺 𝐸𝐸 ± ℏ𝜔𝜔,𝑘𝑘𝑧𝑧 − 𝑞𝑞𝑧𝑧 𝐷𝐷 𝜔𝜔, 𝑞𝑞𝑧𝑧 𝐸𝐸,𝑘𝑘𝑧𝑧

Π 𝐺𝐺 𝐸𝐸,𝑘𝑘𝑧𝑧 𝐺𝐺 𝐸𝐸 + ℏ𝜔𝜔,𝑘𝑘𝑧𝑧 + 𝑞𝑞𝑧𝑧 𝜔𝜔, 𝑞𝑞𝑧𝑧

𝐸𝐸 ⋅ 𝑆𝑆 − 𝐻𝐻 − Σ𝑅𝑅 ⋅ 𝐺𝐺𝑅𝑅 = 𝐼𝐼𝐺𝐺< = 𝐺𝐺𝑅𝑅 ⋅ Σ< ⋅ 𝐺𝐺𝐴𝐴

𝜔𝜔2 − Φ − Π𝑅𝑅 ⋅ 𝐷𝐷𝑅𝑅 = 𝐼𝐼𝐷𝐷< = 𝐷𝐷𝑅𝑅 ⋅ Π< ⋅ 𝐷𝐷𝐴𝐴

NEGF

Page 11: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

11

Assignment to Compute Resources

𝑁𝑁𝑘𝑘𝑧𝑧 𝑁𝑁𝑞𝑞𝑧𝑧

𝑁𝑁𝐸𝐸 𝑁𝑁𝜔𝜔

M, NNodes

Node 1 Node 2 Node 3

Node M

Node M+1

Node 4

Page 12: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

12

Green’s Functions Phase

Electrons 𝑮𝑮 𝑬𝑬,𝒌𝒌𝒛𝒛 Phonons 𝑫𝑫 𝝎𝝎,𝒒𝒒𝒛𝒛

GF

𝐸𝐸 ⋅ 𝑆𝑆 − 𝐻𝐻 − Σ𝑅𝑅 ⋅ 𝐺𝐺𝑅𝑅 = 𝐼𝐼𝐺𝐺< = 𝐺𝐺𝑅𝑅 ⋅ Σ< ⋅ 𝐺𝐺𝐴𝐴

𝜔𝜔2 − Φ − Π𝑅𝑅 ⋅ 𝐷𝐷𝑅𝑅 = 𝐼𝐼𝐷𝐷< = 𝐷𝐷𝑅𝑅 ⋅ Π< ⋅ 𝐷𝐷𝐴𝐴

𝑁𝑁𝑘𝑘𝑧𝑧 𝑁𝑁𝑞𝑞𝑧𝑧

𝑁𝑁𝐸𝐸 𝑁𝑁𝜔𝜔

𝐼𝐼𝑒𝑒 , 𝐼𝐼𝜙𝜙

Embarrassingly parallel computation of 𝑮𝑮/𝑫𝑫 + Reduction for 𝑰𝑰

Page 13: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

13

Scattering Self-Energies Phase

𝑁𝑁𝑘𝑘𝑧𝑧 𝑁𝑁𝑞𝑞𝑧𝑧

𝑁𝑁𝐸𝐸 𝑁𝑁𝜔𝜔

Stencil-like computation for 𝜮𝜮/𝜫𝜫

SSE Σ 𝐺𝐺 𝐸𝐸 ± ℏ𝜔𝜔, 𝑘𝑘𝑧𝑧 − 𝑞𝑞𝑧𝑧 𝐷𝐷 𝜔𝜔, 𝑞𝑞𝑧𝑧 𝐸𝐸, 𝑘𝑘𝑧𝑧

SSE Π 𝐺𝐺 𝐸𝐸, 𝑘𝑘𝑧𝑧 𝐺𝐺 𝐸𝐸 + ℏ𝜔𝜔, 𝑘𝑘𝑧𝑧 + 𝑞𝑞𝑧𝑧 𝜔𝜔, 𝑞𝑞𝑧𝑧

𝟐𝟐𝑵𝑵𝒒𝒒𝒛𝒛𝑵𝑵𝝎𝝎

Page 14: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

14

Motivation for a Data-Centric Framework

Domain Scientist Performance Engineer

C++MPICUDA

Computational Scientist

Page 15: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

15

Problem Formulation

15

template<int TOTALK, int ILP>__global__ void splitK(const thrust::complex<double> * __restrict__ A,

const thrust::complex<double> * __restrict__ B,thrust::complex<double> * __restrict__ C,int Norb, int Nmat, int Nbatch, int Csize) {

int t = blockIdx.x;int i = threadIdx.x*ILP;int j = threadIdx.y;int klen = (Norb * Nmat / TOTALK);int kstart = blockIdx.y;

A += t * Norb * Norb + i + kstart*klen*Norb;B += j + kstart*klen*Norb;

thrust::complex<double> res[ILP] = {0};

for(int k = 0; k < klen; ++k) {auto b = B[0];#pragma unrollfor(int l = 0; l < ILP; ++l)

res[l] += A[l] * b;A += Norb;B += Norb;

}

C += kstart * Csize + t * Norb * Norb + j * Norb + i;for(int l = 0; l < ILP; ++l)

C[l] = res[l];}

Graph Transformations (API, Interactive)

Data-Centric Intermediate Representation (SDFG)

Code Generation

OMEN DaCe OMEN

15,798 C++ Lines 3,155 Python Lines 2,015 SDFG Nodes

Original Application OMEN rewritten with the DaCe framework

@dace.programdef sse_sigma(neigh_idx: dace.int32[NA, NB],

dH: dace.complex128[NA, NB, N3D, Norb, Norb],G: dace.complex128[Nkz, NE, NA, Norb, Norb],D: dace.complex128[Nqz, Nw, NA, NB, N3D, N3D],Sigma: dace.complex128[Nkz, NE, NA, Norb, Norb]):

# Declaration of Map scopefor k, E, q, w, i, j, a, b in dace.map[0:Nkz, 0:NE,

0:Nqz, 0:Nw,0:N3D, 0:N3D,0:NA, 0:NB]:

f = neigh_idx[a, b]dHG = G[k-q, E-w, f] @ dH[a, b, i]dHD = dH[a, b, j] * D[q, w, a, b, i, j]Sigma[k, E, a] += dHG @ dHD

High-Level Program

Data-Centric Framework

Page 16: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

A

B

Jacobi

A[i-1,j] A[i+1,j]A[i,j-1] A[i,j+1]

B[i,j]

[i =1:M-1, j=1:N-1]

A[0:M, 0:N]

B[1:M-1, 1:N-1]

t < T;t=t+1

[i =1:M-1, j=1:N-1]A[i,j]

t ≥ T16

Basic Elements of the Data-Centric IR

DataFine-grained stateless computationsDataflowControl-flowAbstraction of independently parallel computations

Access Node

Tasklet

Memlet

State

Control flow

Map Entry

Map Exit

Ben-Nun et al. “Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures”, SC19.

Page 17: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

17

Data-Centric Representation of OMEN

𝐻𝐻

𝑘𝑘𝑧𝑧,𝐸𝐸

electron RGF

Σ≷

convergence

𝐺𝐺≷

Φ

𝑞𝑞𝑧𝑧 ,𝜔𝜔

phonon RGF

Π≷

𝐷𝐷≷

𝑏𝑏

𝛻𝛻𝐻𝐻

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧 ,𝜔𝜔, 𝑎𝑎, 𝑏𝑏

SSE

Π≷

G≷

Σ≷

D≷

Not 𝑏𝑏

𝑏𝑏GF

SSE

𝑖𝑖++𝑖𝑖=0 𝑞𝑞𝑧𝑧 ,𝜔𝜔𝑘𝑘𝑧𝑧,𝐸𝐸

𝐻𝐻[0:𝑁𝑁𝑘𝑘𝑧𝑧] Φ[0:𝑁𝑁𝑞𝑞𝑧𝑧]Σ≷[0:𝑁𝑁𝑘𝑘𝑧𝑧,0:𝑁𝑁𝐸𝐸]

𝐼𝐼𝑒𝑒 𝐼𝐼𝜙𝜙

Π≷[0:𝑁𝑁𝑞𝑞𝑧𝑧,1:𝑁𝑁𝜔𝜔]

𝐻𝐻[𝑘𝑘𝑧𝑧] Φ[𝑞𝑞𝑧𝑧]Σ≷[𝑘𝑘𝑧𝑧,E] Π≷[𝑞𝑞𝑧𝑧,𝜔𝜔]

𝐺𝐺≷[𝑘𝑘𝑧𝑧,E] 𝐷𝐷≷[𝑞𝑞𝑧𝑧,𝜔𝜔]𝐼𝐼Φ (CR: Sum)

𝐼𝐼Φ (CR: Sum)𝐼𝐼e (CR: Sum)

𝐼𝐼e (CR: Sum)

𝐷𝐷≷[0:N𝑞𝑞𝑧𝑧,1:N𝜔𝜔]

G≷[0:𝑁𝑁𝑘𝑘𝑧𝑧,0:𝑁𝑁𝐸𝐸]

𝛻𝛻𝐻𝐻 G≷ D≷

Π≷ (CR: Sum)Σ≷ (CR: Sum)

Σ≷[…] (CR: Sum)

Π≷[…] (CR: Sum)

𝛻𝛻𝐻𝐻[…] G≷[…] D≷[…]

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧,𝜔𝜔, 𝑎𝑎, 𝑏𝑏

𝐼𝐼e 𝐼𝐼Φ

𝑏𝑏

independentcomputationper slice

atom-neighbordimensions

greaterparallelization

potential to exploit …

Page 18: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

𝑖𝑖=0

18

Caching Computations𝑖𝑖𝑖𝑖𝐻𝐻

𝑘𝑘𝑧𝑧,𝐸𝐸

RGF

Σ≷

𝐺𝐺≷GF

𝑘𝑘𝑧𝑧,𝐸𝐸

𝑖𝑖𝑖𝑖𝐻𝐻 Σ≷[0:𝑁𝑁𝑘𝑘𝑧𝑧,0:𝑁𝑁𝐸𝐸]

𝐼𝐼𝑒𝑒

BC[𝑘𝑘𝑧𝑧,𝐸𝐸] Σ≷[𝑘𝑘𝑧𝑧,E]

𝐺𝐺≷[𝑘𝑘𝑧𝑧,E]

𝐼𝐼e (CR: Sum)

𝐼𝐼e (CR: Sum)

G≷[0:𝑁𝑁𝑘𝑘𝑧𝑧,0:𝑁𝑁𝐸𝐸]

specialize H

boundary conditions

𝑖𝑖𝑖𝑖𝐻𝐻

𝐻𝐻[𝑘𝑘𝑧𝑧,𝐸𝐸]

𝑘𝑘𝑧𝑧,𝐸𝐸

RGF

Σ≷

𝐺𝐺≷GF

𝑘𝑘𝑧𝑧,𝐸𝐸

𝐼𝐼𝑒𝑒

Σ≷[𝑘𝑘𝑧𝑧,E]

𝐺𝐺≷[𝑘𝑘𝑧𝑧,E]

𝐼𝐼e (CR: Sum)

𝐼𝐼e (CR: Sum)

G≷[0:𝑁𝑁𝑘𝑘𝑧𝑧,0:𝑁𝑁𝐸𝐸]

𝐻𝐻[𝑘𝑘𝑧𝑧,𝐸𝐸] BC[𝑘𝑘𝑧𝑧,𝐸𝐸]

3GB per (𝒌𝒌𝒛𝒛,𝑬𝑬)

1GB per (𝒌𝒌𝒛𝒛,𝑬𝑬)

Caching Schemes:• No Cache• Cache BC• Cache BC + specialize H

𝑖𝑖𝑖𝑖𝐻𝐻𝑖𝑖𝑖𝑖𝐻𝐻

specialize H

boundary conditions

𝐻𝐻[0:𝑁𝑁𝑘𝑘𝑧𝑧 , 0:𝑁𝑁𝐸𝐸]

𝐻𝐻

𝐵𝐵𝐵𝐵

𝐵𝐵𝐵𝐵[0:𝑁𝑁𝑘𝑘𝑧𝑧 , 0:𝑁𝑁𝐸𝐸]

independent of 𝒊𝒊 𝑖𝑖=0

𝐻𝐻𝐵𝐵𝐵𝐵Data-centric Transformation

Page 19: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

19

Optimization of Sparse Operations

for n in range(N - 2, -1, -1):sig = HF[n] @ gR[n + 1] @ HE[n + 1]

DenseSparse (either CSR or CSC) Method\Operation NN NT TN TT

cublasZgemm 58.382 ms 58.144 ms 58.666 ms 58.315 ms

cusparseZcsrmm2 8.202 ms 6.140 ms 52.722 ms –

cusparseZgemmi 15.198 ms – – –

Approach Time

gemm/gemm 116.881 ms

gemmi(csrmm2(TN, HE, gR), HF) 67.924 ms

csrmm2(NT, HE, csrmm2(NT, HF, gR)) 11.994 msHF and HE are CSR HF is CSR, HE is CSC

Page 20: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

20

Extracting Parallelism

gR[-1] = np.linalg.inv(tmp - sigRr)

gL[-1] = gR[-1] @ tmpL @ Her(gR[-1])

gG[-1] = gR[-1] @ tmpG @ Her(gR[-1])potential for parallelism

independent operationsautomatically detected

auto __a = dace::ArrayViewIn<dace::complex128, 2, 1> (gpu_tmpL, bsize, 1);auto *a = __a.ptr<1>();auto __b = dace::ArrayViewIn<dace::complex128, 2, 1> (gpu_hergR, bsize, 1);auto *b = __b.ptr<1>();

auto __c = dace::ArrayViewOut<dace::complex128, 2, 1> (gpu_tmpL_R, bsize, 1);auto *c = __c.ptr<1>();

int __dace_current_stream_id = 2;cudaStream_t __dace_current_stream = dace::cuda::__streams[__dace_current_stream_id];

cublasSetStream(handle, __dace_current_stream);cublasStatus_t status = cublasZgemm(

handle,CUBLAS_OP_N, CUBLAS_OP_N,bsize, bsize, bsize,const_pone,(cuDoubleComplex*)b, bsize,(cuDoubleComplex*)a, bsize,const_zero,(cuDoubleComplex*)c, bsize

);

cudaEventRecord(dace::cuda::__events[5], dace::cuda::__streams[2]);cudaStreamWaitEvent(dace::cuda::__streams[0], dace::cuda::__events[5], 0);

assignment to streams

synchronization code

Page 21: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

21

Optimizing Coarse-Grained Data Movement

𝛻𝛻𝐻𝐻

SSE

Π≷

G≷

Σ≷

D≷

SSE

𝛻𝛻𝐻𝐻 G≷ D≷

Π≷ (CR: Sum)Σ≷ (CR: Sum)

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧 ,𝜔𝜔, 𝑎𝑎, 𝑏𝑏𝛻𝛻𝐻𝐻[…] G≷[…] D≷[…]

Σ≷[…] (CR: Sum)

Π≷[…] (CR: Sum)

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧,𝜔𝜔, 𝑎𝑎, 𝑏𝑏

𝜵𝜵𝑯𝑯 G≷[…] 𝐃𝐃≷

MPI𝒕𝒕𝒌𝒌𝒛𝒛 , 𝒕𝒕𝑬𝑬, 𝒕𝒕𝒒𝒒𝒛𝒛 , 𝒕𝒕𝝎𝝎, 𝒕𝒕𝒂𝒂, 𝒕𝒕𝒃𝒃

𝒌𝒌𝒛𝒛′ ,𝑬𝑬𝑬,𝒒𝒒𝒛𝒛′ ,𝝎𝝎′,𝒂𝒂′,𝒃𝒃′

Iterates over the tiles (nodes)

Iterates over a single tile(workload of a single node)

Memlets represent the surface of each tile(communication volume needed for each node)

Page 22: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

22

Optimizing Coarse-Grained Data Movement

𝛻𝛻𝐻𝐻

SSE

Π≷

G≷

Σ≷

D≷

SSE

𝛻𝛻𝐻𝐻 G≷ D≷

Π≷ (CR: Sum)Σ≷ (CR: Sum)

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧 ,𝜔𝜔, 𝑎𝑎, 𝑏𝑏𝛻𝛻𝐻𝐻[…] G≷[…] D≷[…]

Σ≷[…] (CR: Sum)

Π≷[…] (CR: Sum)

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧,𝜔𝜔, 𝑎𝑎, 𝑏𝑏

OMEN Decomposition

𝜵𝜵𝑯𝑯 G≷[…] 𝐃𝐃≷

MPI𝒌𝒌𝒛𝒛, 𝒕𝒕𝑬𝑬

𝑬𝑬𝑬, 𝑞𝑞𝑧𝑧 ,𝜔𝜔, 𝑎𝑎, 𝑏𝑏

Method: Broadcast, Reduce, P2P Volume: 𝒪𝒪 𝑁𝑁𝑘𝑘𝑧𝑧𝑁𝑁𝐸𝐸𝑁𝑁𝑞𝑞𝑧𝑧𝑁𝑁𝜔𝜔𝑁𝑁𝑎𝑎𝑁𝑁𝑜𝑜𝑜𝑜𝑜𝑜

2

MPI Invocations: 9𝑁𝑁𝜔𝜔𝑁𝑁𝑞𝑞𝑧𝑧

𝒕𝒕𝒂𝒂𝛻𝛻𝐻𝐻[…] G≷[…] D≷[…]

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧,𝜔𝜔,𝒂𝒂𝑬, 𝑏𝑏

Data-Centric Decomposition

MPI

Method: Collective AlltoallVolume: 𝒪𝒪 𝑁𝑁𝑘𝑘𝑧𝑧 𝑁𝑁𝐸𝐸 + 𝑁𝑁𝜔𝜔 (𝑁𝑁𝑎𝑎 + 𝑁𝑁𝑜𝑜) 𝑁𝑁𝑜𝑜𝑜𝑜𝑜𝑜2

MPI Invocations: 4

DaCeTransform

Page 23: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

23

Optimizing Coarse-Grained Data Movement

050

100150200250300350400450500

3 5 7 9 11

Volu

me

(TiB

)

Nkz

Communication Volume

DaCe OMEN

quadratic growth

88.8x

4.86

431.65

Page 24: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

24

Optimizing Coarse-Grained Data Movement

𝒕𝒕𝒂𝒂𝛻𝛻𝐻𝐻[…] G≷[…] D≷[…]

𝑘𝑘𝑧𝑧,𝐸𝐸, 𝑞𝑞𝑧𝑧,𝜔𝜔,𝒂𝒂𝑬, 𝑏𝑏

MPI

10k atoms

Cluster with 100 nodes

100 atoms per node

Source: Oak Ridge National Laboratory

Source: NVIDIA

27k X

𝒕𝒕𝒂𝒂, 𝒕𝒕𝑬𝑬𝛻𝛻𝐻𝐻[…] G≷[…] D≷[…]

𝑘𝑘𝑧𝑧,𝑬𝑬′, 𝑞𝑞𝑧𝑧 ,𝜔𝜔,𝒂𝒂𝑬, 𝑏𝑏

MPI

Need for flexibility

Page 25: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

25

Optimizing Fine-Grained Data Movement

Map Fission

Data Layout

StridedMultiplication

Page 26: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

26

Mixed Precision

Precision\Implementation cuBLAS DaCe

Double 4.62 ms 0.70 ms

Mixed – Tensor Cores N/A 0.13 ms

cublasGemmStridedBatchedEx

980985990995

1000100510101015102010251030

1 3 5 7 9 11 13 15 17 19 21 23 25

/Aµ[tnerruCcin o rtcel E

]mµ

Itera�on64-bit 16-bit 16-bit (without normaliza�on)

1.E-09

1.E-06

1.E-03

1.E+00

1 5 9 13 17 21 25

Rela�v

e Er

ror

Without norma liza�on

With normal iza�on

Page 27: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

27

OMEN vs DaCe OMEN: Performance

24.5x speedup

3-11 kz points

17x speedup𝒘𝒘 = 𝟐𝟐.𝟏𝟏𝟒𝟒𝟒𝟒

𝑵𝑵𝒂𝒂 = 𝟒𝟒,𝟖𝟖𝟖𝟖𝟒𝟒𝑵𝑵𝒃𝒃 = 𝟑𝟑𝟒𝟒𝑵𝑵𝑬𝑬 = 𝟕𝟕𝟏𝟏𝟖𝟖𝑵𝑵𝝎𝝎 = 𝟕𝟕𝟏𝟏

Page 28: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

28

Beyond OMEN

●●0

25

50

75

100

3420 6840 13680 27360# GPUs

Pflo

p/s

85.45

57.50% of max (HPL)42.55% of peak (theoretical)

90.89

Double precision

Mixed precision

No cache

Cache BC

Cache BC + spec

𝒘𝒘 = 𝟒𝟒.𝟖𝟖𝟒𝟒𝟒𝟒

𝑵𝑵𝒂𝒂 = 𝟏𝟏𝟏𝟏,𝟐𝟐𝟒𝟒𝟏𝟏𝑵𝑵𝒃𝒃 = 𝟑𝟑𝟒𝟒𝑵𝑵𝒌𝒌𝒛𝒛 = 𝟐𝟐𝟏𝟏𝑵𝑵𝑬𝑬 = 𝟏𝟏𝟐𝟐𝟐𝟐𝟏𝟏𝑵𝑵𝝎𝝎 = 𝟕𝟕𝟏𝟏

Page 29: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

29

Beyond OMEN

Variant Atom No. Time [s] Time/Atom [s] Speedup

OMEN 1,064 4,695.70 4.413

DaCe OMEN 10,240 333.36 0.033 140.9x

6,840 GPUs

𝑵𝑵𝒂𝒂 = 𝟏𝟏,𝟏𝟏𝟖𝟖𝟒𝟒𝑵𝑵𝒃𝒃 = 𝟑𝟑𝟒𝟒𝑵𝑵𝒌𝒌𝒛𝒛 = 𝟐𝟐𝟏𝟏𝑵𝑵𝑬𝑬 = 𝟏𝟏𝟐𝟐𝟐𝟐𝟏𝟏𝑵𝑵𝝎𝝎 = 𝟕𝟕𝟏𝟏

Page 30: IOGAS, TAL EN UN ERNANDÉZ CHNEIDER UISIER OEFLER A Data … · 2020-01-11 · Ballistic Transport. Incoherent Transport. Phonons: Crystal Vibrations. spcl.inf.ethz.ch @spcl_eth 7

spcl.inf.ethz.ch@spcl_eth

30

Conclusions

Heat Dissipation IssueQT Simulation

OMEN ApplicationDomain Scientists’ ViewData-Centric View

Optimizing Coarse-Grainedand Fine-Grained DataflowExtracting Parallelism Performance

This project has received funding from the European Research Council (ERC) under grant agreement "DAPP (PI: T. Hoefler)“, by the MARVEL NCCR of the Swiss National Science Foundation (SNSF), and by SNSF grant 175479 (ABIME).

github.com/spcl/dace