Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8244856

[vector] reduction enhancements


    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: repo-panama
    • Fix Version/s: repo-panama
    • Component/s: hotspot


      - The reduction Implementation on x64 can be smarter since it uses the identity value for accumulation. Because of sharing with the auto-vectorizer a final and redundant reduction operation is performed using the identity value. Shared code should ideally be ehanced.

      - Consider expanding the Vector API reduction operation to accept an initial scalar value. (Although this can be expressed by explicitly applying the scalar operation to the result with a scalar value, and that pattern might be recognizable by C2).

      - For floating pointing reductions on "morally" associative operations (ADD, MUL) consider specifying a reduction order, or an additional "strict" variant of the operation where order is specified. (Note for some algorithms, perhaps those more so for machine learning, rounding errors may be less of an issue.)

      - Further, for floating pointing reductions where round errors matter consider possible compensating algorithms (accuracy vs. performance, it is unknown if a performant but accurate data parallel reduction algorithm exists for the vector lane count sizes of data)

      For further details see https://mail.openjdk.java.net/pipermail/panama-dev/2020-May/008988.html




            • Assignee:
              psandoz Paul Sandoz
            • Votes:
              0 Vote for this issue
              1 Start watching this issue


              • Created: