Loop Id: 552 | Module: libqmcwfs.so | Source: BsplineFunctor.h:305-336 | Coverage: 0.07% |
---|
Loop Id: 552 | Module: libqmcwfs.so | Source: BsplineFunctor.h:305-336 | Coverage: 0.07% |
---|
0x52430 VMOVSD (%RDI,%RAX,8),%XMM4 [7] |
0x52435 VMOVAPD -0xb0(%RBP),%YMM2 [6] |
0x5243d MOVSXD (%R8,%RAX,4),%R15 [3] |
0x52441 INC %RAX |
0x52444 VMULSD %XMM4,%XMM7,%XMM8 |
0x52448 VDIVSD %XMM4,%XMM15,%XMM4 |
0x5244c ADD %R9,%R15 |
0x5244f VROUNDSD $0xb,%XMM8,%XMM8,%XMM1 |
0x52455 VCVTTSD2SI %XMM8,%ESI |
0x5245a VSUBSD %XMM1,%XMM8,%XMM0 |
0x5245e VMULSD %XMM0,%XMM0,%XMM6 |
0x52462 VBROADCASTSD %XMM0,%YMM1 |
0x52467 VFMADD213PD -0x90(%RBP),%YMM1,%YMM2 [6] |
0x52470 VMOVAPD %YMM1,%YMM3 |
0x52474 MOVSXD %ESI,%RDX |
0x52477 VFMADD132PD %YMM10,%YMM9,%YMM3 |
0x5247c VFMADD132PD %YMM13,%YMM12,%YMM1 |
0x52481 VMOVUPD (%R10,%RDX,8),%YMM8 [1] |
0x52487 VMULSD %XMM6,%XMM0,%XMM0 |
0x5248b VBROADCASTSD %XMM6,%YMM5 |
0x52490 VMULPD %YMM8,%YMM1,%YMM1 |
0x52495 VFMADD231PD %YMM11,%YMM5,%YMM3 |
0x5249a VBROADCASTSD %XMM0,%YMM6 |
0x5249f VMULPD -0x70(%RBP),%YMM6,%YMM0 [6] |
0x524a4 VFMADD231PD -0xd0(%RBP),%YMM5,%YMM0 [6] |
0x524ad VEXTRACTF128 $0x1,%YMM1,%XMM6 |
0x524b3 VMULPD %YMM3,%YMM8,%YMM3 |
0x524b7 VADDPD %YMM0,%YMM2,%YMM2 |
0x524bb VMULPD %YMM8,%YMM2,%YMM5 |
0x524c0 VADDPD %XMM1,%XMM6,%XMM8 |
0x524c4 VEXTRACTF128 $0x1,%YMM3,%XMM6 |
0x524ca VADDPD %XMM3,%XMM6,%XMM3 |
0x524ce VUNPCKHPD %XMM8,%XMM8,%XMM0 |
0x524d3 VADDPD %XMM8,%XMM0,%XMM2 |
0x524d8 VUNPCKHPD %XMM3,%XMM3,%XMM8 |
0x524dc VADDPD %XMM3,%XMM8,%XMM0 |
0x524e0 VEXTRACTF128 $0x1,%YMM5,%XMM6 |
0x524e6 VADDPD %XMM5,%XMM6,%XMM5 |
0x524ea VMULSD %XMM2,%XMM14,%XMM1 |
0x524ee VMULSD %XMM0,%XMM7,%XMM2 |
0x524f2 VUNPCKHPD %XMM5,%XMM5,%XMM3 |
0x524f6 VADDPD %XMM5,%XMM3,%XMM8 |
0x524fa VMOVSD %XMM1,(%R13,%R15,8) [2] |
0x52501 VMULSD %XMM4,%XMM2,%XMM1 |
0x52505 VMOVLPD %XMM8,(%RBX,%R15,8) [5] |
0x5250b VMOVSD %XMM1,(%R12,%R15,8) [4] |
0x52511 CMP %RCX,%RAX |
0x52514 JNE 52430 |
/scratch_na/users/xoserete/qaas_runs/171-417-3180/intel/miniqmc/build/miniqmc/src/QMCWaveFunctions/Jastrow/BsplineFunctor.h: 305 - 336 |
-------------------------------------------------------------------------------- |
305: real_type r = distArrayCompressed[j]; |
306: int iScatter = distIndices[j]; |
307: real_type rinv = cOne / r; |
308: r *= DeltaRInv; |
309: int iGather = (int)r; |
310: real_type t = r - real_type(iGather); |
311: real_type tp0 = t * t * t; |
312: real_type tp1 = t * t; |
313: real_type tp2 = t; |
314: |
315: real_type sCoef0 = SplineCoefs[iGather + 0]; |
316: real_type sCoef1 = SplineCoefs[iGather + 1]; |
317: real_type sCoef2 = SplineCoefs[iGather + 2]; |
318: real_type sCoef3 = SplineCoefs[iGather + 3]; |
319: |
320: // clang-format off |
321: laplArray[iScatter] = dSquareDeltaRinv * |
322: (sCoef0*( d2A[ 2]*tp2 + d2A[ 3])+ |
323: sCoef1*( d2A[ 6]*tp2 + d2A[ 7])+ |
324: sCoef2*( d2A[10]*tp2 + d2A[11])+ |
325: sCoef3*( d2A[14]*tp2 + d2A[15])); |
326: |
327: gradArray[iScatter] = DeltaRInv * rinv * |
328: (sCoef0*( dA[ 1]*tp1 + dA[ 2]*tp2 + dA[ 3])+ |
329: sCoef1*( dA[ 5]*tp1 + dA[ 6]*tp2 + dA[ 7])+ |
330: sCoef2*( dA[ 9]*tp1 + dA[10]*tp2 + dA[11])+ |
331: sCoef3*( dA[13]*tp1 + dA[14]*tp2 + dA[15])); |
332: |
333: valArray[iScatter] = (sCoef0*(A[ 0]*tp0 + A[ 1]*tp1 + A[ 2]*tp2 + A[ 3])+ |
334: sCoef1*(A[ 4]*tp0 + A[ 5]*tp1 + A[ 6]*tp2 + A[ 7])+ |
335: sCoef2*(A[ 8]*tp0 + A[ 9]*tp1 + A[10]*tp2 + A[11])+ |
336: sCoef3*(A[12]*tp0 + A[13]*tp1 + A[14]*tp2 + A[15])); |
Coverage (%) | Name | Source Location | Module |
---|---|---|---|
►98.62+ | qmcplusplus::WaveFunction::rat[...] | WaveFunction.cpp:201 | libqmcwfs.so |
○ | main._omp_fn.1 | refwrap.h:346 | exec |
○ | gomp_thread_start | team.c:130 | libgomp.so.1.0.0 |
►1.38+ | qmcplusplus::WaveFunction::rat[...] | WaveFunction.cpp:201 | libqmcwfs.so |
○ | main._omp_fn.1 | refwrap.h:346 | exec |
○ | GOMP_parallel | libgomp.h:985 | libgomp.so.1.0.0 |
Path / |
Metric | Value |
---|---|
CQA speedup if no scalar integer | 1.00 |
CQA speedup if FP arith vectorized | 1.39 |
CQA speedup if fully vectorized | 3.39 |
CQA speedup if no inter-iteration dependency | NA |
CQA speedup if next bottleneck killed | 1.04 |
Bottlenecks | P0, P1, |
Function | miniqmcreference::TwoBodyJastrowRef |
Source | BsplineFunctor.h:305-336 |
Source loop unroll info | not unrolled or unrolled with no peel/tail loop |
Source loop unroll confidence level | max |
Unroll/vectorization loop type | NA |
Unroll factor | NA |
CQA cycles | 12.50 |
CQA cycles if no scalar integer | 12.50 |
CQA cycles if FP arith vectorized | 9.00 |
CQA cycles if fully vectorized | 3.69 |
Front-end cycles | 8.17 |
DIV/SQRT cycles | 12.50 |
P0 cycles | 12.50 |
P1 cycles | 2.33 |
P2 cycles | 2.33 |
P3 cycles | 1.50 |
P4 cycles | 12.00 |
P5 cycles | 1.60 |
P6 cycles | 1.50 |
P7 cycles | 1.50 |
P8 cycles | 1.50 |
P9 cycles | 1.40 |
P10 cycles | 2.33 |
P11 cycles | 4.00 |
Inter-iter dependencies cycles | 1 |
FE+BE cycles (UFS) | 14.33 |
Stall cycles (UFS) | 5.67 |
Nb insns | 48.00 |
Nb uops | 49.00 |
Nb loads | 7.00 |
Nb stores | 3.00 |
Nb stack references | 4.00 |
FLOP/cycle | 6.40 |
Nb FLOP add-sub | 17.00 |
Nb FLOP mul | 22.00 |
Nb FLOP fma | 20.00 |
Nb FLOP div | 1.00 |
Nb FLOP rcp | 0.00 |
Nb FLOP sqrt | 0.00 |
Nb FLOP rsqrt | 0.00 |
Bytes/cycle | 15.68 |
Bytes prefetched | 0.00 |
Bytes loaded | 172.00 |
Bytes stored | 24.00 |
Stride 0 | 1.00 |
Stride 1 | 2.00 |
Stride n | 0.00 |
Stride unknown | 3.00 |
Stride indirect | 1.00 |
Vectorization ratio all | 52.38 |
Vectorization ratio load | 83.33 |
Vectorization ratio store | 0.00 |
Vectorization ratio mul | 40.00 |
Vectorization ratio add_sub | 87.50 |
Vectorization ratio fma | 100.00 |
Vectorization ratio div_sqrt | 0.00 |
Vectorization ratio other | 33.33 |
Vector-efficiency ratio all | 26.79 |
Vector-efficiency ratio load | 43.75 |
Vector-efficiency ratio store | 12.50 |
Vector-efficiency ratio mul | 27.50 |
Vector-efficiency ratio add_sub | 26.56 |
Vector-efficiency ratio fma | 50.00 |
Vector-efficiency ratio div_sqrt | 12.50 |
Vector-efficiency ratio other | 18.75 |
Metric | Value |
---|---|
CQA speedup if no scalar integer | 1.00 |
CQA speedup if FP arith vectorized | 1.39 |
CQA speedup if fully vectorized | 3.39 |
CQA speedup if no inter-iteration dependency | NA |
CQA speedup if next bottleneck killed | 1.04 |
Bottlenecks | P0, P1, |
Function | miniqmcreference::TwoBodyJastrowRef |
Source | BsplineFunctor.h:305-336 |
Source loop unroll info | not unrolled or unrolled with no peel/tail loop |
Source loop unroll confidence level | max |
Unroll/vectorization loop type | NA |
Unroll factor | NA |
CQA cycles | 12.50 |
CQA cycles if no scalar integer | 12.50 |
CQA cycles if FP arith vectorized | 9.00 |
CQA cycles if fully vectorized | 3.69 |
Front-end cycles | 8.17 |
DIV/SQRT cycles | 12.50 |
P0 cycles | 12.50 |
P1 cycles | 2.33 |
P2 cycles | 2.33 |
P3 cycles | 1.50 |
P4 cycles | 12.00 |
P5 cycles | 1.60 |
P6 cycles | 1.50 |
P7 cycles | 1.50 |
P8 cycles | 1.50 |
P9 cycles | 1.40 |
P10 cycles | 2.33 |
P11 cycles | 4.00 |
Inter-iter dependencies cycles | 1 |
FE+BE cycles (UFS) | 14.33 |
Stall cycles (UFS) | 5.67 |
Nb insns | 48.00 |
Nb uops | 49.00 |
Nb loads | 7.00 |
Nb stores | 3.00 |
Nb stack references | 4.00 |
FLOP/cycle | 6.40 |
Nb FLOP add-sub | 17.00 |
Nb FLOP mul | 22.00 |
Nb FLOP fma | 20.00 |
Nb FLOP div | 1.00 |
Nb FLOP rcp | 0.00 |
Nb FLOP sqrt | 0.00 |
Nb FLOP rsqrt | 0.00 |
Bytes/cycle | 15.68 |
Bytes prefetched | 0.00 |
Bytes loaded | 172.00 |
Bytes stored | 24.00 |
Stride 0 | 1.00 |
Stride 1 | 2.00 |
Stride n | 0.00 |
Stride unknown | 3.00 |
Stride indirect | 1.00 |
Vectorization ratio all | 52.38 |
Vectorization ratio load | 83.33 |
Vectorization ratio store | 0.00 |
Vectorization ratio mul | 40.00 |
Vectorization ratio add_sub | 87.50 |
Vectorization ratio fma | 100.00 |
Vectorization ratio div_sqrt | 0.00 |
Vectorization ratio other | 33.33 |
Vector-efficiency ratio all | 26.79 |
Vector-efficiency ratio load | 43.75 |
Vector-efficiency ratio store | 12.50 |
Vector-efficiency ratio mul | 27.50 |
Vector-efficiency ratio add_sub | 26.56 |
Vector-efficiency ratio fma | 50.00 |
Vector-efficiency ratio div_sqrt | 12.50 |
Vector-efficiency ratio other | 18.75 |
Path / |
Function | miniqmcreference::TwoBodyJastrowRef |
Source file and lines | BsplineFunctor.h:305-336 |
Module | libqmcwfs.so |
nb instructions | 48 |
nb uops | 49 |
loop length | 234 |
used x86 registers | 13 |
used mmx registers | 0 |
used xmm registers | 11 |
used ymm registers | 12 |
used zmm registers | 0 |
nb stack references | 4 |
ADD-SUB / MUL ratio | 0.80 |
micro-operation queue | 8.17 cycles |
front end | 8.17 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 12.50 | 12.50 | 2.33 | 2.33 | 1.50 | 12.00 | 1.60 | 1.50 | 1.50 | 1.50 | 1.40 | 2.33 |
cycles | 12.50 | 12.50 | 2.33 | 2.33 | 1.50 | 12.00 | 1.60 | 1.50 | 1.50 | 1.50 | 1.40 | 2.33 |
Cycles executing div or sqrt instructions | 4.00 |
Longest recurrence chain latency (RecMII) | 1.00 |
FE+BE cycles | 14.33 |
Stall cycles | 5.67 |
RS full (events) | 12.36 |
Front-end | 8.17 |
Dispatch | 12.50 |
DIV/SQRT | 4.00 |
Data deps. | 1.00 |
Overall L1 | 12.50 |
all | 52% |
load | 83% |
store | 0% |
mul | 40% |
add-sub | 87% |
fma | 100% |
div/sqrt | 0% |
other | 33% |
all | 26% |
load | 43% |
store | 12% |
mul | 27% |
add-sub | 26% |
fma | 50% |
div/sqrt | 12% |
other | 18% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VMOVSD (%RDI,%RAX,8),%XMM4 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
VMOVAPD -0xb0(%RBP),%YMM2 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0-1 | 0.33 |
MOVSXD (%R8,%RAX,4),%R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
INC %RAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
VMULSD %XMM4,%XMM7,%XMM8 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VDIVSD %XMM4,%XMM15,%XMM4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 13-15 | 4 |
ADD %R9,%R15 | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
VROUNDSD $0xb,%XMM8,%XMM8,%XMM1 | 2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 1 |
VCVTTSD2SI %XMM8,%ESI | 2 | 1.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7 | 1 |
VSUBSD %XMM1,%XMM8,%XMM0 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMULSD %XMM0,%XMM0,%XMM6 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VBROADCASTSD %XMM0,%YMM1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VFMADD213PD -0x90(%RBP),%YMM1,%YMM2 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 |
VMOVAPD %YMM1,%YMM3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0-1 | 0.17 |
MOVSXD %ESI,%RDX | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 |
VFMADD132PD %YMM10,%YMM9,%YMM3 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VFMADD132PD %YMM13,%YMM12,%YMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMOVUPD (%R10,%RDX,8),%YMM8 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0-1 | 0.33 |
VMULSD %XMM6,%XMM0,%XMM0 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VBROADCASTSD %XMM6,%YMM5 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VMULPD %YMM8,%YMM1,%YMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VFMADD231PD %YMM11,%YMM5,%YMM3 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VBROADCASTSD %XMM0,%YMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VMULPD -0x70(%RBP),%YMM6,%YMM0 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 |
VFMADD231PD -0xd0(%RBP),%YMM5,%YMM0 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 |
VEXTRACTF128 $0x1,%YMM1,%XMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VMULPD %YMM3,%YMM8,%YMM3 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VADDPD %YMM0,%YMM2,%YMM2 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMULPD %YMM8,%YMM2,%YMM5 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VADDPD %XMM1,%XMM6,%XMM8 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VEXTRACTF128 $0x1,%YMM3,%XMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VADDPD %XMM3,%XMM6,%XMM3 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VUNPCKHPD %XMM8,%XMM8,%XMM0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
VADDPD %XMM8,%XMM0,%XMM2 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VUNPCKHPD %XMM3,%XMM3,%XMM8 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
VADDPD %XMM3,%XMM8,%XMM0 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VEXTRACTF128 $0x1,%YMM5,%XMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VADDPD %XMM5,%XMM6,%XMM5 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMULSD %XMM2,%XMM14,%XMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMULSD %XMM0,%XMM7,%XMM2 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VUNPCKHPD %XMM5,%XMM5,%XMM3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
VADDPD %XMM5,%XMM3,%XMM8 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMOVSD %XMM1,(%R13,%R15,8) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 |
VMULSD %XMM4,%XMM2,%XMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMOVLPD %XMM8,(%RBX,%R15,8) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 4-12 | 0.50 |
VMOVSD %XMM1,(%R12,%R15,8) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 |
CMP %RCX,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
JNE 52430 <_ZN16miniqmcreference17TwoBodyJastrowRefIN11qmcplusplus14BsplineFunctorIdEEE9ratioGradERNS1_11ParticleSetEiRNS1_10TinyVectorIdLj3EEE+0x5e0> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |
Function | miniqmcreference::TwoBodyJastrowRef |
Source file and lines | BsplineFunctor.h:305-336 |
Module | libqmcwfs.so |
nb instructions | 48 |
nb uops | 49 |
loop length | 234 |
used x86 registers | 13 |
used mmx registers | 0 |
used xmm registers | 11 |
used ymm registers | 12 |
used zmm registers | 0 |
nb stack references | 4 |
ADD-SUB / MUL ratio | 0.80 |
micro-operation queue | 8.17 cycles |
front end | 8.17 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 12.50 | 12.50 | 2.33 | 2.33 | 1.50 | 12.00 | 1.60 | 1.50 | 1.50 | 1.50 | 1.40 | 2.33 |
cycles | 12.50 | 12.50 | 2.33 | 2.33 | 1.50 | 12.00 | 1.60 | 1.50 | 1.50 | 1.50 | 1.40 | 2.33 |
Cycles executing div or sqrt instructions | 4.00 |
Longest recurrence chain latency (RecMII) | 1.00 |
FE+BE cycles | 14.33 |
Stall cycles | 5.67 |
RS full (events) | 12.36 |
Front-end | 8.17 |
Dispatch | 12.50 |
DIV/SQRT | 4.00 |
Data deps. | 1.00 |
Overall L1 | 12.50 |
all | 52% |
load | 83% |
store | 0% |
mul | 40% |
add-sub | 87% |
fma | 100% |
div/sqrt | 0% |
other | 33% |
all | 26% |
load | 43% |
store | 12% |
mul | 27% |
add-sub | 26% |
fma | 50% |
div/sqrt | 12% |
other | 18% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VMOVSD (%RDI,%RAX,8),%XMM4 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
VMOVAPD -0xb0(%RBP),%YMM2 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0-1 | 0.33 |
MOVSXD (%R8,%RAX,4),%R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
INC %RAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
VMULSD %XMM4,%XMM7,%XMM8 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VDIVSD %XMM4,%XMM15,%XMM4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 13-15 | 4 |
ADD %R9,%R15 | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
VROUNDSD $0xb,%XMM8,%XMM8,%XMM1 | 2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 1 |
VCVTTSD2SI %XMM8,%ESI | 2 | 1.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7 | 1 |
VSUBSD %XMM1,%XMM8,%XMM0 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMULSD %XMM0,%XMM0,%XMM6 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VBROADCASTSD %XMM0,%YMM1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VFMADD213PD -0x90(%RBP),%YMM1,%YMM2 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 |
VMOVAPD %YMM1,%YMM3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0-1 | 0.17 |
MOVSXD %ESI,%RDX | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 |
VFMADD132PD %YMM10,%YMM9,%YMM3 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VFMADD132PD %YMM13,%YMM12,%YMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMOVUPD (%R10,%RDX,8),%YMM8 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0-1 | 0.33 |
VMULSD %XMM6,%XMM0,%XMM0 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VBROADCASTSD %XMM6,%YMM5 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VMULPD %YMM8,%YMM1,%YMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VFMADD231PD %YMM11,%YMM5,%YMM3 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VBROADCASTSD %XMM0,%YMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VMULPD -0x70(%RBP),%YMM6,%YMM0 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 |
VFMADD231PD -0xd0(%RBP),%YMM5,%YMM0 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 |
VEXTRACTF128 $0x1,%YMM1,%XMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VMULPD %YMM3,%YMM8,%YMM3 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VADDPD %YMM0,%YMM2,%YMM2 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMULPD %YMM8,%YMM2,%YMM5 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VADDPD %XMM1,%XMM6,%XMM8 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VEXTRACTF128 $0x1,%YMM3,%XMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VADDPD %XMM3,%XMM6,%XMM3 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VUNPCKHPD %XMM8,%XMM8,%XMM0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
VADDPD %XMM8,%XMM0,%XMM2 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VUNPCKHPD %XMM3,%XMM3,%XMM8 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
VADDPD %XMM3,%XMM8,%XMM0 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VEXTRACTF128 $0x1,%YMM5,%XMM6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
VADDPD %XMM5,%XMM6,%XMM5 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMULSD %XMM2,%XMM14,%XMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMULSD %XMM0,%XMM7,%XMM2 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VUNPCKHPD %XMM5,%XMM5,%XMM3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
VADDPD %XMM5,%XMM3,%XMM8 | 1 | 0 | 0.50 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0.50 |
VMOVSD %XMM1,(%R13,%R15,8) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 |
VMULSD %XMM4,%XMM2,%XMM1 | 1 | 0.50 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0.50 |
VMOVLPD %XMM8,(%RBX,%R15,8) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 4-12 | 0.50 |
VMOVSD %XMM1,(%R12,%R15,8) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 |
CMP %RCX,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
JNE 52430 <_ZN16miniqmcreference17TwoBodyJastrowRefIN11qmcplusplus14BsplineFunctorIdEEE9ratioGradERNS1_11ParticleSetEiRNS1_10TinyVectorIdLj3EEE+0x5e0> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |