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

    • Sub-task
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.1.0
    • 1.3.0, 2.0.0
    • Vectorization
    • 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

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

            Dates

              Created:
              Updated:
              Resolved: