- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,

I'm wondering specifically what is Advisor is reporting for GFLOPS and GINTOPS. Is it reporting instructions retired and account for vector instructions? I.e., would an 8-way vector fused multiply add instruction be counted as 16 operations?

Thanks!

jgw

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi jgw,

For Advisor GINTOPS you can find instructions list at Advisor Integer Roofline article: https://software.intel.com/content/www/us/en/develop/articles/a-brief-overview-of-integer-roofline-modeling-in-intel-advisor.html , **quoted**:

*Currently, ADD, ADC, SUB, MUL, IMUL, DIV, IDIV, INC/DEC, shifts, rotates etc. are counted as INT Operations. For strict integer operation usage, which allows you to exclude the loop counter operations (INC/DEC, shift, rotate) which are not strictly calculations, set the environment variable: ADVIXE_EXPERIMENTAL=intops_strict This will lead to only counting ADD, MUL, IDIV and SUB operations.*

FLOPS and GINTOPS are implemented so that for each instruction you multiply by operand SIMD width and taking into account (for AVX-512) mask register values. Also, for FMAs and for VNNI we count them as > 1 op (specifically, 2 for FMA). That's actually why we position Advisor FLOPS/INTOPS collectors as "*Precise* FLOPS counting" analysis.

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,

Yes, Advisor takes into account that FMA instruction is not single operation but it's a number of operations. Specifically, for N elements we have N multiplies and N additions (for each of mul result)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Thanks. Assuming that the count is based on retired instructions, would it be possible to get a list of instructions that result in counts as both GFLOPS and INTOPS?

Thanks.

jgw

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I'm not sure if FMA contains any instruction which operate on both floating-point and integer data. Could you give an example?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Sorry, that's not what I meant.

I am interested in a list of instructions that result in GFLOPS counts, and a list of instructions that result in GINTOPS counts. I imagine it is all of the arithmetic instructions and vector variants of those instructions, both for floats and for ints, respectively.

Thanks.

jgw

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Unfortunately I don't have any list you need but if I remember correctly only IFMA stands for INTOP count. The rest ISAs (or their subsets) stand for FLOP count. So you could compile the list based on data from Intel Intrinsic Guide resource selecting needed ISA. BTW I'm not sure if Advisor supports IFMA yet

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi jgw,

For Advisor GINTOPS you can find instructions list at Advisor Integer Roofline article: https://software.intel.com/content/www/us/en/develop/articles/a-brief-overview-of-integer-roofline-modeling-in-intel-advisor.html , **quoted**:

*Currently, ADD, ADC, SUB, MUL, IMUL, DIV, IDIV, INC/DEC, shifts, rotates etc. are counted as INT Operations. For strict integer operation usage, which allows you to exclude the loop counter operations (INC/DEC, shift, rotate) which are not strictly calculations, set the environment variable: ADVIXE_EXPERIMENTAL=intops_strict This will lead to only counting ADD, MUL, IDIV and SUB operations.*

FLOPS and GINTOPS are implemented so that for each instruction you multiply by operand SIMD width and taking into account (for AVX-512) mask register values. Also, for FMAs and for VNNI we count them as > 1 op (specifically, 2 for FMA). That's actually why we position Advisor FLOPS/INTOPS collectors as "*Precise* FLOPS counting" analysis.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

.. And (in continuation)

For the **FLOP**/S tool here is a high level list of classes of instructions counted:

ADD, SUB, DIV, DP, MUL, ATAN, FPREM, TAN, SIN, COS, SQRT, SUB, RCP, RSQRT, EXP, VSCALE, MAX, MIN, ABS, IMUL, IDIV, FIDIVR, CMP, VREDUCE, VRND

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,

Thank you for accepting the solution. We are discontinuing monitoring this thread. Please raise a new thread in case of any further issues.

Regards,

Raeesa

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page