Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-10179 Optimization for SIMD instructions in Hive
  3. HIVE-10235

Loop optimization for SIMD in ColumnDivideColumn.txt

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.1.0
    • Fix Version/s: 1.3.0, 2.0.0
    • Component/s: Vectorization
    • Labels:
      None

      Description

      Found two loop which could be optimized for packed instruction set during execution.
      1. hasDivBy0 depends on the result of last loop, which prevent the loop be executed vectorized.

      for(int i = 0; i != n; i++) {
            <OperandType2> denom = vector2[i];
            outputVector[i] = vector1[0] <OperatorSymbol> denom;
            hasDivBy0 = hasDivBy0 || (denom == 0);
      }
      

      2. same as HIVE-10180, vector2[0] reference provent JVM optimizing loop into packed instruction set.

      for(int i = 0; i != n; i++) {
            outputVector[i] = vector1[i] <OperatorSymbol> vector2[0];
      }
      

        Attachments

        1. HIVE-10235.1.patch
          12 kB
          Chengxiang Li
        2. HIVE-10235.1.patch
          13 kB
          Chengxiang Li

          Activity

            People

            • Assignee:
              chengxiang li Chengxiang Li
              Reporter:
              chengxiang li Chengxiang Li
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: