Help is available by moving the cursor above any
symbol or by checking MAQAO website.
[ 4 / 4 ] Application profile is long enough (43.24 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3 / 3 ] Most of time spent in analyzed modules (100.00%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.08 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (47.80%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 99.54% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 99.54% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (15.23%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (46.15%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.55%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.27%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (0.00%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.65%) lower than cumulative innermost loop coverage (46.15%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.02%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 15 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 928 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 1986 - exec | Execution Time: 3 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 931 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 1426 - exec | Execution Time: 3 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (43.70 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.90%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.10 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (47.79%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 199.36% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 99.71% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (15.30%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (46.52%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.95%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.24%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (2.29%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.27%) lower than cumulative innermost loop coverage (46.52%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.05%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 15 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 2268 - exec | Execution Time: 5 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 930 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 928 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 1986 - exec | Execution Time: 3 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 931 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 1426 - exec | Execution Time: 3 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 940 - exec | Execution Time: 0 % - Vectorization Ratio: 96.43 % - Vector Length Use: 98.21 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Less than 10% of the FP ADD/SUB/MUL arithmetic operations are performed using FMA - Reorganize arithmetic expressions to exhibit potential for FMA. This issue costs 4 points. | 4 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (44.63 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.87%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.05 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (47.64%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 397.83% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 99.50% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (15.02%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (46.22%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.97%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.26%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (1.61%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.42%) lower than cumulative innermost loop coverage (46.22%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.02%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 15 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 2268 - exec | Execution Time: 5 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 929 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 1986 - exec | Execution Time: 3 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 3 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 1426 - exec | Execution Time: 3 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 940 - exec | Execution Time: 0 % - Vectorization Ratio: 96.43 % - Vector Length Use: 98.21 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Less than 10% of the FP ADD/SUB/MUL arithmetic operations are performed using FMA - Reorganize arithmetic expressions to exhibit potential for FMA. This issue costs 4 points. | 4 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (48.01 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.90%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.04 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (48.50%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 791.84% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 99.03% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (14.21%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (46.97%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.96%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.26%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (2.79%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.53%) lower than cumulative innermost loop coverage (46.97%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.02%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 14 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 929 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 928 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 1986 - exec | Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 1426 - exec | Execution Time: 2 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (56.85 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.97%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.03 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (47.76%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 1569.00% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 98.12% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (12.53%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (46.18%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.93%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.23%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.29%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.58%) lower than cumulative innermost loop coverage (46.18%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.01%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 12 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 930 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 928 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 2 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 940 - exec | Execution Time: 0 % - Vectorization Ratio: 96.43 % - Vector Length Use: 98.21 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Less than 10% of the FP ADD/SUB/MUL arithmetic operations are performed using FMA - Reorganize arithmetic expressions to exhibit potential for FMA. This issue costs 4 points. | 4 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (63.14 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.98%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.02 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (48.29%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 2337.11% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 97.44% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (12.00%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (46.81%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.94%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.21%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.49%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.48%) lower than cumulative innermost loop coverage (46.81%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.01%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 11 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 6 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 929 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 928 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 2 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (72.05 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.97%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.02 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (50.92%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 3098.48% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 96.89% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (11.32%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (49.31%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.89%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.19%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.31%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.61%) lower than cumulative innermost loop coverage (49.31%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.01%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 11 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 7 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 4 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 2 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (79.82 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.95%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.02 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (52.60%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 3856.47% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 96.47% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (10.81%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (51.07%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.91%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.18%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.45%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.53%) lower than cumulative innermost loop coverage (51.07%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.01%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 10 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 8 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 2 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (87.74 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.95%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.02 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (52.58%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 4605.31% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 96.01% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (10.25%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (51.04%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.85%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.17%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.30%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.54%) lower than cumulative innermost loop coverage (51.04%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.01%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 10 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 8 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 1 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (95.87 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.93%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.01 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (51.73%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 5351.62% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 95.64% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (9.62%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (50.21%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.84%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.16%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.49%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.53%) lower than cumulative innermost loop coverage (50.21%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.01%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 9 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 8 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 1 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (104.41 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.97%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.01 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (51.07%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 6101.23% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 95.40% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (9.30%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (49.53%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.83%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.16%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.34%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.54%) lower than cumulative innermost loop coverage (49.53%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.01%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 9 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 8 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 1 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 919 - exec | Execution Time: 0 % - Vectorization Ratio: 9.09 % - Vector Length Use: 52.27 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
| ►Vectorization Roadblocks | 18 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 9 issues ( = data accesses) costing 2 point each. | 18 |
[ 4 / 4 ] Application profile is long enough (112.97 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.96%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.01 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (51.11%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 6843.95% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 95.13% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (9.05%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (49.48%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.86%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.15%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.18%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.64%) lower than cumulative innermost loop coverage (49.48%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.00%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 9 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 8 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 1 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 289 - exec | Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 41.67 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ○Control Flow Issues | 0 | |
| ►Vectorization Roadblocks | 1000 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
[ 4 / 4 ] Application profile is long enough (121.04 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.95%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.01 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (51.64%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 7591.65% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 94.97% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (8.97%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (49.88%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.81%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.15%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.03%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.76%) lower than cumulative innermost loop coverage (49.88%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.00%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 942 - exec | Execution Time: 8 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 1986 - exec | Execution Time: 8 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 1 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 289 - exec | Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 41.67 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ○Control Flow Issues | 0 | |
| ►Vectorization Roadblocks | 1000 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
[ 4 / 4 ] Application profile is long enough (128.77 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.95%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.01 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (51.92%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 8331.28% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 94.75% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (9.01%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (50.09%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.86%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.14%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.11%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.83%) lower than cumulative innermost loop coverage (50.09%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.00%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 1986 - exec | Execution Time: 9 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 942 - exec | Execution Time: 8 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 1426 - exec | Execution Time: 1 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 289 - exec | Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 41.67 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ○Control Flow Issues | 0 | |
| ►Vectorization Roadblocks | 1000 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
[ 4 / 4 ] Application profile is long enough (138.43 s)
To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info
-g option gives access to debugging informations, such are source locations.
[ 3.00 / 3 ] Most of time spent in analyzed modules (99.95%) comes from functions compiled with architecture specialization option -mcpu
[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present
-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.
[ 3 / 3 ] Optimization level option is correctly used
[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.
[ 2 / 2 ] Application is correctly profiled ("Others" category represents 0.01 % of the execution time)
To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code
[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.
[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (52.66%)
If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.
[ 4 / 4 ] Threads activity is good
On average, more than 9067.38% of observed threads are actually active
[ 4 / 4 ] CPU activity is good
CPU cores are active 94.53% of time
[ 4 / 4 ] Loop profile is not flat
At least one loop coverage is greater than 4% (9.16%), representing an hotspot for the application
[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (50.67%)
If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.
[ 4 / 4 ] Affinity is good (99.87%)
Threads are not migrating to CPU cores: probably successfully pinned
[ 3 / 3 ] Less than 10% (0.14%) is spend in BLAS1 operations
It could be more efficient to inline by hand BLAS1 operations
[ 3 / 3 ] Functions mostly use all threads
Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (3.23%)
[ 3 / 3 ] Cumulative Outermost/In between loops coverage (1.99%) lower than cumulative innermost loop coverage (50.67%)
Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex
[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations
BLAS2 calls usually could make a poor cache usage and could benefit from inlining.
[ 2 / 2 ] Less than 10% (0.00%) is spend in Libm/SVML (special functions)
| Loop ID | Analysis | Penalty Score |
|---|---|---|
| ►Loop 1986 - exec | Execution Time: 9 % - Vectorization Ratio: 0.00 % - Vector Length Use: 50.00 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Data Access Issues | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Vectorization Roadblocks | 12 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 6 issues ( = data accesses) costing 2 point each. | 12 |
| ►Loop 942 - exec | Execution Time: 8 % - Vectorization Ratio: 97.92 % - Vector Length Use: 98.96 % | |
| ►Data Access Issues | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Vectorization Roadblocks | 26 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 13 issues ( = data accesses) costing 2 point each. | 26 |
| ►Loop 928 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 929 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 930 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 931 - exec | Execution Time: 5 % - Vectorization Ratio: 91.67 % - Vector Length Use: 95.83 % | |
| ►Data Access Issues | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Vectorization Roadblocks | 10 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 5 issues ( = data accesses) costing 2 point each. | 10 |
| ►Loop 2268 - exec | Execution Time: 4 % - Vectorization Ratio: 97.44 % - Vector Length Use: 98.72 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Vectorization Roadblocks | 14 | |
| ○ | [SA] Presence of constant non unit stride data access - Use array restructuring, perform loop interchange or use gather instructions to lower a bit the cost. There are 7 issues ( = data accesses) costing 2 point each. | 14 |
| ►Loop 355 - exec | Execution Time: 1 % - Vectorization Ratio: 0.00 % - Vector Length Use: 42.31 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ►Control Flow Issues | 2 | |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Vectorization Roadblocks | 1002 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |
| ○ | [SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points. | 2 |
| ►Loop 1426 - exec | Execution Time: 1 % - Vectorization Ratio: 88.68 % - Vector Length Use: 93.40 % | |
| ►Loop Computation Issues | 4 | |
| ○ | [SA] Presence of expensive FP instructions - Perform hoisting, change algorithm, use SVML or proper numerical library or perform value profiling (count the number of distinct input values). There are 1 issues (= instructions) costing 4 points each. | 4 |
| ►Data Access Issues | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Vectorization Roadblocks | 28 | |
| ○ | [SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 7 issues ( = indirect data accesses) costing 4 point each. | 28 |
| ►Loop 289 - exec | Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 41.67 % | |
| ►Loop Computation Issues | 2 | |
| ○ | [SA] Presence of a large number of scalar integer instructions - Simplify loop structure, perform loop splitting or perform unroll and jam. This issue costs 2 points. | 2 |
| ○Control Flow Issues | 0 | |
| ►Vectorization Roadblocks | 1000 | |
| ○ | [SA] Too many paths (at least 1000 paths) - Simplify control structure. There are at least 1000 issues ( = paths) costing 1 point. | 1000 |