Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
1382ed6
bench: Add convex_support.cpp benchmark
jorisv Sep 23, 2025
7a85d8c
ci: Concatenate matrix.cxx_options to CXXFLAGS
jorisv Sep 23, 2025
b6d7970
bench: Add highway in convex_support benchmark
jorisv Sep 25, 2025
7c100e7
pixi: Use conda-forge libhwy
jorisv Sep 25, 2025
af9143b
bench: Run highway on double scalar type
jorisv Sep 25, 2025
56c4b52
bench: Use ILP to accelerate computation
jorisv Sep 25, 2025
5468311
bench: Fix ILP code and add 4 way test
jorisv Sep 25, 2025
a6b088b
bench: Refactor benchmark structure
jorisv Sep 26, 2025
40cad23
bench: Apply @ManifoldFR review
jorisv Sep 26, 2025
ddea957
cmake: lint
jorisv Sep 26, 2025
4b7da19
ci: Fix Windows build
jorisv Sep 26, 2025
17f2523
bench: Allocate per architecture to pad data structure
jorisv Sep 26, 2025
f0b3349
bench: Construct icosahedron neighbor and remove duplicated points
jorisv Sep 30, 2025
8618a90
cmake: Simplify benchmark cmake
jorisv Sep 30, 2025
77bbc3c
bench: Store points neighbors in a dedicated class
jorisv Sep 30, 2025
d53af49
bench: Add log support function benchmark
jorisv Sep 30, 2025
d41030a
bench: Remove SetSupportedTargetsForTest overhead
jorisv Sep 30, 2025
9ab22fb
bench: Add WarmStartMesh data structure
jorisv Oct 2, 2025
b6508f0
Create algorithms from points instead of Icosahedron
jorisv Oct 2, 2025
eaa1ce7
bench: Don't store Icosahedron in IcosahedronWithNeighbors
jorisv Oct 2, 2025
02bbf60
bench: Add supportWithIndex highway implementation
jorisv Oct 2, 2025
7e6d5f9
bench: Add first SOA and Cluster algorithm
jorisv Oct 2, 2025
0834100
bench: Manage empty cluster and Add Log with Warm Start algorithm
jorisv Oct 2, 2025
0effc90
pixi: Update lock file
jorisv Oct 3, 2025
00a643c
bench: Improve LogWarmStart bench and remove some
jorisv Oct 8, 2025
3562600
bench: Add SOANeighborLogWarmStartAlgorithmBench
jorisv Oct 8, 2025
a870c30
bench: Avoid doing too much allocation
jorisv Oct 9, 2025
6a193fa
bench: Add SOALocalNeighborLogWarmStartAlgorithm
jorisv Oct 9, 2025
6bc6081
bench: Add more standard deviation
jorisv Oct 10, 2025
496eadb
bench: Use SparseSet instead of a std::vector
jorisv Oct 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/macos-linux-windows-pixi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,9 @@ jobs:
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
COAL_BUILD_TYPE: ${{ matrix.build_type }}
COAL_CXX_FLAGS: ${{ matrix.cxx_options }}
shell: bash -el {0}
run: |
export CXXFLAGS="$CXXFLAGS ${{ matrix.cxx_options }}"
pixi run -e ${{ matrix.environment }} build

- name: Test Coal [MacOS/Linux/Windows]
Expand All @@ -96,9 +97,9 @@ jobs:
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
COAL_BUILD_TYPE: ${{ matrix.build_type }}
COAL_CXX_FLAGS: ${{ matrix.cxx_options }}
shell: bash -el {0}
run: |
export CXXFLAGS="$CXXFLAGS ${{ matrix.cxx_options }}"
pixi run -e ${{ matrix.environment }} configure \
-DBUILD_PYTHON_INTERFACE=OFF \
-B build_cpp
Expand All @@ -109,9 +110,9 @@ jobs:
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
COAL_BUILD_TYPE: ${{ matrix.build_type }}
COAL_CXX_FLAGS: ${{ matrix.cxx_options }}
shell: bash -el {0}
run: |
export CXXFLAGS="$CXXFLAGS ${{ matrix.cxx_options }}"
pixi run -e ${{ matrix.environment }} configure \
-DBUILD_PYTHON_INTERFACE=ON \
-DBUILD_STANDALONE_PYTHON_INTERFACE=ON \
Expand Down
6 changes: 5 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ option(
"Build with tracy profiler for performance analysis"
FALSE
)
option(COAL_BUILD_BENCHMARK "Build benchmarks" FALSE)

# Check if the submodule cmake have been initialized
set(JRL_CMAKE_MODULES "${CMAKE_CURRENT_LIST_DIR}/cmake")
Expand Down Expand Up @@ -523,7 +524,10 @@ if(BUILD_PYTHON_INTERFACE)
endif()
if(BUILD_TESTING)
add_subdirectory(test)
endif(BUILD_TESTING)
endif()
if(COAL_BUILD_BENCHMARK)
add_subdirectory(benchmark)
endif()

PKG_CONFIG_APPEND_LIBS("coal")
if(COAL_HAS_OCTOMAP)
Expand Down
18 changes: 18 additions & 0 deletions benchmark/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
add_project_dependency(benchmark REQUIRED)
add_project_dependency(hwy REQUIRED)

# Add icosahedron building library
add_library(coal-bench-utils-icosahedron STATIC utils/icosahedron.cpp)
target_link_libraries(coal-bench-utils-icosahedron PUBLIC Eigen3::Eigen)

# Add coal-bench-convex-support benchmark
add_executable(coal-bench-convex-support convex_support.cpp
convex_support_highway.cpp)
set_standard_output_directory(coal-bench-convex-support)
target_link_libraries(
coal-bench-convex-support
PRIVATE ${LIBRARY_NAME} Eigen3::Eigen Boost::boost benchmark::benchmark
hwy::hwy coal-bench-utils-icosahedron)
# This is mandatory to support highway auto include
target_include_directories(coal-bench-convex-support
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
Loading
Loading