options

md-clang-O3 - 2025-08-21 13:49:11 - MAQAO 2025.1.2

Help is available by moving the cursor above any symbol or by checking MAQAO website.

  • run_0
  • run_1
  • run_2
  • run_3
  • run_4
  • run_5

Stylizer  

[ 4 / 4 ] Application profile is long enough (1116.41 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 0 / 3 ] Some functions are compiled with a low optimization level (O0 or O1)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation information

Functions without compilation information (typically not compiled with -g and -grecord-gcc-switches) cumulate 100.00% of the time spent in analyzed modules. Check that -g and -grecord-gcc-switches are present. Remark: if -g and -grecord-gcc-switches are indeed used, this can also be due to some compiler built-in functions (typically math) or statically linked libraries. This warning can be ignored in that case.

[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.

[ 0 / 3 ] Compilation of some functions is not optimized for the target processor

Architecture specific options are needed to produce efficient code for a specific processor ( -x(target) or -ax(target) ).

[ 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.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

Strategizer  

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (98.44%)

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.92% of observed threads are actually active

[ 4 / 4 ] CPU activity is good

CPU cores are active 99.93% of time

[ 4 / 4 ] Loop profile is not flat

At least one loop coverage is greater than 4% (63.58%), representing an hotspot for the application

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (33.56%)

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 (100.00%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 3 / 3 ] Less than 10% (0.00%) 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.01%)

[ 0 / 3 ] Cumulative Outermost/In between loops coverage (64.89%) greater than cumulative innermost loop coverage (33.56%)

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% (1.20%) is spend in Libm/SVML (special functions)

Optimizer

Loop IDAnalysisPenalty Score
Loop 20 - md-clang-O3+Execution Time: 63 % - Vectorization Ratio: 17.10 % - Vector Length Use: 14.64 %
Loop Computation Issues+16
[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 4 issues (= instructions) costing 4 points each.16
Control Flow Issues+4
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. 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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
Vectorization Roadblocks+22
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 26 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 25 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 22 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 23 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 21 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 24 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 19 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 11.67 %
Control Flow Issues+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 18 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 7.89 %
Control Flow Issues+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 35 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1
Vectorization Roadblocks+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1

Stylizer  

[ 4 / 4 ] Application profile is long enough (570.46 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 0 / 3 ] Some functions are compiled with a low optimization level (O0 or O1)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation information

Functions without compilation information (typically not compiled with -g and -grecord-gcc-switches) cumulate 100.00% of the time spent in analyzed modules. Check that -g and -grecord-gcc-switches are present. Remark: if -g and -grecord-gcc-switches are indeed used, this can also be due to some compiler built-in functions (typically math) or statically linked libraries. This warning can be ignored in that case.

[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.

[ 0 / 3 ] Compilation of some functions is not optimized for the target processor

Architecture specific options are needed to produce efficient code for a specific processor ( -x(target) or -ax(target) ).

[ 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.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

Strategizer  

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (97.63%)

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.83% of observed threads are actually active

[ 4 / 4 ] CPU activity is good

CPU cores are active 99.93% of time

[ 4 / 4 ] Loop profile is not flat

At least one loop coverage is greater than 4% (62.76%), representing an hotspot for the application

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (33.46%)

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 (100.00%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 3 / 3 ] Less than 10% (0.00%) 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.19%)

[ 0 / 3 ] Cumulative Outermost/In between loops coverage (64.17%) greater than cumulative innermost loop coverage (33.46%)

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% (1.17%) is spend in Libm/SVML (special functions)

Optimizer

Loop IDAnalysisPenalty Score
Loop 20 - md-clang-O3+Execution Time: 62 % - Vectorization Ratio: 17.10 % - Vector Length Use: 14.64 %
Loop Computation Issues+16
[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 4 issues (= instructions) costing 4 points each.16
Control Flow Issues+4
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. 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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
Vectorization Roadblocks+22
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 25 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 26 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 22 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 23 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 21 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 24 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 19 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 11.67 %
Control Flow Issues+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 18 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 7.89 %
Control Flow Issues+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 35 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1
Vectorization Roadblocks+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1

Stylizer  

[ 4 / 4 ] Application profile is long enough (293.63 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 0 / 3 ] Some functions are compiled with a low optimization level (O0 or O1)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation information

Functions without compilation information (typically not compiled with -g and -grecord-gcc-switches) cumulate 100.00% of the time spent in analyzed modules. Check that -g and -grecord-gcc-switches are present. Remark: if -g and -grecord-gcc-switches are indeed used, this can also be due to some compiler built-in functions (typically math) or statically linked libraries. This warning can be ignored in that case.

[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.

[ 0 / 3 ] Compilation of some functions is not optimized for the target processor

Architecture specific options are needed to produce efficient code for a specific processor ( -x(target) or -ax(target) ).

[ 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.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

Strategizer  

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (95.44%)

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 399.33% of observed threads are actually active

[ 4 / 4 ] CPU activity is good

CPU cores are active 99.86% of time

[ 4 / 4 ] Loop profile is not flat

At least one loop coverage is greater than 4% (60.96%), representing an hotspot for the application

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (33.17%)

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.99%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 3 / 3 ] Less than 10% (0.00%) 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.40%)

[ 0 / 3 ] Cumulative Outermost/In between loops coverage (62.28%) greater than cumulative innermost loop coverage (33.17%)

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% (1.13%) is spend in Libm/SVML (special functions)

Optimizer

Loop IDAnalysisPenalty Score
Loop 20 - md-clang-O3+Execution Time: 60 % - Vectorization Ratio: 17.10 % - Vector Length Use: 14.64 %
Loop Computation Issues+16
[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 4 issues (= instructions) costing 4 points each.16
Control Flow Issues+4
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. 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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
Vectorization Roadblocks+22
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 25 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 26 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 22 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 23 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 21 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 24 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 19 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 11.67 %
Control Flow Issues+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 18 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 7.89 %
Control Flow Issues+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 35 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1
Vectorization Roadblocks+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1

Stylizer  

[ 4 / 4 ] Application profile is long enough (153.74 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 0 / 3 ] Some functions are compiled with a low optimization level (O0 or O1)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation information

Functions without compilation information (typically not compiled with -g and -grecord-gcc-switches) cumulate 100.00% of the time spent in analyzed modules. Check that -g and -grecord-gcc-switches are present. Remark: if -g and -grecord-gcc-switches are indeed used, this can also be due to some compiler built-in functions (typically math) or statically linked libraries. This warning can be ignored in that case.

[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.

[ 0 / 3 ] Compilation of some functions is not optimized for the target processor

Architecture specific options are needed to produce efficient code for a specific processor ( -x(target) or -ax(target) ).

[ 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.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

Strategizer  

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (92.33%)

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 797.86% of observed threads are actually active

[ 4 / 4 ] CPU activity is good

CPU cores are active 99.79% of time

[ 4 / 4 ] Loop profile is not flat

At least one loop coverage is greater than 4% (58.13%), representing an hotspot for the application

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (32.92%)

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.99%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 3 / 3 ] Less than 10% (0.00%) 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.81%)

[ 0 / 3 ] Cumulative Outermost/In between loops coverage (59.41%) greater than cumulative innermost loop coverage (32.92%)

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% (1.08%) is spend in Libm/SVML (special functions)

Optimizer

Loop IDAnalysisPenalty Score
Loop 20 - md-clang-O3+Execution Time: 58 % - Vectorization Ratio: 17.10 % - Vector Length Use: 14.64 %
Loop Computation Issues+16
[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 4 issues (= instructions) costing 4 points each.16
Control Flow Issues+4
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. 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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
Vectorization Roadblocks+22
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 25 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 26 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 22 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 23 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 21 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 24 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 19 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 11.67 %
Control Flow Issues+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 18 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 7.89 %
Control Flow Issues+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 35 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1
Vectorization Roadblocks+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1

Stylizer  

[ 4 / 4 ] Application profile is long enough (99.42 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 0 / 3 ] Some functions are compiled with a low optimization level (O0 or O1)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation information

Functions without compilation information (typically not compiled with -g and -grecord-gcc-switches) cumulate 100.00% of the time spent in analyzed modules. Check that -g and -grecord-gcc-switches are present. Remark: if -g and -grecord-gcc-switches are indeed used, this can also be due to some compiler built-in functions (typically math) or statically linked libraries. This warning can be ignored in that case.

[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.

[ 0 / 3 ] Compilation of some functions is not optimized for the target processor

Architecture specific options are needed to produce efficient code for a specific processor ( -x(target) or -ax(target) ).

[ 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.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

Strategizer  

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (89.02%)

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 1293.59% of observed threads are actually active

[ 4 / 4 ] CPU activity is good

CPU cores are active 99.60% of time

[ 4 / 4 ] Loop profile is not flat

At least one loop coverage is greater than 4% (55.23%), representing an hotspot for the application

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (32.58%)

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.99%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 3 / 3 ] Less than 10% (0.00%) 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.38%)

[ 0 / 3 ] Cumulative Outermost/In between loops coverage (56.44%) greater than cumulative innermost loop coverage (32.58%)

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% (1.01%) is spend in Libm/SVML (special functions)

Optimizer

Loop IDAnalysisPenalty Score
Loop 20 - md-clang-O3+Execution Time: 55 % - Vectorization Ratio: 17.10 % - Vector Length Use: 14.64 %
Loop Computation Issues+16
[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 4 issues (= instructions) costing 4 points each.16
Control Flow Issues+4
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. 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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
Vectorization Roadblocks+22
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 25 - md-clang-O3+Execution Time: 6 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 26 - md-clang-O3+Execution Time: 6 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 23 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 22 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 21 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 24 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 19 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 11.67 %
Control Flow Issues+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 18 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 7.89 %
Control Flow Issues+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 35 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1
Vectorization Roadblocks+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1

Stylizer  

[ 4 / 4 ] Application profile is long enough (56.67 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 0 / 3 ] Some functions are compiled with a low optimization level (O0 or O1)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation information

Functions without compilation information (typically not compiled with -g and -grecord-gcc-switches) cumulate 100.00% of the time spent in analyzed modules. Check that -g and -grecord-gcc-switches are present. Remark: if -g and -grecord-gcc-switches are indeed used, this can also be due to some compiler built-in functions (typically math) or statically linked libraries. This warning can be ignored in that case.

[ 3 / 3 ] Host configuration allows retrieval of all necessary metrics.

[ 0 / 3 ] Compilation of some functions is not optimized for the target processor

Architecture specific options are needed to produce efficient code for a specific processor ( -x(target) or -ax(target) ).

[ 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.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

Strategizer  

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (82.55%)

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 2577.89% of observed threads are actually active

[ 4 / 4 ] CPU activity is good

CPU cores are active 99.32% of time

[ 4 / 4 ] Loop profile is not flat

At least one loop coverage is greater than 4% (49.82%), representing an hotspot for the application

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (31.75%)

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.98%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 3 / 3 ] Less than 10% (0.00%) 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 (4.17%)

[ 0 / 3 ] Cumulative Outermost/In between loops coverage (50.80%) greater than cumulative innermost loop coverage (31.75%)

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.90%) is spend in Libm/SVML (special functions)

Optimizer

Loop IDAnalysisPenalty Score
Loop 20 - md-clang-O3+Execution Time: 49 % - Vectorization Ratio: 17.10 % - Vector Length Use: 14.64 %
Loop Computation Issues+16
[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 4 issues (= instructions) costing 4 points each.16
Control Flow Issues+4
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. 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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
Vectorization Roadblocks+22
[SA] Several paths (2 paths) - Simplify control structure or force the compiler to use masked instructions. There are 2 issues ( = paths) costing 1 point each.2
[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 3 issues ( = data accesses) costing 2 point each.6
[SA] Presence of indirect accesses - Use array restructuring or gather instructions to lower the cost. There are 3 issues ( = indirect data accesses) costing 4 point each.12
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 25 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 26 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 24 - md-clang-O3+Execution Time: 5 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 21 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 22 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 23 - md-clang-O3+Execution Time: 4 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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
Loop 19 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 11.67 %
Control Flow Issues+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+5
[SA] Several paths (3 paths) - Simplify control structure or force the compiler to use masked instructions. There are 3 issues ( = paths) costing 1 point each.3
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Loop 35 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 12.50 %
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+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1
Vectorization Roadblocks+1
[SA] Presence of calls - Inline either by compiler or by hand and use SVML for libm calls. There are 1 issues (= calls) costing 1 point each.1
Loop 18 - md-clang-O3+Execution Time: 0 % - Vectorization Ratio: 0.00 % - Vector Length Use: 7.89 %
Control Flow Issues+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
Vectorization Roadblocks+12
[SA] Too many paths (6 paths) - Simplify control structure. There are 6 issues ( = paths) costing 1 point each with a malus of 4 points.10
[SA] Non innermost loop (InBetween) - Collapse loop with innermost ones. This issue costs 2 points.2
×