hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Teddy Choi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-15824) Loop optimization for SIMD in double comparisons
Date Tue, 21 Feb 2017 11:05:44 GMT

    [ https://issues.apache.org/jira/browse/HIVE-15824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15875794#comment-15875794
] 

Teddy Choi commented on HIVE-15824:
-----------------------------------

I made a draft implementation with Double.doubleToRawLongBits. And it's slower than original.
Maybe Unsafe.getLong can be an alternative.

Before
{code}
o.a.h.b.v.VectorizedComparisonBench.DoubleColEqualDoubleColumnBench.bench              avgt
       2  1114.343 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColEqualDoubleScalarBench.bench              avgt
       2   857.549 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterDoubleColumnBench.bench            avgt
       2  1410.078 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterDoubleScalarBench.bench            avgt
       2   705.738 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterEqualDoubleColumnBench.bench       avgt
       2  1134.613 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterEqualDoubleScalarBench.bench       avgt
       2   685.269 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessDoubleColumnBench.bench               avgt
       2  1248.419 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessDoubleScalarBench.bench               avgt
       2   664.593 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessEqualDoubleColumnBench.bench          avgt
       2  1048.175 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessEqualDoubleScalarBench.bench          avgt
       2   703.839 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColNotEqualDoubleColumnBench.bench           avgt
       2  1042.366 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColNotEqualDoubleScalarBench.bench           avgt
       2   823.484 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarEqualDoubleColumnBench.bench           avgt
       2   913.149 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarGreaterDoubleColumnBench.bench         avgt
       2   692.095 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarGreaterEqualDoubleColumnBench.bench    avgt
       2  3446.145 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarLessDoubleColumnBench.bench            avgt
       2   685.639 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarLessEqualDoubleColumnBench.bench       avgt
       2   683.063 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarNotEqualDoubleColumnBench.bench        avgt
       2   815.801 ±   NaN  ms/op
{code}

After
{code}
o.a.h.b.v.VectorizedComparisonBench.DoubleColEqualDoubleColumnBench.bench              avgt
       2  2042.958 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColEqualDoubleScalarBench.bench              avgt
       2  1448.942 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterDoubleColumnBench.bench            avgt
       2  1413.319 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterDoubleScalarBench.bench            avgt
       2   806.678 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterEqualDoubleColumnBench.bench       avgt
       2  1512.124 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColGreaterEqualDoubleScalarBench.bench       avgt
       2   968.015 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessDoubleColumnBench.bench               avgt
       2  1395.853 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessDoubleScalarBench.bench               avgt
       2   818.353 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessEqualDoubleColumnBench.bench          avgt
       2  1493.037 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColLessEqualDoubleScalarBench.bench          avgt
       2   946.533 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColNotEqualDoubleColumnBench.bench           avgt
       2  1860.316 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleColNotEqualDoubleScalarBench.bench           avgt
       2  1356.694 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarEqualDoubleColumnBench.bench           avgt
       2  1607.872 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarGreaterDoubleColumnBench.bench         avgt
       2   790.920 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarGreaterEqualDoubleColumnBench.bench    avgt
       2   971.054 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarLessDoubleColumnBench.bench            avgt
       2   795.728 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarLessEqualDoubleColumnBench.bench       avgt
       2   958.495 ±   NaN  ms/op
o.a.h.b.v.VectorizedComparisonBench.DoubleScalarNotEqualDoubleColumnBench.bench        avgt
       2  1496.665 ±   NaN  ms/op
{code}

> Loop optimization for SIMD in double comparisons
> ------------------------------------------------
>
>                 Key: HIVE-15824
>                 URL: https://issues.apache.org/jira/browse/HIVE-15824
>             Project: Hive
>          Issue Type: Sub-task
>            Reporter: Teddy Choi
>            Assignee: Teddy Choi
>
> Use Double.doubleToRawLongBits, HIVE-11533 to optimize double comparisons.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message