Function: loadAtomsBuffer | Module: exec | Source: haloExchange.c:365-394 | Coverage: 0.06% |
---|
Function: loadAtomsBuffer | Module: exec | Source: haloExchange.c:365-394 | Coverage: 0.06% |
---|
/home/hbollore/qaas-runs/170-265-5545/intel/CoMD/build/CoMD/CoMD/src-openmp/haloExchange.c: 365 - 394 |
-------------------------------------------------------------------------------- |
365: AtomMsg* buf = (AtomMsg*) charBuf; |
366: |
367: real_t* pbcFactor = parms->pbcFactor[face]; |
368: real3 shift; |
369: shift[0] = pbcFactor[0] * s->domain->globalExtent[0]; |
370: shift[1] = pbcFactor[1] * s->domain->globalExtent[1]; |
371: shift[2] = pbcFactor[2] * s->domain->globalExtent[2]; |
372: |
373: int nCells = parms->nCells[face]; |
374: int* cellList = parms->cellList[face]; |
375: int nBuf = 0; |
376: for (int iCell=0; iCell<nCells; ++iCell) |
377: { |
378: int iBox = cellList[iCell]; |
379: int iOff = iBox*MAXATOMS; |
380: for (int ii=iOff; ii<iOff+s->boxes->nAtoms[iBox]; ++ii) |
381: { |
382: buf[nBuf].gid = s->atoms->gid[ii]; |
383: buf[nBuf].type = s->atoms->iSpecies[ii]; |
384: buf[nBuf].rx = s->atoms->r[ii][0] + shift[0]; |
385: buf[nBuf].ry = s->atoms->r[ii][1] + shift[1]; |
386: buf[nBuf].rz = s->atoms->r[ii][2] + shift[2]; |
387: buf[nBuf].px = s->atoms->p[ii][0]; |
388: buf[nBuf].py = s->atoms->p[ii][1]; |
389: buf[nBuf].pz = s->atoms->p[ii][2]; |
390: ++nBuf; |
391: } |
392: } |
393: return nBuf*sizeof(AtomMsg); |
394: } |
0x405d80 ADD X6, X0, W2,SXTW #3 |
0x405d84 LDR X4, [X1, #16] |
0x405d88 LDR X5, [X6, #72] |
0x405d8c LDR W15, [X0, X2,SXTW #2] |
0x405d90 LDP D0, D4, [X4, #72] |
0x405d94 LDP D1, D2, [X5] |
0x405d98 LDR D3, [X5, #16] |
0x405d9c LDR D7, [X4, #88] |
0x405da0 FMUL D5, D1, D0 |
0x405da4 FMUL D6, D2, D4 |
0x405da8 LDR X16, [X6, #24] |
0x405dac FMUL D16, D3, D7 |
0x405db0 CMP W15, #0 |
0x405db4 B.LE 405ea0 |
0x405db8 LDR X0, [X1, #24] |
0x405dbc MOVZ X13, #0 |
0x405dc0 MOVZ W11, #0 |
0x405dc4 MOVZ W18, #56 |
0x405dc8 MOVZ W17, #24 |
0x405dcc LDR X14, [X0, #120] |
(39) 0x405dd0 LDR W8, [X16, X13,LSL #2] |
(39) 0x405dd4 ADD X9, X14, W8,SXTW #2 |
(39) 0x405dd8 LDR W2, [X14, X8,SXTW #2] |
(39) 0x405ddc UBFM W8, W8, #26, #25 |
(39) 0x405de0 CMP W2, #0 |
(39) 0x405de4 B.LE 405e88 |
(39) 0x405de8 LDR X10, [X1, #32] |
(39) 0x405dec SMADDL X7, W8, W17, XZR |
(39) 0x405df0 ADD W12, W11, #1 |
(39) 0x405df4 SMADDL X0, W11, W18, X3 |
(39) 0x405df8 SBFM X2, X8, #0, #31 |
(39) 0x405dfc LDP X6, X4, [X10, #24] |
(39) 0x405e00 LDR X11, [X10, #8] |
(39) 0x405e04 ADD X5, X6, X7 |
(39) 0x405e08 ADD X4, X4, X7 |
(39) 0x405e0c LDR X10, [X10, #16] |
(40) 0x405e10 SUB W7, W2, W8 |
(40) 0x405e14 ADD X5, X5, #24 |
(40) 0x405e18 LDUR D17, [X5, #488] |
(40) 0x405e1c ADD W7, W12, W7 |
(40) 0x405e20 ADD X4, X4, #24 |
(40) 0x405e24 ADD X0, X0, #56 |
(40) 0x405e28 LDR W6, [X11, X2,LSL #2] |
(40) 0x405e2c FADD D18, D17, D5 |
(40) 0x405e30 STUR W6, [X0, #456] |
(40) 0x405e34 LDR W6, [X10, X2,LSL #2] |
(40) 0x405e38 ADD X2, X2, #1 |
(40) 0x405e3c STUR D18, [X0, #464] |
(40) 0x405e40 LDUR D19, [X5, #496] |
(40) 0x405e44 STUR W6, [X0, #460] |
(40) 0x405e48 LDR W6, [X9] |
(40) 0x405e4c FADD D20, D19, D6 |
(40) 0x405e50 ADD W6, W8, W6 |
(40) 0x405e54 STUR D20, [X0, #472] |
(40) 0x405e58 LDUR D21, [X5, #504] |
(40) 0x405e5c FADD D22, D21, D16 |
(40) 0x405e60 STUR D22, [X0, #480] |
(40) 0x405e64 LDUR D23, [X4, #488] |
(40) 0x405e68 STUR D23, [X0, #488] |
(40) 0x405e6c LDUR D24, [X4, #496] |
(40) 0x405e70 STUR D24, [X0, #496] |
(40) 0x405e74 LDUR D25, [X4, #504] |
(40) 0x405e78 STUR D25, [X0, #504] |
(40) 0x405e7c CMP W6, W2 |
(40) 0x405e80 B.GT 405e10 |
(39) 0x405e84 ORR W11, WZR, W7 |
(39) 0x405e88 ADD X13, X13, #1 |
(39) 0x405e8c CMP W15, W13 |
(39) 0x405e90 B.GT 405dd0 |
0x405e94 MOVZ W1, #56 |
0x405e98 MADD W0, W11, W1, WZR |
0x405e9c RET |
0x405ea0 MOVZ W0, #0 |
0x405ea4 RET |
Coverage (%) | Name | Source Location | Module |
---|---|---|---|
►97.62+ | timestep | timestep.c:150 | exec |
○ | main | CoMD.c:125 | exec |
○ | __libc_start_main | libc-2.31.so | |
○ | _start | CoMD.c:266 | exec |
►2.38+ | redistributeAtoms | timestep.c:150 | exec |
○ | main | CoMD.c:207 | exec |
○ | __libc_start_main | libc-2.31.so | |
○ | _start | CoMD.c:266 | exec |
Path / |
Source file and lines | haloExchange.c:365-394 |
Module | exec |
nb instructions | 25 |
loop length | 100 |
nb stack references | 0 |
front end | 3.13 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12 | P13 | P14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 1.50 | 1.50 | 2.25 | 2.25 | 2.25 | 2.25 | 0.75 | 0.75 | 0.75 | 0.75 | 3.33 | 3.33 | 3.33 | 0.00 | 0.00 |
cycles | 1.50 | 1.50 | 2.25 | 2.25 | 2.25 | 2.25 | 0.75 | 0.75 | 0.75 | 0.75 | 3.33 | 3.33 | 3.33 | 0.00 | 0.00 |
Cycles executing div or sqrt instructions | NA |
Front-end | 3.13 |
Overall L1 | 3.33 |
all | 25% |
load | 50% |
store | NA (no store vectorizable/vectorized instructions) |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | NA (no add-sub vectorizable/vectorized instructions) |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 0% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12 | P13 | P14 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ADD X6, X0, W2,SXTW #3 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0.50 |
LDR X4, [X1, #16] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
LDR X5, [X6, #72] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
LDR W15, [X0, X2,SXTW #2] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
LDP D0, D4, [X4, #72] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
LDP D1, D2, [X5] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
LDR D3, [X5, #16] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
LDR D7, [X4, #88] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
FMUL D5, D1, D0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 3 | 0.25 |
FMUL D6, D2, D4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 3 | 0.25 |
LDR X16, [X6, #24] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
FMUL D16, D3, D7 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 3 | 0.25 |
CMP W15, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.33 |
B.LE 405ea0 <loadAtomsBuffer+0x120> | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.50 |
LDR X0, [X1, #24] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
MOVZ X13, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MOVZ W11, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MOVZ W18, #56 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MOVZ W17, #24 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
LDR X14, [X0, #120] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
MOVZ W1, #56 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MADD W0, W11, W1, WZR | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 |
RET | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.50 |
MOVZ W0, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
RET | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.50 |
Source file and lines | haloExchange.c:365-394 |
Module | exec |
nb instructions | 25 |
loop length | 100 |
nb stack references | 0 |
front end | 3.13 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12 | P13 | P14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 1.50 | 1.50 | 2.25 | 2.25 | 2.25 | 2.25 | 0.75 | 0.75 | 0.75 | 0.75 | 3.33 | 3.33 | 3.33 | 0.00 | 0.00 |
cycles | 1.50 | 1.50 | 2.25 | 2.25 | 2.25 | 2.25 | 0.75 | 0.75 | 0.75 | 0.75 | 3.33 | 3.33 | 3.33 | 0.00 | 0.00 |
Cycles executing div or sqrt instructions | NA |
Front-end | 3.13 |
Overall L1 | 3.33 |
all | 25% |
load | 50% |
store | NA (no store vectorizable/vectorized instructions) |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | NA (no add-sub vectorizable/vectorized instructions) |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 0% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12 | P13 | P14 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ADD X6, X0, W2,SXTW #3 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0.50 |
LDR X4, [X1, #16] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
LDR X5, [X6, #72] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
LDR W15, [X0, X2,SXTW #2] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
LDP D0, D4, [X4, #72] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
LDP D1, D2, [X5] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
LDR D3, [X5, #16] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
LDR D7, [X4, #88] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 6 | 0.33 |
FMUL D5, D1, D0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 3 | 0.25 |
FMUL D6, D2, D4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 3 | 0.25 |
LDR X16, [X6, #24] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
FMUL D16, D3, D7 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 3 | 0.25 |
CMP W15, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.33 |
B.LE 405ea0 <loadAtomsBuffer+0x120> | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.50 |
LDR X0, [X1, #24] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
MOVZ X13, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MOVZ W11, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MOVZ W18, #56 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MOVZ W17, #24 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
LDR X14, [X0, #120] | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0.33 | 0.33 | 0 | 0 | 4 | 0.33 |
MOVZ W1, #56 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
MADD W0, W11, W1, WZR | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 |
RET | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.50 |
MOVZ W0, #0 | 1 | 0 | 0 | 0.25 | 0.25 | 0.25 | 0.25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.25 |
RET | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.50 |
Name | Coverage (%) | Time (s) |
---|---|---|
▼loadAtomsBuffer– | 0.06 | 0.01 |
▼Loop 39 - haloExchange.c:376-390 - exec– | 0 | 0.04 |
○Loop 40 - haloExchange.c:380-389 - exec | 0.05 | 0.59 |