Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 0 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
*.pt filter=lfs diff=lfs merge=lfs -text
*.mcap filter=lfs diff=lfs merge=lfs -text
*.pcd filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
4 changes: 4 additions & 0 deletions .github/workflows/docker-ros.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ jobs:
rmw-implementation: rmw_zenoh_cpp
command: ros2 launch point_cloud_object_detection point_cloud_object_detection.launch.py
enable-industrial-ci: true
cmake-args: >-
-DCMAKE_BUILD_TYPE=Release
-DREQUIRE_CUDA=ON
-DPCOD_CUDA_FAST_MATH=ON
additional-slim-build-args: >-
--compose-file ../docker/slim-compose.yml
--compose-workdir ..
Expand Down
3 changes: 0 additions & 3 deletions assets/pcod-teaser.mp4

This file was deleted.

18 changes: 12 additions & 6 deletions point_cloud_object_detection/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
endif()

option(REQUIRE_CUDA "Fail build if CUDA is not found" OFF)
option(PCOD_CUDA_FAST_MATH "Enable fast-math optimizations for detection CUDA sources" OFF)

set(CUDA_AVAILABLE_MARKER "/opt/ros-cmake-cache/cuda-available")
set(CUDA_UNAVAILABLE_MARKER "/opt/ros-cmake-cache/cuda-unavailable")
Expand All @@ -17,11 +18,11 @@ else()
endif()

if(NOT CUDA_EXPLICITLY_UNAVAILABLE AND NOT DEFINED CMAKE_CUDA_COMPILER)
if(EXISTS "/usr/local/cuda/bin/nvcc")
set(CMAKE_CUDA_COMPILER "/usr/local/cuda/bin/nvcc" CACHE FILEPATH "CUDA compiler" FORCE)
elseif(EXISTS "/usr/local/cuda-12.8/bin/nvcc")
set(CMAKE_CUDA_COMPILER "/usr/local/cuda-12.8/bin/nvcc" CACHE FILEPATH "CUDA compiler" FORCE)
find_program(PCOD_NVCC_EXECUTABLE NAMES nvcc HINTS "/usr/local/cuda/bin")
if(PCOD_NVCC_EXECUTABLE)
set(CMAKE_CUDA_COMPILER "${PCOD_NVCC_EXECUTABLE}" CACHE FILEPATH "CUDA compiler" FORCE)
endif()
unset(PCOD_NVCC_EXECUTABLE CACHE)
endif()

include(CheckLanguage)
Expand All @@ -32,15 +33,17 @@ endif()
if(DEFINED CMAKE_CUDA_COMPILER AND NOT EXISTS "${CMAKE_CUDA_COMPILER}")
if(CUDA_EXPLICITLY_UNAVAILABLE)
message(STATUS "Ignoring CMAKE_CUDA_COMPILER on platform without CUDA support")
elseif(REQUIRE_CUDA)
message(FATAL_ERROR "REQUIRE_CUDA is ON and CMAKE_CUDA_COMPILER was set to '${CMAKE_CUDA_COMPILER}' but the compiler does not exist. Ensure CUDA Toolkit is installed.")
else()
message(STATUS "Specified CUDA compiler not found: ${CMAKE_CUDA_COMPILER}")
endif()
unset(CMAKE_CUDA_COMPILER)
unset(CMAKE_CUDA_COMPILER CACHE)
endif()

if(REQUIRE_CUDA AND NOT CUDA_EXPLICITLY_UNAVAILABLE AND NOT CMAKE_CUDA_COMPILER)
message(FATAL_ERROR "REQUIRE_CUDA is ON but no CUDA compiler was detected. Ensure CUDA Toolkit is installed.")
endif()

if(CMAKE_CUDA_COMPILER)
option(ENABLE_CUDA "Enable CUDA acceleration" ON)
else()
Expand Down Expand Up @@ -102,6 +105,9 @@ set(PCOD_COMMON_ENABLE_CUDA ${ENABLE_CUDA} CACHE BOOL "Enable optional CUDA comp
add_subdirectory(pcod-common)
if(TARGET pcod_common)
set_target_properties(pcod_common PROPERTIES POSITION_INDEPENDENT_CODE ON)
if(PCOD_CUDA_FAST_MATH)
target_compile_options(pcod_common PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:--use_fast_math>)
endif()
endif()

add_library(
Expand Down
Loading