[vectorIntrinsics] RFR: 8244490: [vector] Move Vector API micro benchmarks under test/micro
psandoz at openjdk.java.net
Thu May 6 17:58:06 UTC 2021
On Mon, 3 May 2021 20:52:50 GMT, Marcus G K Williams <mgkwill at openjdk.org> wrote:
> Vector API micro benchmarks are currently located under test/jdk/jdk/incubator/vector/benchmark which makes them rather as "dead" code without possibility to built and run.
> The proper location for micro benchmarks is actually test/micro/ directory.
> It would be nice to move Vector API benchmarks there so they can be built automatically as part 'test-image' make target.
> Once they are built they can be run as
> make run-test TEST=micro:BENCHMARK_TEST_NAME
I looked more in detail, there are some immediate issues, and i think an architectural issue with the split.
The more immediate issues are:
1. Some benchmark tests fail to build via `make`. Some are related to bad ASCII characters in comments, some due to compiler warnings, and others due to external dependencies in the `pom.xml` (namely `org.junit.jupiter:junit-jupiter-api`). I think all those are fixable. (See https://openjdk.java.net/groups/build/doc/testing.html for configuring, compiling, and executing JMH tests.)
2. The structure under `test/micro` is misleading, and does not follow directory to package name convention. This is also fixable. I think we need to remove the maven project and merge in under `test/micro/org/openjdk/bench/jdk/incubator/vector`. We remove the maven project and place the non-generated benchmark files directly under the aforementioned directory (and fix the ones that fail to compile). Generated benchmarks could be placed under, say, `operation`.
Initially I thought it was fine that generation scripts were split between unit tests and performance tests, but architecturally, i now think it better to keep one set of bash scripts for generated code, maintained under the `vector` module. These are complex and splitting will cause divergence. These scripts can generate the `operation` performance tests under the `test/micro` directory at the appropriate location.
More information about the panama-dev