4 ms·
From what I know, GraalVM EE (Enterprise Edition) does do loop vectorisation. This will lead to an interesting problem if they want to replace C2 with Graal. A
by repolfx 7y ago
From what I know, GraalVM EE (Enterprise Edition) does do loop vectorisation.
This will lead to an interesting problem if they want to replace C2 with Graal. Are they willing to regress performance for some open-source-only users, even if it's a performance win for others?
- kasperni 7y agoYes, this will be very interesting. Also, since GraalVM is pretty modular. Will someone provide a free/open source version with loop vectorisation and other goodies.
- astrange 7y agoThat shouldn't be interesting in Java. Most programs can't be autovectorized, especially in a language without any SIMD constructs. If you try to guess what the compiler thinks vectorization looks like, you'll probably get it wrong.
- apta 7y agoJava will be exposing parallelization constructs by means of project Panama: http://cr.openjdk.java.net/~vlivanov/panama/vectors/vectors.html http://cr.openjdk.java.net/~vlivanov/panama/vectors/vectors....
- grashalm 7y agoContrary to popular believe, automatic loop vectorization is not as important to most Java workloads as one might think. It gets a lot of visibility as it causes significant peak performance differences in micro-benchmarks. In the end, you should not trust standard benchmarks and definitely not micro-benchmarks. Do perform tests with your own workload.
- imtringued 7y agoBut this is only true because the Hotspot JVM just isn't meant to be used for high performance code. In theory with a good enough JIT, it should be possible to achieve high performance even in Java. One day Java might have value types and then these optimizations will be able to shine.
- pjmlp 7y agoOpenJDK for Java 12 also does it, as Intel has contributed AVX optimizations to it.