@@ -3,48 +3,19 @@ using DynamicExpressions: copy_node
33
44include (" 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-
126const SUITE = BenchmarkGroup ()
137
148function 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