< 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 >