finally push changes
parent
ca0f10b410
commit
053a34e30c
|
@ -1,4 +1,4 @@
|
||||||
cmake-build*/
|
\cmake-build*/
|
||||||
build/
|
build/
|
||||||
out/
|
out/
|
||||||
./cmake-build*/
|
./cmake-build*/
|
||||||
|
@ -8,3 +8,4 @@ massif.*
|
||||||
callgrind.*
|
callgrind.*
|
||||||
*.out.*
|
*.out.*
|
||||||
heaptrack.*
|
heaptrack.*
|
||||||
|
vgcore.*
|
||||||
|
|
|
@ -27,7 +27,7 @@ macro(compile_options target_name)
|
||||||
sanitizers(${target_name})
|
sanitizers(${target_name})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
project(blt-gp VERSION 0.3.0)
|
project(blt-gp VERSION 0.3.4)
|
||||||
|
|
||||||
include(CTest)
|
include(CTest)
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,41 +0,0 @@
|
||||||
Performance counter stats for './cmake-build-release/blt-symbolic-regression-example' (30 runs):
|
|
||||||
|
|
||||||
24,277,728,279 branches ( +- 19.01% ) (20.47%)
|
|
||||||
76,457,616 branch-misses # 0.31% of all branches ( +- 17.97% ) (21.41%)
|
|
||||||
14,213,192 cache-misses # 4.73% of all cache refs ( +- 14.24% ) (22.52%)
|
|
||||||
300,581,049 cache-references ( +- 21.08% ) (23.68%)
|
|
||||||
48,914,779,668 cycles ( +- 19.65% ) (24.80%)
|
|
||||||
123,068,193,359 instructions # 2.52 insn per cycle ( +- 19.44% ) (25.09%)
|
|
||||||
0 alignment-faults
|
|
||||||
4,202 cgroup-switches ( +- 13.56% )
|
|
||||||
115,962 faults ( +- 10.95% )
|
|
||||||
871,101,993 ns duration_time ( +- 13.40% )
|
|
||||||
11,507,605,674 ns user_time ( +- 3.56% )
|
|
||||||
299,016,204 ns system_time ( +- 3.32% )
|
|
||||||
41,446,831,795 L1-dcache-loads ( +- 19.28% ) (24.69%)
|
|
||||||
167,603,194 L1-dcache-load-misses # 0.40% of all L1-dcache accesses ( +- 22.47% ) (23.95%)
|
|
||||||
81,992,073 L1-dcache-prefetches ( +- 25.34% ) (23.24%)
|
|
||||||
350,398,072 L1-icache-loads ( +- 15.30% ) (22.70%)
|
|
||||||
909,504 L1-icache-load-misses # 0.26% of all L1-icache accesses ( +- 14.46% ) (22.18%)
|
|
||||||
14,271,381 dTLB-loads ( +- 20.04% ) (21.90%)
|
|
||||||
1,559,972 dTLB-load-misses # 10.93% of all dTLB cache accesses ( +- 14.74% ) (21.39%)
|
|
||||||
246,888 iTLB-loads ( +- 21.69% ) (20.54%)
|
|
||||||
403,152 iTLB-load-misses # 163.29% of all iTLB cache accesses ( +- 13.35% ) (19.94%)
|
|
||||||
210,585,840 l2_request_g1.all_no_prefetch ( +- 20.07% ) (19.93%)
|
|
||||||
115,962 page-faults ( +- 10.95% )
|
|
||||||
115,958 page-faults:u ( +- 10.95% )
|
|
||||||
3 page-faults:k ( +- 4.54% )
|
|
||||||
41,209,739,257 L1-dcache-loads ( +- 19.02% ) (19.60%)
|
|
||||||
181,755,898 L1-dcache-load-misses # 0.44% of all L1-dcache accesses ( +- 20.60% ) (20.01%)
|
|
||||||
<not supported> LLC-loads
|
|
||||||
<not supported> LLC-load-misses
|
|
||||||
425,056,352 L1-icache-loads ( +- 12.27% ) (20.43%)
|
|
||||||
1,076,486 L1-icache-load-misses # 0.31% of all L1-icache accesses ( +- 10.84% ) (20.98%)
|
|
||||||
15,418,419 dTLB-loads ( +- 17.74% ) (21.24%)
|
|
||||||
1,648,473 dTLB-load-misses # 11.55% of all dTLB cache accesses ( +- 13.11% ) (20.94%)
|
|
||||||
325,141 iTLB-loads ( +- 26.87% ) (20.80%)
|
|
||||||
459,828 iTLB-load-misses # 186.25% of all iTLB cache accesses ( +- 11.50% ) (20.34%)
|
|
||||||
94,270,593 L1-dcache-prefetches ( +- 22.82% ) (20.09%)
|
|
||||||
<not supported> L1-dcache-prefetch-misses
|
|
||||||
|
|
||||||
0.871 +- 0.117 seconds time elapsed ( +- 13.40% )
|
|
1374
dhat.out.293761
1374
dhat.out.293761
File diff suppressed because it is too large
Load Diff
|
@ -332,7 +332,7 @@ namespace blt::gp
|
||||||
|
|
||||||
template <typename... Operators, size_t... operator_ids>
|
template <typename... Operators, size_t... operator_ids>
|
||||||
static void call_jmp_table_internal(size_t op, void* context, stack_allocator& write_stack, stack_allocator& read_stack,
|
static void call_jmp_table_internal(size_t op, void* context, stack_allocator& write_stack, stack_allocator& read_stack,
|
||||||
std::integer_sequence<size_t, operator_ids...>, Operators&... operators)
|
std::integer_sequence<size_t, operator_ids...>, Operators&... operators)
|
||||||
{
|
{
|
||||||
if (op >= sizeof...(operator_ids))
|
if (op >= sizeof...(operator_ids))
|
||||||
{
|
{
|
||||||
|
@ -343,7 +343,7 @@ namespace blt::gp
|
||||||
|
|
||||||
template <typename... Operators>
|
template <typename... Operators>
|
||||||
static void call_jmp_table(size_t op, void* context, stack_allocator& write_stack, stack_allocator& read_stack,
|
static void call_jmp_table(size_t op, void* context, stack_allocator& write_stack, stack_allocator& read_stack,
|
||||||
Operators&... operators)
|
Operators&... operators)
|
||||||
{
|
{
|
||||||
call_jmp_table_internal(op, context, write_stack, read_stack, std::index_sequence_for<Operators...>(), operators...);
|
call_jmp_table_internal(op, context, write_stack, read_stack, std::index_sequence_for<Operators...>(), operators...);
|
||||||
}
|
}
|
||||||
|
@ -547,6 +547,7 @@ namespace blt::gp
|
||||||
[this, &fitness_function, &crossover_selection, &mutation_selection, &reproduction_selection, &func](blt::size_t id)
|
[this, &fitness_function, &crossover_selection, &mutation_selection, &reproduction_selection, &func](blt::size_t id)
|
||||||
{
|
{
|
||||||
thread_helper.barrier.wait();
|
thread_helper.barrier.wait();
|
||||||
|
|
||||||
if (thread_helper.evaluation_left > 0)
|
if (thread_helper.evaluation_left > 0)
|
||||||
{
|
{
|
||||||
while (thread_helper.evaluation_left > 0)
|
while (thread_helper.evaluation_left > 0)
|
||||||
|
@ -606,6 +607,7 @@ namespace blt::gp
|
||||||
}
|
}
|
||||||
if (thread_helper.next_gen_left > 0)
|
if (thread_helper.next_gen_left > 0)
|
||||||
{
|
{
|
||||||
|
thread_helper.barrier.wait();
|
||||||
auto args = get_selector_args();
|
auto args = get_selector_args();
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
{
|
{
|
||||||
|
@ -623,7 +625,7 @@ namespace blt::gp
|
||||||
mutation_selection.pre_process(*this, current_pop);
|
mutation_selection.pre_process(*this, current_pop);
|
||||||
if (&crossover_selection != &reproduction_selection)
|
if (&crossover_selection != &reproduction_selection)
|
||||||
reproduction_selection.pre_process(*this, current_pop);
|
reproduction_selection.pre_process(*this, current_pop);
|
||||||
auto elite_amount = perform_elitism(args, next_pop);
|
const auto elite_amount = perform_elitism(args, next_pop);
|
||||||
thread_helper.next_gen_left -= elite_amount;
|
thread_helper.next_gen_left -= elite_amount;
|
||||||
}
|
}
|
||||||
thread_helper.barrier.wait();
|
thread_helper.barrier.wait();
|
||||||
|
@ -815,7 +817,7 @@ namespace blt::gp
|
||||||
|
|
||||||
template <typename Return, blt::size_t size, typename Accessor, blt::size_t... indexes>
|
template <typename Return, blt::size_t size, typename Accessor, blt::size_t... indexes>
|
||||||
Return convert_array(std::array<blt::size_t, size>&& arr, Accessor&& accessor,
|
Return convert_array(std::array<blt::size_t, size>&& arr, Accessor&& accessor,
|
||||||
std::integer_sequence<blt::size_t, indexes...>)
|
std::integer_sequence<blt::size_t, indexes...>)
|
||||||
{
|
{
|
||||||
return Return{accessor(arr, indexes)...};
|
return Return{accessor(arr, indexes)...};
|
||||||
}
|
}
|
||||||
|
|
2
lib/blt
2
lib/blt
|
@ -1 +1 @@
|
||||||
Subproject commit 8133553ed87f705c890c5becda710f72f3ddccb9
|
Subproject commit 4c462dff38a982bc5dc5212337af160bc018cce1
|
|
@ -1,41 +0,0 @@
|
||||||
Performance counter stats for './cmake-build-release/blt-symbolic-regression-example' (30 runs):
|
|
||||||
|
|
||||||
81,986,993,284 branches ( +- 15.89% ) (19.93%)
|
|
||||||
194,632,894 branch-misses # 0.24% of all branches ( +- 21.10% ) (19.84%)
|
|
||||||
32,561,539 cache-misses # 0.89% of all cache refs ( +- 10.21% ) (19.95%)
|
|
||||||
3,645,509,810 cache-references ( +- 15.93% ) (20.11%)
|
|
||||||
169,957,442,648 cycles ( +- 15.85% ) (20.26%)
|
|
||||||
426,558,894,577 instructions # 2.51 insn per cycle ( +- 16.24% ) (20.29%)
|
|
||||||
0 alignment-faults
|
|
||||||
9,103 cgroup-switches ( +- 13.62% )
|
|
||||||
52,586 faults ( +- 5.74% )
|
|
||||||
1,823,320,688 ns duration_time ( +- 12.76% )
|
|
||||||
41,213,439,537 ns user_time ( +- 3.68% )
|
|
||||||
219,435,124 ns system_time ( +- 2.44% )
|
|
||||||
132,928,139,347 L1-dcache-loads ( +- 15.55% ) (20.40%)
|
|
||||||
2,559,138,346 L1-dcache-load-misses # 1.93% of all L1-dcache accesses ( +- 15.53% ) (20.37%)
|
|
||||||
852,474,938 L1-dcache-prefetches ( +- 19.61% ) (20.44%)
|
|
||||||
1,035,909,753 L1-icache-loads ( +- 11.73% ) (20.45%)
|
|
||||||
1,451,589 L1-icache-load-misses # 0.14% of all L1-icache accesses ( +- 13.61% ) (20.50%)
|
|
||||||
37,722,800 dTLB-loads ( +- 14.93% ) (20.52%)
|
|
||||||
4,119,243 dTLB-load-misses # 10.92% of all dTLB cache accesses ( +- 10.99% ) (20.55%)
|
|
||||||
1,318,136 iTLB-loads ( +- 20.32% ) (20.51%)
|
|
||||||
367,939 iTLB-load-misses # 27.91% of all iTLB cache accesses ( +- 12.34% ) (20.42%)
|
|
||||||
2,730,214,946 l2_request_g1.all_no_prefetch ( +- 15.32% ) (20.43%)
|
|
||||||
52,586 page-faults ( +- 5.74% )
|
|
||||||
52,583 page-faults:u ( +- 5.75% )
|
|
||||||
3 page-faults:k ( +- 3.96% )
|
|
||||||
132,786,226,560 L1-dcache-loads ( +- 15.54% ) (20.33%)
|
|
||||||
2,581,181,694 L1-dcache-load-misses # 1.94% of all L1-dcache accesses ( +- 15.34% ) (20.26%)
|
|
||||||
<not supported> LLC-loads
|
|
||||||
<not supported> LLC-load-misses
|
|
||||||
1,021,814,075 L1-icache-loads ( +- 11.67% ) (20.19%)
|
|
||||||
1,376,958 L1-icache-load-misses # 0.13% of all L1-icache accesses ( +- 13.76% ) (20.09%)
|
|
||||||
38,065,494 dTLB-loads ( +- 14.76% ) (20.09%)
|
|
||||||
4,174,010 dTLB-load-misses # 11.06% of all dTLB cache accesses ( +- 10.90% ) (20.14%)
|
|
||||||
1,407,386 iTLB-loads ( +- 20.45% ) (20.09%)
|
|
||||||
338,781 iTLB-load-misses # 25.70% of all iTLB cache accesses ( +- 12.61% ) (20.05%)
|
|
||||||
873,873,406 L1-dcache-prefetches ( +- 19.41% ) (20.00%)
|
|
||||||
<not supported> L1-dcache-prefetch-misses
|
|
||||||
|
|
||||||
1.823 +- 0.233 seconds time elapsed ( +- 12.76% )
|
|
|
@ -97,7 +97,7 @@ void run(const blt::gp::prog_config_t& config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
void do_run()
|
||||||
{
|
{
|
||||||
std::stringstream results;
|
std::stringstream results;
|
||||||
for (const auto crossover_chance : crossover_chances)
|
for (const auto crossover_chance : crossover_chances)
|
||||||
|
@ -162,3 +162,10 @@ int main()
|
||||||
std::cout << "\tPopulation Size: " << best_config.population_size << std::endl;
|
std::cout << "\tPopulation Size: " << best_config.population_size << std::endl;
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 1; i++)
|
||||||
|
do_run();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
Performance counter stats for './cmake-build-release/blt-symbolic-regression-example' (30 runs):
|
|
||||||
|
|
||||||
35,671,860,546 branches ( +- 5.05% ) (20.11%)
|
|
||||||
130,603,525 branch-misses # 0.37% of all branches ( +- 4.61% ) (20.67%)
|
|
||||||
43,684,408 cache-misses # 9.61% of all cache refs ( +- 3.08% ) (20.97%)
|
|
||||||
454,604,804 cache-references ( +- 4.53% ) (21.30%)
|
|
||||||
72,861,649,501 cycles ( +- 5.33% ) (22.00%)
|
|
||||||
170,811,735,018 instructions # 2.34 insn per cycle ( +- 5.59% ) (22.84%)
|
|
||||||
0 alignment-faults
|
|
||||||
33,002 cgroup-switches ( +- 1.71% )
|
|
||||||
293,932 faults ( +- 4.09% )
|
|
||||||
1,130,322,318 ns duration_time ( +- 3.73% )
|
|
||||||
16,750,942,537 ns user_time ( +- 1.71% )
|
|
||||||
1,165,192,903 ns system_time ( +- 0.87% )
|
|
||||||
57,551,179,178 L1-dcache-loads ( +- 5.63% ) (22.36%)
|
|
||||||
214,283,064 L1-dcache-load-misses # 0.37% of all L1-dcache accesses ( +- 5.58% ) (22.13%)
|
|
||||||
75,685,527 L1-dcache-prefetches ( +- 7.55% ) (22.07%)
|
|
||||||
1,115,360,458 L1-icache-loads ( +- 3.91% ) (21.67%)
|
|
||||||
2,868,754 L1-icache-load-misses # 0.26% of all L1-icache accesses ( +- 3.34% ) (21.34%)
|
|
||||||
65,107,178 dTLB-loads ( +- 8.94% ) (21.00%)
|
|
||||||
4,971,480 dTLB-load-misses # 7.64% of all dTLB cache accesses ( +- 3.70% ) (20.90%)
|
|
||||||
452,351 iTLB-loads ( +- 4.80% ) (20.62%)
|
|
||||||
1,600,933 iTLB-load-misses # 353.91% of all iTLB cache accesses ( +- 3.68% ) (20.62%)
|
|
||||||
332,075,460 l2_request_g1.all_no_prefetch ( +- 4.59% ) (20.73%)
|
|
||||||
293,932 page-faults ( +- 4.09% )
|
|
||||||
293,928 page-faults:u ( +- 4.09% )
|
|
||||||
3 page-faults:k ( +- 4.92% )
|
|
||||||
58,806,652,381 L1-dcache-loads ( +- 5.44% ) (20.61%)
|
|
||||||
216,591,223 L1-dcache-load-misses # 0.38% of all L1-dcache accesses ( +- 5.39% ) (21.02%)
|
|
||||||
<not supported> LLC-loads
|
|
||||||
<not supported> LLC-load-misses
|
|
||||||
1,059,748,012 L1-icache-loads ( +- 4.29% ) (21.55%)
|
|
||||||
2,615,017 L1-icache-load-misses # 0.23% of all L1-icache accesses ( +- 3.34% ) (21.85%)
|
|
||||||
65,917,126 dTLB-loads ( +- 8.89% ) (21.78%)
|
|
||||||
4,717,351 dTLB-load-misses # 7.25% of all dTLB cache accesses ( +- 3.52% ) (22.05%)
|
|
||||||
459,796 iTLB-loads ( +- 5.92% ) (21.77%)
|
|
||||||
1,512,986 iTLB-load-misses # 334.47% of all iTLB cache accesses ( +- 3.64% ) (21.26%)
|
|
||||||
74,656,433 L1-dcache-prefetches ( +- 7.94% ) (20.50%)
|
|
||||||
<not supported> L1-dcache-prefetch-misses
|
|
||||||
|
|
||||||
1.1303 +- 0.0422 seconds time elapsed ( +- 3.73% )
|
|
Loading…
Reference in New Issue