cyb70289 commented on PR #40335:
URL: https://github.com/apache/arrow/pull/40335#issuecomment-1987514574
Did a quick profiling. For gcc, looks Neon code doesn't save total
instructions. Normalize instructions by iteration gives similar result for both
the scalar and neon benchmark.
`ASE_SPEC` in output means total Neon (asimd) instructions.
- profile scalar encode
```
perf stat -e ASE_SPEC,instructions,cycles --
release/parquet-encoding-benchmark
--benchmark_filter=BM_ByteStreamSplitEncode_Double_Scalar/65536
-------------------------------------------------------------------------------------------------------
Benchmark Time CPU
Iterations UserCounters...
-------------------------------------------------------------------------------------------------------
BM_ByteStreamSplitEncode_Double_Scalar/65536 152798 ns 152798 ns
4586 bytes_per_second=3.19561Gi/s
37,622 ASE_SPEC
9,189,030,863 instructions # 3.48 insn per
cycle
2,643,007,625 cycles
```
- profile neon encode
```
perf stat -e ASE_SPEC,instructions,cycles --
release/parquet-encoding-benchmark
--benchmark_filter=BM_ByteStreamSplitEncode_Double_Neon/65536
-----------------------------------------------------------------------------------------------------
Benchmark Time CPU
Iterations UserCounters...
-----------------------------------------------------------------------------------------------------
BM_ByteStreamSplitEncode_Double_Neon/65536 177150 ns 177149 ns
3948 bytes_per_second=2.75633Gi/s
2,985,430,024 ASE_SPEC
7,998,814,771 instructions # 2.94 insn per
cycle
2,718,202,634 cycles
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]