Skip to content

Commit cc743d9

Browse files
committed
add benchmarks for JuliaLang/julia#10301
1 parent 0eeed98 commit cc743d9

File tree

3 files changed

+58
-5
lines changed

3 files changed

+58
-5
lines changed

src/arrays/ArrayBenchmarks.jl

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@ module ArrayBenchmarks
22

33
import ..BaseBenchmarks
44
using ..BenchmarkTrackers
5+
using ..BaseBenchmarks.samerand
56

67
############
78
# indexing #
89
############
910

10-
include("indexing.jl")
11+
# PR #10525 #
12+
#-----------#
1113

12-
@track BaseBenchmarks.TRACKER "array indexing" begin
14+
include("sumindexing.jl")
15+
16+
@track BaseBenchmarks.TRACKER "array index sum" begin
1317
@setup begin
1418
int_arrs = (makearrays(Int32, 3, 5)..., makearrays(Int32, 300, 500)...)
1519
float_arrs = (makearrays(Float32, 3, 5)..., makearrays(Float32, 300, 500)...)
@@ -28,6 +32,22 @@ include("indexing.jl")
2832
@tags "array" "sum" "indexing" "simd"
2933
end
3034

35+
# Issue #10301 #
36+
#--------------#
37+
38+
include("loadindexing.jl")
39+
40+
@track BaseBenchmarks.TRACKER "array index load" begin
41+
@setup n = 10^6
42+
@benchmarks begin
43+
(:rev_load_slow!,) => perf_rev_load_slow!(samerand(n))
44+
(:rev_load_fast!,) => perf_rev_load_fast!(samerand(n))
45+
(:rev_loadmul_slow!,) => perf_rev_loadmul_slow!(samerand(n) samerand(n))
46+
(:rev_loadmul_fast!,) => perf_rev_loadmul_fast!(samerand(n), samerand(n))
47+
end
48+
@tags "array" "load" "indexing" "reverse"
49+
end
50+
3151
###############################
3252
# SubArray (views vs. copies) #
3353
###############################
@@ -41,8 +61,8 @@ include("subarray.jl")
4161
@track BaseBenchmarks.TRACKER "array subarray" begin
4262
@setup sizes = (100, 250, 500, 1000)
4363
@benchmarks begin
44-
[(:lucompletepivCopy!, n) => perf_lucompletepivCopy!(BaseBenchmarks.samerand(n, n)) for n in sizes]
45-
[(:lucompletepivSub!, n) => perf_lucompletepivSub!(BaseBenchmarks.samerand(n, n)) for n in sizes]
64+
[(:lucompletepivCopy!, n) => perf_lucompletepivCopy!(samerand(n, n)) for n in sizes]
65+
[(:lucompletepivSub!, n) => perf_lucompletepivSub!(samerand(n, n)) for n in sizes]
4666
end
4767
@tags "lucompletepiv" "array" "linalg" "copy" "subarray" "factorization"
4868
end
@@ -56,7 +76,7 @@ include("cat.jl")
5676
@track BaseBenchmarks.TRACKER "array cat" begin
5777
@setup begin
5878
sizes = (5, 500)
59-
arrays = map(n -> BaseBenchmarks.samerand(n, n), sizes)
79+
arrays = map(n -> samerand(n, n), sizes)
6080
end
6181
@benchmarks begin
6282
[(:hvcat, size(A, 1)) => perf_hvcat(A, A) for A in arrays]

src/arrays/loadindexing.jl

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
function perf_rev_load_slow!(x)
2+
n = size(x, 1)
3+
for i = (n - 1):-1:1
4+
x[i] = x[i + 1]
5+
end
6+
return x
7+
end
8+
9+
function perf_rev_load_fast!(x)
10+
n = size(x, 1)
11+
x_ = x[n]
12+
for i = (n - 1):-1:1
13+
x_ = x[i] = x_
14+
end
15+
return x
16+
end
17+
18+
function perf_rev_loadmul_slow!(x, c)
19+
n = size(x, 1)
20+
for i = (n - 1):-1:1
21+
x[i] = c[i + 1] * x[i + 1]
22+
end
23+
return x
24+
end
25+
26+
function perf_rev_loadmul_fast!(x, c)
27+
n = size(x, 1)
28+
x_ = x[n]
29+
for i = (n - 1):-1:1
30+
x_ = x[i] = c[i + 1] * x_
31+
end
32+
return x
33+
end
File renamed without changes.

0 commit comments

Comments
 (0)