RFR: JDK-8300808: Accelerate Base64 on x86 for AVX2 [v4]
Scott Gibbons
duke at openjdk.org
Tue Jan 24 15:56:29 UTC 2023
> Added code for Base64 acceleration (encode and decode) which will accelerate ~4x for AVX2 platforms.
>
> Encode performance:
> **Old:**
>
> Benchmark (maxNumBytes) Mode Cnt Score Error Units
> Base64Encode.testBase64Encode 1024 thrpt 3 4309.439 ± 2.632 ops/ms
>
>
> **New:**
>
> Benchmark (maxNumBytes) Mode Cnt Score Error Units
> Base64Encode.testBase64Encode 1024 thrpt 3 24211.397 ± 102.026 ops/ms
>
>
> Decode performance:
> **Old:**
>
> Benchmark (errorIndex) (lineSize) (maxNumBytes) Mode Cnt Score Error Units
> Base64Decode.testBase64Decode 144 4 1024 thrpt 3 3961.768 ± 93.409 ops/ms
>
> **New:**
> Benchmark (errorIndex) (lineSize) (maxNumBytes) Mode Cnt Score Error Units
> Base64Decode.testBase64Decode 144 4 1024 thrpt 3 14738.051 ± 24.383 ops/ms
Scott Gibbons has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 11 additional commits since the last revision:
- Merge branch 'openjdk:master' into Base64-AVX2
- Merge branch 'Base64-AVX2' of https://github.com/asgibbons/jdk into Base64-AVX2
- Merge branch 'openjdk:master' into Base64-AVX2
- Address review comment
- Remove whitespace
- Fix wrong register usage
- Working version of Base64 decode with AVX2 (4x perf improvement). No URL support
- Merge branch 'Base64-AVX2' of https://github.com/asgibbons/jdk into Base64-AVX2
- Merge branch 'openjdk:master' into Base64-AVX2
- Intermediate AVX2 for decode
- ... and 1 more: https://git.openjdk.org/jdk/compare/74411fed...f9140f40
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/12126/files
- new: https://git.openjdk.org/jdk/pull/12126/files/c776d90f..f9140f40
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12126&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12126&range=02-03
Stats: 471 lines in 76 files changed: 123 ins; 121 del; 227 mod
Patch: https://git.openjdk.org/jdk/pull/12126.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12126/head:pull/12126
PR: https://git.openjdk.org/jdk/pull/12126
More information about the core-libs-dev
mailing list