-
Enhancement
-
Resolution: Fixed
-
P4
-
25
-
b25
In SuperWord, there are some heuristics that predict the profitability of vectorization. These are not always correct, and we may want to benchmark them thoroughly and improve them in the future.
To facilitate this benchmarking, I propose we add a diagnostic flag:
AutoVectorizationOverrideProfitability
0: never profitable, i.e. abort SuperWord without vectorization
1: Use profitability heuristics to determine profitability
2: ignore profitability heuristic, vectorize anyway (if all correctness checks pass, of course)
This flag will also help us when we are working on the cost model.
And: in some cases, we end up not vectorizing because it is not possible. But the unrolling mechanism behaves different with UseSuperWord enabled and disabled. Sometimes the performance with it enabled is worse than without, because of over-unrolling.
To facilitate this benchmarking, I propose we add a diagnostic flag:
AutoVectorizationOverrideProfitability
0: never profitable, i.e. abort SuperWord without vectorization
1: Use profitability heuristics to determine profitability
2: ignore profitability heuristic, vectorize anyway (if all correctness checks pass, of course)
This flag will also help us when we are working on the cost model.
And: in some cases, we end up not vectorizing because it is not possible. But the unrolling mechanism behaves different with UseSuperWord enabled and disabled. Sometimes the performance with it enabled is worse than without, because of over-unrolling.
- relates to
-
JDK-8336000 C2 SuperWord: report that 2-element reductions do not vectorize
-
- Open
-
-
JDK-8307516 C2 SuperWord: reconsider Reduction heuristic for UnorderedReduction
-
- Open
-
-
JDK-8340093 C2 SuperWord: implement cost model
-
- Open
-
-
JDK-8345044 Sum of array elements not vectorized
-
- Open
-
-
JDK-8351409 Avoid scalar cmov in extreme long min/max loop scenarios
-
- Open
-
- links to
-
Commit(master) openjdk/jdk/e8eff4d2
-
Review(master) openjdk/jdk/25387
(2 links to)