Analyzers
Support for Analyzers (Intel VTune™ Profiler, Intel Advisor, Intel Inspector)
4723 Discussions

Intel Advisor Instruction Mix Missing Counters

Lorien
Beginner
904 Views

We are trying to obtain the dynamic instruction mix of a scalar program with Intel Advisor 2021.4. We are following the steps of the documentation:

 

$ advisor --collect=survey --project-dir=./advi_results -- ./myApplication
$ advisor --collect=tripcounts --flop --project-dir=./advi_results -- ./myApplication
$ advisor --report=survey --mix --project-dir=./advi_results

 

Find attached the obtained instruction mix for our program.

The total number of instructions executed (Dynamic all_instructions) matches the total number of instructions retired shown in Vtune (INST_RETIRED.ANY). However, we need more specific counters, like the number of loads and stores, integer instructions, etc. If we compare the summation of specific counters with the total number of instructions, the difference is gigantic. Example for the most time-consuming loop (ID=4):

Dynamic all_instructions (72001491120) != Dynamic compute (9600198816) + Dynamic memory (25600530176) => 72001491120 (100%) != 35200728992 (48%)
Dynamic memory (25600530176) != Dynamic loads (11200231952) + Dynamic Stores (4800099408) => 25600530176 (100%) != 16000331360 (62.5%)

 

This mismatch makes us think that there are some counters that are not shown in the report.

Labels (1)
0 Kudos
7 Replies
VaradJ_Intel
Moderator
881 Views

Hi,

 

Thank you for posting in Intel Communities.

 

We recommend you to view the report in GUI for a detailed analysis, instead of viewing the report in command line.

 

You can view the Dynamic Instruction Mix Summary in the GUI under code Analytics tab (which is highlighted in the screenshot).

 

From the image attached below, you can see that :

 

Dynamic all_instructions (100%) = Memory + Compute+ Mixed +Other

 

VaradJ_Intel_0-1638976145427.png

 

Advisor 2021.4 is available for download as a standalone tool at https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#ad...

or as part of oneAPI Base Toolkit 2021.4 at https://software.intel.com/content/www/us/en/develop/tools/oneapi/base-toolkit/download.html

 

Regarding the Dynamic Memory we will check and let you know.

 

Could you please let us know why are you trying to get this information and how would it help you?

 

Thank You

 

 

 

VaradJ_Intel
Moderator
744 Views

Hi,


Sorry for the inconvenience, we are working internally to find about dynamic memory.


Meanwhile, could you please let us know why are you trying to get this information and how would it help you?


Thank You.


Lorien
Beginner
700 Views

Thank you very much for your help.

We are characterizing the performance of several HPC applications in two different machines. To understand the difference in performance between both machines, we find it very useful to have the instruction mix of each application in each machine.

VaradJ_Intel
Moderator
672 Views

Hi,


Thank you for providing us the details. We are working on this internally.


Thank You.


Vinutha_SV
Moderator
658 Views

Hi Lorien,

As of now the text report does not contain all the instruction counts. We plan to include this going forward. Please use GUI code assembly pane for now. Below few points might be helpful for you:

  1. “Other” instructions often include control-flow instructions, for example: INC (increments), CMP(compare), JB (jump). Hence you can try to review “Assembly” pane for the loops and functions of interest to check if there are such instructions
  2. If you are interested in more detailed tables with instructions, you can use our PythonAPI example for creating your own instruction mix report on Python, that will include the necessary categories by their types and sub-types (vector/scalar, operand types, ISA…): Intel_Advisor_2022.0\pythonapi\examples\custom_mix.py.

Regarding the mismatch in memory instructions - can you please provide a reproducer?


Lorien
Beginner
614 Views

Thank you for the information.

 

To reproduce the mismatch in memory instructions you can use this application: https://github.com/smarco/WFA To compile and run:

cd WFA-master
make # Compile the application
./bin/generate_dataset -n 500000 -l 100 -e 0.05 -o sample.dataset.seq # Generate input dataset
# Generate instruction-mix report
advixe-cl --collect=roofline --flop --project-dir=./advisor_results -- ./bin/align_benchmark -i sample.dataset.seq -a gap-affine-wfa
advixe-cl --report=survey --mix --project-dir=./advisor_results

 

Vinutha_SV
Moderator
557 Views

Thanks for the reproducer. We have similar findings as of you. I have logged bug for this case and I shall keep you posted on the fix.


Reply