diff --git a/CMakeLists.txt b/CMakeLists.txt index b242628..417556f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.25) -project(blt-gp VERSION 0.1.6) +project(blt-gp VERSION 0.1.7) include(CTest) diff --git a/examples/symbolic_regression.cpp b/examples/symbolic_regression.cpp index 76a7b35..08364fc 100644 --- a/examples/symbolic_regression.cpp +++ b/examples/symbolic_regression.cpp @@ -39,8 +39,8 @@ blt::gp::prog_config_t config = blt::gp::prog_config_t() .set_mutation_chance(0.1) .set_reproduction_chance(0) .set_max_generations(50) - .set_pop_size(500) - .set_thread_count(1); + .set_pop_size(5000) + .set_thread_count(0); blt::gp::type_provider type_system; blt::gp::gp_program program{type_system, SEED, config}; diff --git a/include/blt/gp/stack.h b/include/blt/gp/stack.h index beff92a..da808a3 100644 --- a/include/blt/gp/stack.h +++ b/include/blt/gp/stack.h @@ -109,10 +109,8 @@ namespace blt::gp void insert(const stack_allocator& stack) { -#if BLT_DEBUG_LEVEL > 1 if (stack.empty()) - BLT_WARN("Insert called on an empty stack!"); -#endif + return; if (size_ < stack.bytes_stored + bytes_stored) expand(stack.bytes_stored + bytes_stored); std::memcpy(data_ + bytes_stored, stack.data_, stack.bytes_stored); @@ -121,12 +119,8 @@ namespace blt::gp void copy_from(const stack_allocator& stack, blt::size_t bytes) { -#if BLT_DEBUG_LEVEL > 0 - if (stack.empty()) - BLT_WARN("Copy From called on an empty stack"); if (bytes == 0) - BLT_WARN("Requested 0 bytes to be copied. This seems to be an error!"); -#endif + return; if (size_ < bytes + bytes_stored) expand(bytes + bytes_stored); std::memcpy(data_ + bytes_stored, stack.data_ + (stack.bytes_stored - bytes), bytes); @@ -135,12 +129,8 @@ namespace blt::gp void copy_from(blt::u8* data, blt::size_t bytes) { -#if BLT_DEBUG_LEVEL > 0 - if (data == nullptr) - BLT_ABORT("Nullptr provided to copy_from function!"); - if (bytes == 0) - BLT_WARN("Requested 0 bytes to be copied from, nothing will happen."); -#endif + if (bytes == 0 || data == nullptr) + return; if (size_ < bytes + bytes_stored) expand(bytes + bytes_stored); std::memcpy(data_ + bytes_stored, data, bytes); @@ -149,12 +139,8 @@ namespace blt::gp void copy_to(blt::u8* data, blt::size_t bytes) { -#if BLT_DEBUG_LEVEL > 0 - if (data == nullptr) - BLT_ABORT("Nullptr provided to copy_to function!"); - if (bytes == 0) - BLT_WARN("Requested 0 to be copied to, nothing will happen!"); -#endif + if (bytes == 0 || data == nullptr) + return; std::memcpy(data, data_ + (bytes_stored - bytes), bytes); } diff --git a/thread_branch.txt b/thread_branch.txt new file mode 100644 index 0000000..b3a16f8 --- /dev/null +++ b/thread_branch.txt @@ -0,0 +1,41 @@ + 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%) + LLC-loads + 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%) + L1-dcache-prefetch-misses + + 1.1303 +- 0.0422 seconds time elapsed ( +- 3.73% )