Skip to content

Commit 5ced6d9

Browse files
committed
More accurate benchmarks
1 parent 4af5f47 commit 5ced6d9

File tree

1 file changed

+22
-40
lines changed

1 file changed

+22
-40
lines changed

benchmark/benchmarks.jl

Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,19 @@ using DynamicExpressions: copy_node
33

44
include("benchmark_utils.jl")
55

6-
const v_PACKAGE_VERSION = try
7-
VersionNumber(DynamicExpressions.PACKAGE_VERSION)
8-
catch
9-
VersionNumber("v0.0.0")
10-
end
11-
126
const SUITE = BenchmarkGroup()
137

148
function benchmark_evaluation()
159
suite = BenchmarkGroup()
1610
operators = OperatorEnum(;
1711
binary_operators=[+, -, /, *], unary_operators=[cos, exp], enable_autodiff=true
1812
)
19-
simple_tree = Node(
20-
2,
21-
Node(
22-
1,
23-
Node(
24-
3,
25-
Node(1, Node(; val=1.0f0), Node(; feature=2)),
26-
Node(2, Node(; val=-1.0f0)),
27-
),
28-
Node(1, Node(; feature=3), Node(; feature=4)),
29-
),
30-
Node(
31-
4,
32-
Node(
33-
3,
34-
Node(1, Node(; val=1.0f0), Node(; feature=2)),
35-
Node(2, Node(; val=-1.0f0)),
36-
),
37-
Node(1, Node(; feature=3), Node(; feature=4)),
38-
),
39-
)
4013
for T in (ComplexF32, ComplexF64, Float32, Float64)
41-
if !(T <: Real) && v_PACKAGE_VERSION < v"0.5.0" && v_PACKAGE_VERSION != v"0.0.0"
14+
if !(T <: Real) && PACKAGE_VERSION < v"0.5.0" && PACKAGE_VERSION != v"0.0.0"
4215
continue
4316
end
4417
suite[T] = BenchmarkGroup()
4518

46-
evals = 10
47-
samples = 1_000
4819
n = 1_000
4920

5021
#! format: off
@@ -53,25 +24,36 @@ function benchmark_evaluation()
5324
continue
5425
end
5526
extra_key = turbo ? "_turbo" : ""
27+
eval_tree_array(
28+
gen_random_tree_fixed_size(20, operators, 5, T),
29+
randn(MersenneTwister(0), T, 5, n),
30+
operators;
31+
turbo=turbo
32+
)
5633
suite[T]["evaluation$(extra_key)"] = @benchmarkable(
57-
eval_tree_array(tree, X, $operators; turbo=$turbo),
58-
evals=evals,
59-
samples=samples,
60-
seconds=5.0,
34+
[eval_tree_array(tree, X, $operators; turbo=$turbo) for tree in trees],
6135
setup=(
6236
X=randn(MersenneTwister(0), $T, 5, $n);
63-
tree=convert(Node{$T}, copy_node($simple_tree))
37+
treesize=20;
38+
ntrees=100;
39+
trees=[gen_random_tree_fixed_size(treesize, $operators, 5, $T) for _ in 1:ntrees]
6440
)
6541
)
6642
if T <: Real
43+
eval_grad_tree_array(
44+
gen_random_tree_fixed_size(20, operators, 5, T),
45+
randn(MersenneTwister(0), T, 5, n),
46+
operators;
47+
variable=true,
48+
turbo=turbo
49+
)
6750
suite[T]["derivative$(extra_key)"] = @benchmarkable(
68-
eval_grad_tree_array(tree, X, $operators; variable=true, turbo=$turbo),
69-
evals=evals,
70-
samples=samples,
71-
seconds=5.0,
51+
[eval_grad_tree_array(tree, X, $operators; variable=true, turbo=$turbo) for tree in trees],
7252
setup=(
7353
X=randn(MersenneTwister(0), $T, 5, $n);
74-
tree=convert(Node{$T}, copy_node($simple_tree))
54+
treesize=20;
55+
ntrees=100;
56+
trees=[gen_random_tree_fixed_size(treesize, $operators, 5, $T) for _ in 1:ntrees]
7557
)
7658
)
7759
end

0 commit comments

Comments
 (0)