[
https://issues.apache.org/jira/browse/HIVE-18866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16412467#comment-16412467
]
Gopal V edited comment on HIVE-18866 at 3/24/18 7:33 AM:
---------------------------------------------------------
This codepath also runs hot during the HLL computation for column stats on
Double & Longs.
{code}
15.83 │ movzbq 0x18(%r10,%rsi,1),%rax
0.03 │ cmp %ebx,%ecx
│ . jae 32d
0.03 │ vmovd %ebx,%xmm0
0.00 │ vmovd %edx,%xmm1
0.02 │ movslq %r13d,%r14
2.81 │ movzbq 0x19(%r10,%r14,1),%r8
2.79 │ movzbq 0x1f(%r10,%r14,1),%rcx
0.45 │ movzbq 0x1a(%r10,%r14,1),%rbx
0.60 │ movzbq 0x1b(%r10,%r14,1),%rdx
0.41 │ movzbq 0x1c(%r10,%r14,1),%rsi
1.63 │ movzbq 0x1d(%r10,%r14,1),%r13
0.78 │ movzbq 0x1e(%r10,%r14,1),%r14
{code}
{code}
0.00 │ vmovq %xmm2,%r10
▒
0.03 │ mov %r10d,%r10d
▒
│ movslq %r11d,%rsi
▒
│ mov %dil,0x19(%r8,%rsi,1)
▒
0.00 │ vmovq %xmm2,%r11
▒
0.05 │ sar $0x8,%r11
▒
│ vmovq %xmm2,%r9
▒
│ sar $0x10,%r9
▒
0.00 │ mov %r11d,%r11d
▒
0.03 │ mov %r9d,%r9d
▒
│ vmovq %xmm2,%rdi
▒
│ sar $0x18,%rdi
▒
0.00 │ vmovq %xmm2,%rdx
▒
0.05 │ sar $0x20,%rdx
▒
│ mov %edi,%eax
▒
│ mov %edx,%r13d
▒
0.00 │ vmovq %xmm2,%rdi
▒
0.04 │ sar $0x28,%rdi
▒
│ mov %edi,%edi
▒
0.00 │ mov %dil,0x1a(%r8,%rsi,1)
▒
0.00 │ mov %r13b,0x1b(%r8,%rsi,1)
▒
0.05 │ mov %al,0x1c(%r8,%rsi,1)
▒
│ mov %r9b,0x1d(%r8,%rsi,1)
▒
│ mov %r11b,0x1e(%r8,%rsi,1)
▒
0.00 │ mov %r10b,0x1f(%r8,%rsi,1)
▒
0.03 │ test %ebx,%ebx
▒
│ . jne b99
▒
0.00 │ mov %r8,%rsi
▒
│ xor %edx,%edx
▒
0.00 │ mov $0x19919,%r8d
▒
0.05 │ xchg %ax,%ax
▒
0.00 │ + callq Lorg/apache/hive/common/util/Murmur3;.hash64
▒
0.01 │ mov %rax,%rdx
▒
0.02 │ mov (%rsp),%rsi
▒
0.03 │ + callq Lorg/apache/hadoop/hive/common/ndv/hll/HyperLogLog;.add
{code}
was (Author: gopalv):
This codepath also runs hot during the HLL computation for column stats on
Double & Longs.
{code}
15.83 │ movzbq 0x18(%r10,%rsi,1),%rax
0.03 │ cmp %ebx,%ecx
│ . jae 32d
0.03 │ vmovd %ebx,%xmm0
0.00 │ vmovd %edx,%xmm1
0.02 │ movslq %r13d,%r14
2.81 │ movzbq 0x19(%r10,%r14,1),%r8
2.79 │ movzbq 0x1f(%r10,%r14,1),%rcx
0.45 │ movzbq 0x1a(%r10,%r14,1),%rbx
0.60 │ movzbq 0x1b(%r10,%r14,1),%rdx
0.41 │ movzbq 0x1c(%r10,%r14,1),%rsi
1.63 │ movzbq 0x1d(%r10,%r14,1),%r13
0.78 │ movzbq 0x1e(%r10,%r14,1),%r14
{code}
> Semijoin: Implement a Long -> Hash64 vector fast-path
> -----------------------------------------------------
>
> Key: HIVE-18866
> URL: https://issues.apache.org/jira/browse/HIVE-18866
> Project: Hive
> Issue Type: Improvement
> Components: Vectorization
> Reporter: Gopal V
> Priority: Major
> Labels: performance
> Attachments: perf-hash64-long.png
>
>
> A significant amount of CPU is wasted with JMM restrictions on byte[] arrays.
> To transform from one Long -> another Long, this goes into a byte[] array,
> which shows up as a hotspot.
> !perf-hash64-long.png!
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
