Difference between revisions of "CodeCompositionIneffective"
Jump to navigation
Jump to search
m |
|||
Line 1: | Line 1: | ||
+ | [[Category:Performance Pattern]] | ||
== Description == | == Description == | ||
The pattern "Code composition - inefficient instructions" describes the usage of one kind of instructions although there exists a better kind, e.g. scalar vs. vectorized FP instructions. | The pattern "Code composition - inefficient instructions" describes the usage of one kind of instructions although there exists a better kind, e.g. scalar vs. vectorized FP instructions. |
Latest revision as of 15:17, 3 September 2019
Description
The pattern "Code composition - inefficient instructions" describes the usage of one kind of instructions although there exists a better kind, e.g. scalar vs. vectorized FP instructions.
Symptoms
Like Instruction Overhead.
For a piece of high-level code, the compiler outputs a lot of instructions although is could be done in less. One common example are non-vectorized instructions.
Detection
For code with FP arithmetic, check whether scalar instructions are dominating in data parallel loops.
LIKWID groups: FLOPS_DP, FLOPS_SP (see vectorization ratio)
Possible optimizations and/or fixes
- Try to give hints to the compiler so that it can use the more efficient instructions. (E.g.
#pragma simd
) - Reorganize access pattern
- Avoid loop carried dependecies