JavaFastPFOR icon indicating copy to clipboard operation
JavaFastPFOR copied to clipboard

JDK 16 Vector API

Open paladin8 opened this issue 3 years ago • 6 comments

JDK 16 introduces the Vector API for SIMD parallelism directly from Java code: https://docs.oracle.com/en/java/javase/16/docs/api/jdk.incubator.vector/jdk/incubator/vector/package-summary.html

My understanding is that since the original FastPFOR library takes advantage of SIMD, it should be possible to make this one as well. Is that correct?

paladin8 avatar Jun 19 '21 17:06 paladin8

That’s correct. Many schemes should benefit.

lemire avatar Jun 19 '21 20:06 lemire

@lemire, We have implemented bit unpacking with JDK 17/18 Vector API, below are the test results compared with Parquet-mr bit pack implementation shared with you image After integrating with parquet bit pack decoding, and tested from Spark VectorizedParquetRecordReader, we could see around 2x performance gain when reading the parquet file image image image

Fang-Xie avatar Jun 21 '22 07:06 Fang-Xie

If we could submit our code to this community?

Fang-Xie avatar Jun 21 '22 07:06 Fang-Xie

Yes. Please prepare a pull request if you can.

lemire avatar Jun 21 '22 13:06 lemire

Thanks @lemire, For this project, we are under the internal procedure of open sourcing, once it's done, we will prepare a pull request.

Fang-Xie avatar Jun 22 '22 03:06 Fang-Xie

@Fang-Xie I am looking forward to reading your code.

lemire avatar Jun 22 '22 13:06 lemire