From 3867302810a2964814a693927ce0fe027a227105 Mon Sep 17 00:00:00 2001 From: Malkovsky Date: Mon, 24 Nov 2025 22:33:33 +0300 Subject: [PATCH 1/4] [PIXIE-7] Add pasta/bit_vector --- CMakeLists.txt | 19 ++++++++++++++----- src/benchmarks.cpp | 5 +++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 935f6cb..018f931 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,9 @@ cmake_minimum_required(VERSION 3.12) project(pixie) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) set(MARCH "native" CACHE STRING "march compilier flag") set(CMAKE_CXX_FLAGS "-march=${MARCH}") @@ -35,16 +38,25 @@ FetchContent_Declare( set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable Google Benchmark tests") FetchContent_MakeAvailable(googlebenchmark) +FetchContent_Declare( + pasta_bit_vector + GIT_REPOSITORY https://github.com/pasta-toolbox/bit_vector.git + GIT_TAG v1.0.1 +) +FetchContent_MakeAvailable(pasta_bit_vector) + +# add_subdirectory(third_party/pasta_bv) + add_executable(benchmarks src/benchmarks.cpp) target_include_directories(benchmarks PUBLIC include ) -set_property(TARGET benchmarks PROPERTY CXX_STANDARD 20) target_link_libraries(benchmarks benchmark - benchmark_main) + benchmark_main + pasta_bit_vector) add_test( NAME Benchmarks COMMAND bt_benchmarks --benchmark_out=bm_report.csv --benchmark_out_format=csv @@ -56,7 +68,6 @@ target_include_directories(unittests PUBLIC include PUBLIC ${GOOGLETEST_SOURCE_DIR}/include ) -set_property(TARGET unittests PROPERTY CXX_STANDARD 20) target_link_libraries(unittests gtest gtest_main) @@ -77,7 +88,6 @@ add_executable(bench_rmm target_include_directories(bench_rmm PUBLIC include ) -set_property(TARGET bench_rmm PROPERTY CXX_STANDARD 20) target_link_libraries(bench_rmm benchmark) @@ -87,7 +97,6 @@ target_include_directories(test_rmm PUBLIC include PUBLIC include/misc ) -set_property(TARGET test_rmm PROPERTY CXX_STANDARD 20) target_link_libraries(test_rmm gtest gtest_main) diff --git a/src/benchmarks.cpp b/src/benchmarks.cpp index 3bf3b66..29f39f1 100644 --- a/src/benchmarks.cpp +++ b/src/benchmarks.cpp @@ -1,5 +1,10 @@ #include #include +#ifdef PIXIE_THIRD_PARTY_BENCHMARKS +// TODO: change the pasta/bit_vector usage of std::aligned_alloc +#include +#endif +#include #include #include From 8a55ae5123596d3752b84658f093dff82d85313a Mon Sep 17 00:00:00 2001 From: Malkovsky Date: Mon, 24 Nov 2025 22:50:47 +0300 Subject: [PATCH 2/4] linter --- src/benchmarks.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/benchmarks.cpp b/src/benchmarks.cpp index 29f39f1..cde9b9e 100644 --- a/src/benchmarks.cpp +++ b/src/benchmarks.cpp @@ -1,14 +1,14 @@ #include #include #ifdef PIXIE_THIRD_PARTY_BENCHMARKS -// TODO: change the pasta/bit_vector usage of std::aligned_alloc +// TODO: change the pasta/bit_vector usage of std::aligned_alloc #include #endif #include - #include #include + static void BM_RankNonInterleaved(benchmark::State& state) { size_t n = state.range(0); std::mt19937_64 rng(42); From 0d45420ed48c10b880c37e5327d73a681baf67da Mon Sep 17 00:00:00 2001 From: Malkovsky Date: Tue, 25 Nov 2025 23:13:31 +0300 Subject: [PATCH 3/4] test: pasta bit vector head --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 018f931..92df29b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,7 +41,7 @@ FetchContent_MakeAvailable(googlebenchmark) FetchContent_Declare( pasta_bit_vector GIT_REPOSITORY https://github.com/pasta-toolbox/bit_vector.git - GIT_TAG v1.0.1 + GIT_TAG origin/main ) FetchContent_MakeAvailable(pasta_bit_vector) From 89950210b675e4ead8a890542e2431d46484c05c Mon Sep 17 00:00:00 2001 From: Malkovsky Date: Tue, 25 Nov 2025 23:41:10 +0300 Subject: [PATCH 4/4] fix: format --- src/benchmarks.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/benchmarks.cpp b/src/benchmarks.cpp index cde9b9e..e2586fa 100644 --- a/src/benchmarks.cpp +++ b/src/benchmarks.cpp @@ -8,7 +8,6 @@ #include #include - static void BM_RankNonInterleaved(benchmark::State& state) { size_t n = state.range(0); std::mt19937_64 rng(42);