Skip to content

Commit

Permalink
Holoscan SDK v2.7.0 Release
Browse files Browse the repository at this point in the history
Co-authored-by: Alexis Girault <[email protected]>
Co-authored-by: Andreas Heumann <[email protected]>
Co-authored-by: Cristiana Dinea <[email protected]>
Co-authored-by: Gigon Bae <[email protected]>
Co-authored-by: Gregory Lee <[email protected]>
Co-authored-by: Ian Stewart <[email protected]>
Co-authored-by: Ilies Chergui <[email protected]>
Co-authored-by: Julien Jomier <[email protected]>
Co-authored-by: Shekhar Dwivedi <[email protected]>
Co-authored-by: Soham Sinha <[email protected]>
Co-authored-by: Tom Birdsong <[email protected]>
Co-authored-by: Victor Chang <[email protected]>
Co-authored-by: Wendell Hom <[email protected]>
  • Loading branch information
13 people committed Dec 2, 2024
1 parent 2eb3860 commit 68c7b5e
Show file tree
Hide file tree
Showing 272 changed files with 9,685 additions and 1,882 deletions.
6 changes: 4 additions & 2 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
{
"name": "x86_64",
"includePath": [
"${workspaceFolder}/${env:HOLOSCAN_PUBLIC_FOLDER}/include"
"${workspaceFolder}/${env:HOLOSCAN_PUBLIC_FOLDER}/include",
"/usr/local/cuda/include",
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
Expand All @@ -21,7 +22,8 @@
{
"name": "arm64",
"includePath": [
"${workspaceFolder}/${env:HOLOSCAN_PUBLIC_FOLDER}/include"
"${workspaceFolder}/${env:HOLOSCAN_PUBLIC_FOLDER}/include",
"/usr/local/cuda/include",
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,8 @@
"syncstream": "cpp",
"__functional_base_03": "cpp",
"annotated_ptr": "cpp",
"stream_ref": "cpp"
"stream_ref": "cpp",
"expected": "cpp"
},
"git.alwaysSignOff": true,
"git.untrackedChanges": "separate",
Expand Down
22 changes: 21 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,16 @@ option(BUILD_SHARED_LIBS "Build Shared Libraries" ON)
option(HOLOSCAN_BUILD_LIBTORCH "Build support for the LibTorch backend" ON)
option(HOLOSCAN_BUILD_ORT "Build support for the ONNX Runtime backend" ON)
option(HOLOSCAN_BUILD_AJA "Build support for AJA" ON)
option(HOLOSCAN_BUILD_GXF_EXTENSIONS "Build GXF Extensions" ON)
option(HOLOSCAN_BUILD_EXAMPLES "Build Holoscan SDK Examples" ON)
option(HOLOSCAN_BUILD_PYTHON "Build Holoscan SDK Python Bindings" ON)
option(HOLOSCAN_DOWNLOAD_DATASETS "Download SDK Datasets" ON)
option(HOLOSCAN_BUILD_TESTS "Build Holoscan SDK Tests" ON)
option(HOLOSCAN_USE_CCACHE "Use ccache for building Holoscan SDK" OFF)
option(HOLOSCAN_INSTALL_EXAMPLE_SOURCE "Install the example source code" ON)
option(HOLOSCAN_ENABLE_CLANG_TIDY "Enable use of clang-tidy" OFF)
option(HOLOSCAN_ENABLE_GOOGLE_SANITIZER "Enable use of google sanitizer" OFF)
option(HOLOSCAN_BUILD_GXF_EXTENSIONS "Build GXF Extensions" ON)
option(HOLOSCAN_REGISTER_GXF_EXTENSIONS "Register extensions with the Graph Composer registry" OFF)

# ##############################################################################
# # Prerequisite statements
Expand Down Expand Up @@ -65,6 +67,18 @@ project(${HOLOSCAN_PACKAGE_NAME}
)
include(SetupCUDA) # CUDA Language enabled there after additional setup

# If enabling google sanitizer
if(HOLOSCAN_ENABLE_GOOGLE_SANITIZER)
# Note: Before running the tests, the following command must be executed:
# export ASAN_OPTIONS=symbolize=1:protect_shadow_gap=0
# This ensures that stack traces are symbolized and prevents false positives related to shadow gap
# protection.
# Without this, CUDA-related tests may fail (e.g., CUDA runtime API error "out of memory").
# (See https://github.com/NVIDIA/DALI/pull/362).
# You may still see some false positives when running the tests that uses the Vulkan-related APIs.
list(APPEND CMAKE_CXX_FLAGS "-g -O1 -Wno-stringop-truncation -fsanitize=address -fno-omit-frame-pointer")
endif()

# ##############################################################################
# # Global properties (CMAKE_*)
# ##############################################################################
Expand Down Expand Up @@ -302,6 +316,12 @@ foreach(_component ${HOLOSCAN_GXF_COMPONENTS})
endif()
endforeach()

install(
DIRECTORY ${GXF_PYTHON_MODULE_PATH}
DESTINATION python/${HOLOSCAN_INSTALL_LIB_DIR}
COMPONENT "holoscan-gxf_libs"
)

# Install CMake script to build GXE applications
install(FILES "${CMAKE_SOURCE_DIR}/cmake/modules/GenerateGXEAppInstall.cmake"
RENAME GenerateGXEApp.cmake
Expand Down
2 changes: 1 addition & 1 deletion DEVELOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ Visual Studio Code can be utilized to develop the Holoscan SDK. The `.devcontain

The `./run` script contains `vscode` and `vscode_remote` commands for launching Visual Studio Code in a container or from a remote machine, respectively.

- To launch Visual Studio Code in a dev container, use `./run vscode`.
- To launch Visual Studio Code in a dev container, use `./run vscode` (`-j <# of workers>` or `--parallel <# of workers>` can be used to specify the number of parallel jobs to run during the build process). For more information, refer to the instructions from `./run vscode -h`.
- To attach to an existing dev container from a remote machine, use `./run vscode_remote`. For more information, refer to the instructions from `./run vscode_remote -h`.

Once Visual Studio Code is launched, the development container will be built and the recommended extensions will be installed automatically, along with CMake being configured.
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ ARG ONNX_RUNTIME_VERSION=1.18.1_38712740_24.08-cuda-12.6
ARG LIBTORCH_VERSION=2.5.0_24.08
ARG TORCHVISION_VERSION=0.20.0_24.08
ARG GRPC_VERSION=1.54.2
ARG GXF_VERSION=447_20241004_bf72709
ARG GXF_VERSION=447_20241029_bf72709
ARG MOFED_VERSION=24.07-0.6.1.0

############################################################
Expand Down Expand Up @@ -182,7 +182,6 @@ FROM build-tools AS ucx-patcher
# the necessary rpath for non-containerized applications. We patch RPATH
# for portability when we later repackage these libraries for distribution
# outside of the container.
WORKDIR /opt/ucx/${UCX_VERSION}
RUN patchelf --set-rpath '$ORIGIN' /opt/hpcx/ucx/lib/libuc*.so* \
&& patchelf --set-rpath '$ORIGIN:$ORIGIN/..' /opt/hpcx/ucx/lib/ucx/libuc*.so* \
&& patchelf --set-rpath '$ORIGIN/../lib' /opt/hpcx/ucx/bin/*
Expand Down Expand Up @@ -256,6 +255,7 @@ ARG GXF_VERSION
ENV GXF=/opt/nvidia/gxf/${GXF_VERSION}
COPY --from=gxf-downloader ${GXF} ${GXF}
ENV CMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}:${GXF}"
ENV PYTHONPATH="${PYTHONPATH}:/opt/nvidia/gxf/${GXF_VERSION}/python"

# Setup Docker & NVIDIA Container Toolkit's apt repositories to enable DooD
# for packaging & running applications with the CLI
Expand Down
2 changes: 1 addition & 1 deletion NOTICE.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Holoscan SDK
Copyright (c) 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Copyright (c) 2021-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

This product includes software developed at NVIDIA CORPORATION (https://www.nvidia.com/).

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.6.0
2.7.0
29 changes: 29 additions & 0 deletions cmake/deps/gxf.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,37 @@ foreach(component ${HOLOSCAN_GXF_COMPONENTS})
endif()
endforeach()

if(NOT GXF_ROOT)
cmake_path(GET "${GXF_DIR}" PARENT_PATH PARENT_PATH PARENT_PATH GXF_ROOT)
endif()
find_path(GXF_PYTHON_MODULE_PATH
NAMES
core/__init__.py
core/Gxf.py
PATHS ${GXF_ROOT}/python/gxf
REQUIRED
)

# Test that the GXF Python module is in PYTHONPATH
find_package(Python3 COMPONENTS Interpreter REQUIRED)
execute_process(
COMMAND "${Python3_EXECUTABLE}" -c "import os; import gxf; print(os.pathsep.join(gxf.__path__).strip())"
RESULT_VARIABLE GXF_MODULE_FOUND
OUTPUT_VARIABLE GXF_MODULE_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(NOT GXF_MODULE_FOUND EQUAL 0)
message(FATAL_ERROR "GXF Python module not found in PYTHONPATH")
endif()
if(NOT GXF_MODULE_DIR STREQUAL "${GXF_PYTHON_MODULE_PATH}")
message(WARNING
"Expected GXF Python module at ${GXF_PYTHON_MODULE_PATH} but found at ${GXF_MODULE_DIR}."
" Do you need to update your PYTHONPATH?")
endif()

# Set variables in parent scope for use throughout the Holoscan project
set(GXF_INCLUDE_DIR ${GXF_INCLUDE_DIR} PARENT_SCOPE)
set(GXF_PYTHON_MODULE_PATH ${GXF_PYTHON_MODULE_PATH} PARENT_SCOPE)
set(HOLOSCAN_GXF_LIB_DIR ${HOLOSCAN_GXF_LIB_DIR} PARENT_SCOPE)
set(HOLOSCAN_GXF_BIN_DIR ${HOLOSCAN_GXF_BIN_DIR} PARENT_SCOPE)
set(HOLOSCAN_GXE_LOCATION ${HOLOSCAN_GXE_LOCATION} PARENT_SCOPE)
Expand Down
12 changes: 10 additions & 2 deletions cmake/modules/HoloscanCPack.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.

# Copy NOTICE file for installation
install(FILES ${CMAKE_CURRENT_LIST_DIR}/cpack/NOTICE.txt
# Copy NOTICE file for packaging
install(FILES "${CMAKE_CURRENT_LIST_DIR}/cpack/NOTICE.txt"
DESTINATION .
RENAME NOTICE
COMPONENT holoscan-cpack
)

# Copy LICENSE file for installation
install(FILES "${CMAKE_BINARY_DIR}/LICENSE.txt"
DESTINATION "/usr/share/doc/holoscan/"
RENAME copyright
COMPONENT holoscan-cpack
)

Expand Down
7 changes: 6 additions & 1 deletion cmake/modules/PrintProjectSettings.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,16 @@ message(STATUS "CMAKE_FIND_ROOT_PATH : ${CMAKE_FIND_ROOT_PATH}")
message(STATUS "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE: ${CMAKE_FIND_ROOT_PATH_MODE_INCLUDE}")
message(STATUS "")
message(STATUS "BUILD_SHARED_LIBS : ${BUILD_SHARED_LIBS}")
message(STATUS "HOLOSCAN_BUILD_PYTHON : ${HOLOSCAN_BUILD_PYTHON}")
message(STATUS "HOLOSCAN_BUILD_AJA : ${HOLOSCAN_BUILD_AJA}")
message(STATUS "HOLOSCAN_BUILD_EXAMPLES : ${HOLOSCAN_BUILD_EXAMPLES}")
message(STATUS "HOLOSCAN_BUILD_TESTS : ${HOLOSCAN_BUILD_TESTS}")
message(STATUS "HOLOSCAN_ENABLE_CLANG_TIDY : ${HOLOSCAN_ENABLE_CLANG_TIDY}")
message(STATUS "HOLOSCAN_ENABLE_GOOGLE_SANITIZER : ${HOLOSCAN_ENABLE_GOOGLE_SANITIZER}")
message(STATUS "HOLOSCAN_USE_CCACHE : ${HOLOSCAN_USE_CCACHE}")
message(STATUS "HOLOSCAN_USE_CCACHE_SKIPPED : ${HOLOSCAN_USE_CCACHE_SKIPPED}")
message(STATUS "HOLOSCAN_CACHE_DIR : ${HOLOSCAN_CACHE_DIR}")
message(STATUS "HOLOSCAN_TOP : ${HOLOSCAN_TOP}")
message(STATUS "HOLOSCAN_INSTALL_LIB_DIR : ${HOLOSCAN_INSTALL_LIB_DIR}")
message(STATUS "HOLOSCAN_INSTALL_LIB_DIR : ${HOLOSCAN_INSTALL_LIB_DIR}")
message(STATUS "HOLOSCAN_BUILD_GXF_EXTENSIONS : ${HOLOSCAN_BUILD_GXF_EXTENSIONS}")
message(STATUS "HOLOSCAN_REGISTER_GXF_EXTENSIONS : ${HOLOSCAN_REGISTER_GXF_EXTENSIONS}")
Loading

0 comments on commit 68c7b5e

Please sign in to comment.