From 9f87d4e7c15105aada2285a4844f6808b5f4d148 Mon Sep 17 00:00:00 2001 From: Edwin Lee Date: Tue, 19 Nov 2024 11:00:33 -0600 Subject: [PATCH 1/4] Bump GCC version for Decent CI --- .decent_ci-Linux.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.decent_ci-Linux.yaml b/.decent_ci-Linux.yaml index 28de42f0898..5632db2785b 100644 --- a/.decent_ci-Linux.yaml +++ b/.decent_ci-Linux.yaml @@ -1,13 +1,13 @@ compilers: - name: "gcc" - version: "11.4" + version: "13.2" cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DPYTHON_CLI:BOOL=OFF -DPython_REQUIRED_VERSION:STRING=3.12.2 -DPython_ROOT_DIR:PATH=~/.pyenv/versions/3.12.2/ -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DBUILD_PERFORMANCE_TESTS:BOOL=ON -DVALGRIND_ANALYZE_PERFORMANCE_TESTS:BOOL=ON -DENABLE_PCH:BOOL=OFF collect_performance_results: true skip_regression: true s3_upload_bucket: energyplus - name: "gcc" - version: "11.4" + version: "13.2" build_type: RelWithDebInfo cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DPYTHON_CLI:BOOL=OFF -DPython_REQUIRED_VERSION:STRING=3.12.2 -DPython_ROOT_DIR:PATH=~/.pyenv/versions/3.12.2/ -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DCOMMIT_SHA:STRING=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DENABLE_PCH:BOOL=OFF coverage_enabled: true @@ -21,7 +21,7 @@ compilers: skip_packaging: true - name: "gcc" - version: "11.4" + version: "13.2" build_type: RelWithDebInfo cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DPYTHON_CLI:BOOL=OFF -DPython_REQUIRED_VERSION:STRING=3.12.2 -DPython_ROOT_DIR:PATH=~/.pyenv/versions/3.12.2/ -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DCOMMIT_SHA:STRING=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DENABLE_PCH:BOOL=OFF coverage_enabled: true From facb90bf48142027294d8754e90d91e4e880200c Mon Sep 17 00:00:00 2001 From: Edwin Lee Date: Tue, 19 Nov 2024 12:26:05 -0600 Subject: [PATCH 2/4] Hacky workaround in FMT to avoid build warning, limit CI CPU to 16 to avoid swap --- .decent_ci-Linux.yaml | 3 +++ third_party/fmt-8.0.1/include/fmt/format.h | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.decent_ci-Linux.yaml b/.decent_ci-Linux.yaml index 5632db2785b..028a51d9e61 100644 --- a/.decent_ci-Linux.yaml +++ b/.decent_ci-Linux.yaml @@ -5,6 +5,7 @@ compilers: collect_performance_results: true skip_regression: true s3_upload_bucket: energyplus + num_parallel_builds: 16 - name: "gcc" version: "13.2" @@ -19,6 +20,7 @@ compilers: ctest_filter: -E "integration.*" skip_regression: true skip_packaging: true + num_parallel_builds: 16 - name: "gcc" version: "13.2" @@ -33,3 +35,4 @@ compilers: ctest_filter: -R "integration.*" skip_regression: true skip_packaging: true + num_parallel_builds: 16 diff --git a/third_party/fmt-8.0.1/include/fmt/format.h b/third_party/fmt-8.0.1/include/fmt/format.h index 82ddb407d09..2b886a1be63 100644 --- a/third_party/fmt-8.0.1/include/fmt/format.h +++ b/third_party/fmt-8.0.1/include/fmt/format.h @@ -316,8 +316,10 @@ template <> constexpr auto num_bits() -> int { FMT_INLINE void assume(bool condition) { (void)condition; -#if FMT_HAS_BUILTIN(__builtin_assume) +#if FMT_HAS_BUILTIN(__builtin_assume) && !FMT_ICC_VERSION __builtin_assume(condition); +#elif FMT_GCC_VERSION + if (!condition) __builtin_unreachable(); #endif } @@ -751,8 +753,18 @@ void basic_memory_buffer::grow(size_t size) { T* new_data = std::allocator_traits::allocate(alloc_, new_capacity); // The following code doesn't throw, so the raw pointer above doesn't leak. - std::uninitialized_copy(old_data, old_data + this->size(), - detail::make_checked(new_data, new_capacity)); + // std::uninitialized_copy(old_data, old_data + this->size(), + // detail::make_checked(new_data, new_capacity)); + // ****** MYOLDMOPAR MANUAL EDIT + // I manually applied some of the changes from this commit + // https://github.com/fmtlib/fmt/commit/fb97cb2318dd14b5c791699232e1e73782be7e57 + // Because of a GCC 13 false positive issuing a string overflow warning + // fmt issue: https://github.com/fmtlib/fmt/issues/3533 + // upstream report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109717 + // An updated FMT version could mute this with the FMT_SYSTEM_HEADERS CMake flag turned on, but it seems fmt-8.0.1 doesn't respond to that + detail::assume(this->size() <= new_capacity); + std::uninitialized_copy_n(old_data, this->size(), new_data); + // ****** this->set(new_data, new_capacity); // deallocate must not throw according to the standard, but even if it does, // the buffer already uses the new storage and will deallocate it in From 9481231faa2a610aed5d182e3e622816252b4ef9 Mon Sep 17 00:00:00 2001 From: Edwin Lee Date: Tue, 19 Nov 2024 15:14:45 -0600 Subject: [PATCH 3/4] Pointing EnergyPlusRegressionTool back to main since the PR was merged a while ago --- .decent_ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.decent_ci.yaml b/.decent_ci.yaml index 011ef0a2485..a80d9aee629 100644 --- a/.decent_ci.yaml +++ b/.decent_ci.yaml @@ -2,7 +2,7 @@ results_repository : Myoldmopar/EnergyPlusBuildResults results_path : _posts results_base_url : https://myoldmopar.github.io/EnergyPlusBuildResults regression_repository : NREL/EnergyPlusRegressionTool -regression_branch : BumpToBoto3 # this is the branch of NREL/EnergyPlusRegressionTool to use (usually main) +regression_branch : main # this is the branch of NREL/EnergyPlusRegressionTool to use (usually main) regression_baseline_default : develop # this is the NREL/EnergyPlus branch to use as the baseline for regressions regression_baseline_develop : "" regression_baseline_master : "" From c12ba5aa1a4d392bbb7d48b76ceebdff07c9f0d9 Mon Sep 17 00:00:00 2001 From: Edwin Lee Date: Tue, 19 Nov 2024 17:09:41 -0600 Subject: [PATCH 4/4] Looks like peak memory usage was well under, bumping cores to 18 --- .decent_ci-Linux.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.decent_ci-Linux.yaml b/.decent_ci-Linux.yaml index 028a51d9e61..5e2ad156e5d 100644 --- a/.decent_ci-Linux.yaml +++ b/.decent_ci-Linux.yaml @@ -5,7 +5,7 @@ compilers: collect_performance_results: true skip_regression: true s3_upload_bucket: energyplus - num_parallel_builds: 16 + num_parallel_builds: 18 - name: "gcc" version: "13.2" @@ -20,7 +20,7 @@ compilers: ctest_filter: -E "integration.*" skip_regression: true skip_packaging: true - num_parallel_builds: 16 + num_parallel_builds: 18 - name: "gcc" version: "13.2" @@ -35,4 +35,4 @@ compilers: ctest_filter: -R "integration.*" skip_regression: true skip_packaging: true - num_parallel_builds: 16 + num_parallel_builds: 18