< prev index next >

test/jdk/jdk/incubator/vector/templates/Perf-Scalar-Gather-op.template

Print this page
rev 55606 : 8221812: Fine-tune jmh test for vector api
Summary: To compare performance of vector api and auto vectorization, vector
api and scalar test cases are updated to keep aligned.
Reviewed-by: duke

*** 1,53 **** @Benchmark ! public Object gatherBase0() { $type$[] as = fa.apply(size); int[] is = fs.apply(size); $type$[] rs = fr.apply(size); for (int i = 0; i < as.length; i++) { int ix = 0 + is[i]; rs[i] = as[ix]; } ! return rs; } ! Object gather(int window) { $type$[] as = fa.apply(size); int[] is = fs.apply(size); $type$[] rs = fr.apply(size); for (int i = 0; i < as.length; i += window) { for (int j = 0; j < window; j++) { int ix = i + is[i + j]; rs[i + j] = as[ix]; } } ! return rs; } @Benchmark ! public Object gather064() { int window = 64 / $Wideboxtype$.SIZE; ! return gather(window); } @Benchmark ! public Object gather128() { int window = 128 / $Wideboxtype$.SIZE; ! return gather(window); } @Benchmark ! public Object gather256() { int window = 256 / $Wideboxtype$.SIZE; ! return gather(window); } @Benchmark ! public Object gather512() { int window = 512 / $Wideboxtype$.SIZE; ! return gather(window); } --- 1,57 ---- @Benchmark ! public void gatherBase0(Blackhole bh) { $type$[] as = fa.apply(size); int[] is = fs.apply(size); $type$[] rs = fr.apply(size); + for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < as.length; i++) { int ix = 0 + is[i]; rs[i] = as[ix]; } + } ! bh.consume(rs); } ! void gather(int window, Blackhole bh) { $type$[] as = fa.apply(size); int[] is = fs.apply(size); $type$[] rs = fr.apply(size); + for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < as.length; i += window) { for (int j = 0; j < window; j++) { int ix = i + is[i + j]; rs[i + j] = as[ix]; } } + } ! bh.consume(rs); } @Benchmark ! public void gather064(Blackhole bh) { int window = 64 / $Wideboxtype$.SIZE; ! gather(window, bh); } @Benchmark ! public void gather128(Blackhole bh) { int window = 128 / $Wideboxtype$.SIZE; ! gather(window, bh); } @Benchmark ! public void gather256(Blackhole bh) { int window = 256 / $Wideboxtype$.SIZE; ! gather(window, bh); } @Benchmark ! public void gather512(Blackhole bh) { int window = 512 / $Wideboxtype$.SIZE; ! gather(window, bh); }
< prev index next >