Skylake PAPI_FP_OPS event

Issue #25 resolved
Vince Weaver created an issue

Sameer Shende sameer@cs.uoregon.edu requested a PAPI_FP_OPS event for Skylake.

There are existing PAPI_DP_OPS and PAPI_SP_OPS events, we should see if we can combine them someway in the existing event slots.

Comments (6)

  1. Heike Jagode

    I wouldn't consider it a "bug" if PAPI_FP_OPS is not defined for Skylake due to a limited number of general purpose counters. There are only 4 general purpose counters and when I defined the DP_OPS, I already had to use them all:

    DOUBLE-precision FLOPs = 1 FP_ARITH_INST_RETIRED.SCALAR_DOUBLE + 2 FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + 8 FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE

    Same for SP_OPS:

    SINGLE-precision FLOPs = 1 FP_ARITH_INST_RETIRED.PACKED_SINGLE + 4 FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + 8 FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + 16FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE

    If we now all of a sudden make a (more or less) random decision to make only DP_FLOP our total PAPI_FP_OPS, then we can expect another 50+ emails from the LA teams saying that our PAPI_FP_OPS on Skylake is wrong. That I would consider a bug.

  2. Rashawn Knapp Account Deactivated

    Hello,

    I am curious if this bug is being worked on. I am using PAPI 5.7.0 on a Skylake server (SKX), and I discovered I am unable to use the named event PAPI_FP_OPS. If this is not possible, please advise on the best way to collect floating point operations on SKX.

    Best regards,

    -Rashawn

  3. Heike Jagode

    Have you tried using the presets PAPI_DP_OPS for double-precision FLOPs and PAPI_SP_OPS for single-precision FLOPs?

  4. Heike Jagode

    Reason why PAPI_FP_OPS is not defined for Skylake is because of the limited number of general purpose counters. There are only 4 general purpose counters and when I defined the DP_OPS, I already had to use them all:

    DOUBLE-precision FLOPs = 1 FP_ARITH_INST_RETIRED.SCALAR_DOUBLE + 2 FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4 FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE + 8 FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE

    Same for SP_OPS:

    SINGLE-precision FLOPs = 1 FP_ARITH_INST_RETIRED.PACKED_SINGLE + 4 FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + 8 _FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE + 16_FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE

  5. Log in to comment