finally push changes

dev-func-drop
Brett 2025-01-13 15:58:06 -05:00
parent ca0f10b410
commit 053a34e30c
10 changed files with 3844 additions and 1505 deletions

3
.gitignore vendored
View File

@ -1,4 +1,4 @@
cmake-build*/
\cmake-build*/
build/
out/
./cmake-build*/
@ -8,3 +8,4 @@ massif.*
callgrind.*
*.out.*
heaptrack.*
vgcore.*

View File

@ -27,7 +27,7 @@ macro(compile_options target_name)
sanitizers(${target_name})
endmacro()
project(blt-gp VERSION 0.3.0)
project(blt-gp VERSION 0.3.4)
include(CTest)

3826
Rice_Cammeo_Osmancik.arff Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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% )

File diff suppressed because it is too large Load Diff

View File

@ -332,7 +332,7 @@ namespace blt::gp
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,
std::integer_sequence<size_t, operator_ids...>, Operators&... operators)
std::integer_sequence<size_t, operator_ids...>, Operators&... operators)
{
if (op >= sizeof...(operator_ids))
{
@ -343,7 +343,7 @@ namespace blt::gp
template <typename... Operators>
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...);
}
@ -547,6 +547,7 @@ namespace blt::gp
[this, &fitness_function, &crossover_selection, &mutation_selection, &reproduction_selection, &func](blt::size_t id)
{
thread_helper.barrier.wait();
if (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)
{
thread_helper.barrier.wait();
auto args = get_selector_args();
if (id == 0)
{
@ -623,7 +625,7 @@ namespace blt::gp
mutation_selection.pre_process(*this, current_pop);
if (&crossover_selection != &reproduction_selection)
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.barrier.wait();
@ -815,7 +817,7 @@ namespace blt::gp
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,
std::integer_sequence<blt::size_t, indexes...>)
std::integer_sequence<blt::size_t, indexes...>)
{
return Return{accessor(arr, indexes)...};
}

@ -1 +1 @@
Subproject commit 8133553ed87f705c890c5becda710f72f3ddccb9
Subproject commit 4c462dff38a982bc5dc5212337af160bc018cce1

View File

@ -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% )

View File

@ -97,7 +97,7 @@ void run(const blt::gp::prog_config_t& config)
}
}
int main()
void do_run()
{
std::stringstream results;
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 << std::endl;
}
int main()
{
for (int i = 0; i < 1; i++)
do_run();
return 0;
}

View File

@ -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% )