From e9b3f847913f61c60717ab97431eeb9eff70838d Mon Sep 17 00:00:00 2001 From: eagostini Date: Wed, 3 Apr 2024 12:27:32 +0000 Subject: [PATCH 01/10] DOCA 2.6 from public repo Signed-off-by: eagostini --- docker/Dockerfile | 70 ++++++++++++++++++++++++++++++++++-- docker/build_container.sh | 3 -- docker/optional_deps/doca.sh | 12 ------- 3 files changed, 67 insertions(+), 18 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index ff2caaf455..2e4bd186f3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -149,12 +149,76 @@ FROM conda_env as base_extended # Add one or more optional dependencies to the base environment ARG MORPHEUS_ROOT_HOST ARG MORPHEUS_SUPPORT_DOCA="FALSE" -ARG DOCA_REPO_HOST -ARG DOCA_VERSION=2.6.0-0.0.1 - +ARG DOCA_VERSION=2.6.0 # Set this environment variable so it auto builds DOCA ENV MORPHEUS_SUPPORT_DOCA=${MORPHEUS_SUPPORT_DOCA} +ARG DOCA_REPO_LINK=https://linux.mellanox.com/public/repo/doca/${DOCA_VERSION} +# ${LINUX_DISTRO}${LINUX_VER} +ENV DOCA_REPO ${DOCA_REPO_LINK}/ubuntu22.04 +ENV DOCA_REPO_ARCH x86_64 +ENV DOCA_UPSTREAM_REPO ${DOCA_REPO}/${DOCA_REPO_ARCH} +ARG DEBIAN_FRONTEND=noninteractive + +# Upgrade the base packages (diff between image and Canonical upstream repo) +RUN apt update -y && \ + apt upgrade -y && \ + # Cleanup apt + rm -rf /var/lib/apt/lists/* && \ + apt autoremove -y + +# Configure DOCA Repository, and install packages +RUN if [ ${MORPHEUS_SUPPORT_DOCA} = "ON" ]; then \ + apt update -y && \ + # Install wget & Add the DOCA public repository + apt install -y --no-install-recommends \ + wget \ + software-properties-common \ + gpg-agent && \ + wget -qO - ${DOCA_UPSTREAM_REPO}/GPG-KEY-Mellanox.pub | apt-key add - && \ + add-apt-repository "deb [trusted=yes] ${DOCA_UPSTREAM_REPO} ./" && \ + apt update -y && \ + # Install base-rt content + apt install -y --no-install-recommends \ + rdma-core \ + flexio \ + yara \ + libyara8 \ + python3-pyverbs \ + ibverbs-utils \ + librdmacm1 \ + libibnetdisc5 \ + ibacm \ + mlnx-tools \ + ofed-scripts \ + libopensm \ + libibumad3 \ + libibmad5 \ + libopenvswitch \ + openvswitch-common \ + openvswitch-switch \ + srptools \ + mlnx-ethtool \ + mlnx-iproute2 \ + dpcp \ + openmpi \ + ucx \ + doca-prime-runtime \ + doca-prime-sdk \ + #doca-runtime \ + doca-sdk \ + doca-gpu \ + doca-gpu-dev && \ + # Cleanup apt + rm -rf /usr/lib/python3/dist-packages && \ + apt remove -y \ + wget \ + software-properties-common \ + gpg-agent && \ + rm -rf /var/lib/apt/lists/* && \ + apt autoremove -y ; \ + fi + # Copy all of the optional dependency scripts COPY ${MORPHEUS_ROOT_HOST}/docker/optional_deps docker/optional_deps diff --git a/docker/build_container.sh b/docker/build_container.sh index f908a1b2db..36c2f7084d 100755 --- a/docker/build_container.sh +++ b/docker/build_container.sh @@ -31,7 +31,6 @@ DOCKER_EXTRA_ARGS=${DOCKER_EXTRA_ARGS:-""} CUDA_MAJOR_VER=${CUDA_MAJOR_VER:-12} CUDA_MINOR_VER=${CUDA_MINOR_VER:-1} CUDA_REV_VER=${CUDA_REV_VER:-1} -DOCA_REPO_HOST=${DOCA_REPO_HOST:-""} FROM_IMAGE=${FROM_IMAGE:-"nvidia/cuda"} LINUX_DISTRO=${LINUX_DISTRO:-ubuntu} LINUX_VER=${LINUX_VER:-22.04} @@ -47,7 +46,6 @@ DOCKER_ARGS="${DOCKER_ARGS} --target ${DOCKER_TARGET}" DOCKER_ARGS="${DOCKER_ARGS} --build-arg CUDA_MAJOR_VER=${CUDA_MAJOR_VER}" DOCKER_ARGS="${DOCKER_ARGS} --build-arg CUDA_MINOR_VER=${CUDA_MINOR_VER}" DOCKER_ARGS="${DOCKER_ARGS} --build-arg CUDA_REV_VER=${CUDA_REV_VER}" -DOCKER_ARGS="${DOCKER_ARGS} --build-arg DOCA_REPO_HOST=${DOCA_REPO_HOST}" DOCKER_ARGS="${DOCKER_ARGS} --build-arg FROM_IMAGE=${FROM_IMAGE}" DOCKER_ARGS="${DOCKER_ARGS} --build-arg LINUX_DISTRO=${LINUX_DISTRO}" DOCKER_ARGS="${DOCKER_ARGS} --build-arg LINUX_VER=${LINUX_VER}" @@ -66,7 +64,6 @@ echo "Building morpheus:${DOCKER_TAG} with args..." echo " CUDA_MAJOR_VER : ${CUDA_MAJOR_VER}" echo " CUDA_MINOR_VER : ${CUDA_MINOR_VER}" echo " CUDA_REV_VER : ${CUDA_REV_VER}" -echo " DOCA_REPO_HOST : ${DOCA_REPO_HOST}" echo " FROM_IMAGE : ${FROM_IMAGE}" echo " LINUX_DISTRO : ${LINUX_DISTRO}" echo " LINUX_VER : ${LINUX_VER}" diff --git a/docker/optional_deps/doca.sh b/docker/optional_deps/doca.sh index 8351b79db4..430da69ebf 100755 --- a/docker/optional_deps/doca.sh +++ b/docker/optional_deps/doca.sh @@ -23,8 +23,6 @@ if [[ ${MORPHEUS_SUPPORT_DOCA} != @(TRUE|ON) ]]; then exit 0 fi -DOCA_REPO_HOST=${DOCA_REPO_HOST:?"Must set \$DOCA_REPO_HOST to build DOCA."} -DOCA_VERSION=${DOCA_VERSION:-2.6.0-0.0.1} WORKING_DIR=$1 echo "Installing DOCA using directory: ${WORKING_DIR}" @@ -33,16 +31,6 @@ DEB_DIR=${WORKING_DIR}/deb mkdir -p ${DEB_DIR} -# Download all files with -nc to skip download if its already there -wget -nc -P ${DEB_DIR} https://${DOCA_REPO_HOST}/doca-repo-2.6.0/doca-repo-2.6.0-0.0.1-240205-083002-daily/doca-host-repo-ubuntu2204_2.6.0-0.0.1-240205-083002-daily.2.6.0058.1.24.01.0.3.3.1_amd64.deb -# Install the doca host repo -dpkg -i ${DEB_DIR}/doca-host-repo*.deb - -# Install all other packages -apt-get update -# apt-get install -y libjson-c-dev meson cmake pkg-config -apt-get install -y doca-sdk doca-runtime doca-gpu doca-gpu-dev - # Now install the gdrcopy library according to: https://github.com/NVIDIA/gdrcopy GDRCOPY_DIR=${WORKING_DIR}/gdrcopy From 70667b053b5821240a028e30e6a62ee1b7cb4cc4 Mon Sep 17 00:00:00 2001 From: eagostini Date: Wed, 3 Apr 2024 13:30:53 +0000 Subject: [PATCH 02/10] fix compilation error --- morpheus/_lib/doca/src/doca_source.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/morpheus/_lib/doca/src/doca_source.cpp b/morpheus/_lib/doca/src/doca_source.cpp index 320b2cbf8d..2c5f95bbd7 100644 --- a/morpheus/_lib/doca/src/doca_source.cpp +++ b/morpheus/_lib/doca/src/doca_source.cpp @@ -128,9 +128,8 @@ DocaSourceStage::subscriber_fn_t DocaSourceStage::build() int thread_idx = mrc::runnable::Context::get_runtime_context().rank(); if (thread_idx >= MAX_QUEUE) - { - MORPHEUS_FAIL(MORPHEUS_CONCAT_STR("Thread ID " << thread_idx << " bigger than MAX_QUEUE " << MAX_QUEUE)); - } + MORPHEUS_FAIL("More CPU threads than allowed queues"); + // MORPHEUS_FAIL(MORPHEUS_CONCAT_STR("Thread ID " << thread_idx << " bigger than MAX_QUEUE " << MAX_QUEUE)); payload_buffer_d.reserve(MAX_SEM_X_QUEUE); payload_sizes_d.reserve(MAX_SEM_X_QUEUE); From cd05f9ac2a4b705ad3d6c2a1ab97a78382a822b9 Mon Sep 17 00:00:00 2001 From: eagostini Date: Wed, 3 Apr 2024 18:14:07 +0000 Subject: [PATCH 03/10] Address comments Signed-off-by: eagostini --- docker/Dockerfile | 67 ------------------------------------ docker/optional_deps/doca.sh | 60 ++++++++++++++++++++++++++++++++ examples/doca/run.py | 4 ++- 3 files changed, 63 insertions(+), 68 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2e4bd186f3..492e4becae 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -149,76 +149,9 @@ FROM conda_env as base_extended # Add one or more optional dependencies to the base environment ARG MORPHEUS_ROOT_HOST ARG MORPHEUS_SUPPORT_DOCA="FALSE" -ARG DOCA_VERSION=2.6.0 # Set this environment variable so it auto builds DOCA ENV MORPHEUS_SUPPORT_DOCA=${MORPHEUS_SUPPORT_DOCA} -ARG DOCA_REPO_LINK=https://linux.mellanox.com/public/repo/doca/${DOCA_VERSION} -# ${LINUX_DISTRO}${LINUX_VER} -ENV DOCA_REPO ${DOCA_REPO_LINK}/ubuntu22.04 -ENV DOCA_REPO_ARCH x86_64 -ENV DOCA_UPSTREAM_REPO ${DOCA_REPO}/${DOCA_REPO_ARCH} -ARG DEBIAN_FRONTEND=noninteractive - -# Upgrade the base packages (diff between image and Canonical upstream repo) -RUN apt update -y && \ - apt upgrade -y && \ - # Cleanup apt - rm -rf /var/lib/apt/lists/* && \ - apt autoremove -y - -# Configure DOCA Repository, and install packages -RUN if [ ${MORPHEUS_SUPPORT_DOCA} = "ON" ]; then \ - apt update -y && \ - # Install wget & Add the DOCA public repository - apt install -y --no-install-recommends \ - wget \ - software-properties-common \ - gpg-agent && \ - wget -qO - ${DOCA_UPSTREAM_REPO}/GPG-KEY-Mellanox.pub | apt-key add - && \ - add-apt-repository "deb [trusted=yes] ${DOCA_UPSTREAM_REPO} ./" && \ - apt update -y && \ - # Install base-rt content - apt install -y --no-install-recommends \ - rdma-core \ - flexio \ - yara \ - libyara8 \ - python3-pyverbs \ - ibverbs-utils \ - librdmacm1 \ - libibnetdisc5 \ - ibacm \ - mlnx-tools \ - ofed-scripts \ - libopensm \ - libibumad3 \ - libibmad5 \ - libopenvswitch \ - openvswitch-common \ - openvswitch-switch \ - srptools \ - mlnx-ethtool \ - mlnx-iproute2 \ - dpcp \ - openmpi \ - ucx \ - doca-prime-runtime \ - doca-prime-sdk \ - #doca-runtime \ - doca-sdk \ - doca-gpu \ - doca-gpu-dev && \ - # Cleanup apt - rm -rf /usr/lib/python3/dist-packages && \ - apt remove -y \ - wget \ - software-properties-common \ - gpg-agent && \ - rm -rf /var/lib/apt/lists/* && \ - apt autoremove -y ; \ - fi - # Copy all of the optional dependency scripts COPY ${MORPHEUS_ROOT_HOST}/docker/optional_deps docker/optional_deps diff --git a/docker/optional_deps/doca.sh b/docker/optional_deps/doca.sh index 430da69ebf..2350e46d4b 100755 --- a/docker/optional_deps/doca.sh +++ b/docker/optional_deps/doca.sh @@ -17,6 +17,9 @@ set -e MORPHEUS_SUPPORT_DOCA=${MORPHEUS_SUPPORT_DOCA:-OFF} +LINUX_DISTRO=${LINUX_DISTRO} +LINUX_VER=${LINUX_VER} +DOCA_VERSION="2.6.0" # Exit early if nothing to do if [[ ${MORPHEUS_SUPPORT_DOCA} != @(TRUE|ON) ]]; then @@ -31,6 +34,63 @@ DEB_DIR=${WORKING_DIR}/deb mkdir -p ${DEB_DIR} +DOCA_REPO_LINK="https://linux.mellanox.com/public/repo/doca/${DOCA_VERSION}" +# ${LINUX_DISTRO}${LINUX_VER} +DOCA_REPO="${DOCA_REPO_LINK}/ubuntu22.04" +DOCA_REPO_ARCH="x86_64" +DOCA_UPSTREAM_REPO="${DOCA_REPO}/${DOCA_REPO_ARCH}" + +# Upgrade the base packages (diff between image and Canonical upstream repo) +apt update -y +apt upgrade -y +# Cleanup apt +rm -rf /var/lib/apt/lists/* +apt autoremove -y + +# Configure DOCA Repository, and install packages +apt update -y +# Install wget & Add the DOCA public repository +apt install -y --no-install-recommends wget software-properties-common gpg-agent +wget -qO - ${DOCA_UPSTREAM_REPO}/GPG-KEY-Mellanox.pub | apt-key add - +add-apt-repository "deb [trusted=yes] ${DOCA_UPSTREAM_REPO} ./" +apt update -y +# Install base-rt content +apt install -y --no-install-recommends \ + doca-gpu \ + doca-gpu-dev \ + doca-prime-runtime \ + doca-prime-sdk \ + doca-sdk \ + dpcp \ + flexio \ + ibacm \ + ibverbs-utils \ + librdmacm1 \ + libibnetdisc5 \ + libibumad3 \ + libibmad5 \ + libopensm \ + libopenvswitch \ + libyara8 \ + mlnx-tools \ + ofed-scripts \ + openmpi \ + openvswitch-common \ + openvswitch-switch \ + srptools \ + mlnx-ethtool \ + mlnx-iproute2 \ + python3-pyverbs \ + rdma-core \ + ucx \ + yara + + # Cleanup apt +rm -rf /usr/lib/python3/dist-packages +apt remove -y software-properties-common gpg-agent +rm -rf /var/lib/apt/lists/* +apt autoremove -y + # Now install the gdrcopy library according to: https://github.com/NVIDIA/gdrcopy GDRCOPY_DIR=${WORKING_DIR}/gdrcopy diff --git a/examples/doca/run.py b/examples/doca/run.py index 3f27a453bc..a2a4415f04 100644 --- a/examples/doca/run.py +++ b/examples/doca/run.py @@ -112,7 +112,9 @@ def run_pipeline(pipeline_batch_size, # add doca source stage pipeline.set_source(DocaSourceStage(config, nic_addr, gpu_addr, traffic_type)) - pipeline.add_stage(MonitorStage(config, description="DOCA GPUNetIO rate", unit='pkts')) + + if traffic_type == 'udp': + pipeline.add_stage(MonitorStage(config, description="DOCA GPUNetIO rate", unit='pkts')) if traffic_type == 'tcp': # add deserialize stage From 966a228cfad571f3318ad57e89ab3a33b4d76efa Mon Sep 17 00:00:00 2001 From: eagostini Date: Thu, 4 Apr 2024 16:48:43 +0000 Subject: [PATCH 04/10] Fix error log --- morpheus/_lib/doca/src/doca_source.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/morpheus/_lib/doca/src/doca_source.cpp b/morpheus/_lib/doca/src/doca_source.cpp index 2c5f95bbd7..5805ff335c 100644 --- a/morpheus/_lib/doca/src/doca_source.cpp +++ b/morpheus/_lib/doca/src/doca_source.cpp @@ -127,9 +127,9 @@ DocaSourceStage::subscriber_fn_t DocaSourceStage::build() int thread_idx = mrc::runnable::Context::get_runtime_context().rank(); - if (thread_idx >= MAX_QUEUE) + if (thread_idx >= MAX_QUEUE) { MORPHEUS_FAIL("More CPU threads than allowed queues"); - // MORPHEUS_FAIL(MORPHEUS_CONCAT_STR("Thread ID " << thread_idx << " bigger than MAX_QUEUE " << MAX_QUEUE)); + } payload_buffer_d.reserve(MAX_SEM_X_QUEUE); payload_sizes_d.reserve(MAX_SEM_X_QUEUE); From 6f0b4c7db84e53ccb6b85b537e1f71d61322462a Mon Sep 17 00:00:00 2001 From: Michael Demoret Date: Thu, 4 Apr 2024 16:06:16 -0400 Subject: [PATCH 05/10] Small changes to get CI passing (as much as possible) --- docker/optional_deps/doca.sh | 4 +++- morpheus/_lib/doca/src/doca_source.cpp | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docker/optional_deps/doca.sh b/docker/optional_deps/doca.sh index 2350e46d4b..796cb4ba4e 100755 --- a/docker/optional_deps/doca.sh +++ b/docker/optional_deps/doca.sh @@ -35,7 +35,6 @@ DEB_DIR=${WORKING_DIR}/deb mkdir -p ${DEB_DIR} DOCA_REPO_LINK="https://linux.mellanox.com/public/repo/doca/${DOCA_VERSION}" -# ${LINUX_DISTRO}${LINUX_VER} DOCA_REPO="${DOCA_REPO_LINK}/ubuntu22.04" DOCA_REPO_ARCH="x86_64" DOCA_UPSTREAM_REPO="${DOCA_REPO}/${DOCA_REPO_ARCH}" @@ -43,17 +42,20 @@ DOCA_UPSTREAM_REPO="${DOCA_REPO}/${DOCA_REPO_ARCH}" # Upgrade the base packages (diff between image and Canonical upstream repo) apt update -y apt upgrade -y + # Cleanup apt rm -rf /var/lib/apt/lists/* apt autoremove -y # Configure DOCA Repository, and install packages apt update -y + # Install wget & Add the DOCA public repository apt install -y --no-install-recommends wget software-properties-common gpg-agent wget -qO - ${DOCA_UPSTREAM_REPO}/GPG-KEY-Mellanox.pub | apt-key add - add-apt-repository "deb [trusted=yes] ${DOCA_UPSTREAM_REPO} ./" apt update -y + # Install base-rt content apt install -y --no-install-recommends \ doca-gpu \ diff --git a/morpheus/_lib/doca/src/doca_source.cpp b/morpheus/_lib/doca/src/doca_source.cpp index 5805ff335c..9e5777ff86 100644 --- a/morpheus/_lib/doca/src/doca_source.cpp +++ b/morpheus/_lib/doca/src/doca_source.cpp @@ -127,7 +127,8 @@ DocaSourceStage::subscriber_fn_t DocaSourceStage::build() int thread_idx = mrc::runnable::Context::get_runtime_context().rank(); - if (thread_idx >= MAX_QUEUE) { + if (thread_idx >= MAX_QUEUE) + { MORPHEUS_FAIL("More CPU threads than allowed queues"); } From a9fc2a18a590ab357789740bdf38d840708fef8c Mon Sep 17 00:00:00 2001 From: Michael Demoret Date: Thu, 4 Apr 2024 20:58:42 -0400 Subject: [PATCH 06/10] Fixing the DOCA release build by cleaning up the includes --- .../dev_cuda-121_arch-x86_64.yaml | 3 +++ dependencies.yaml | 1 + morpheus/_lib/doca/CMakeLists.txt | 21 ++++++++++----- .../include/{ => morpheus/doca}/common.hpp | 0 .../{ => morpheus/doca}/doca_context.hpp | 6 ++--- .../include/{ => morpheus/doca}/doca_mem.hpp | 4 +-- .../{ => morpheus/doca}/doca_rx_pipe.hpp | 4 +-- .../{ => morpheus/doca}/doca_rx_queue.hpp | 4 +-- .../{ => morpheus/doca}/doca_semaphore.hpp | 2 +- .../{ => morpheus/doca}/doca_source.hpp | 3 +-- .../doca}/doca_source_kernels.hpp | 0 .../include/{ => morpheus/doca}/error.hpp | 3 ++- .../{ => morpheus/doca}/rte_context.hpp | 0 morpheus/_lib/doca/module.cpp | 2 +- morpheus/_lib/doca/src/doca_context.cpp | 11 ++++---- morpheus/_lib/doca/src/doca_rx_pipe.cpp | 26 +++++++++---------- morpheus/_lib/doca/src/doca_rx_queue.cpp | 7 +++-- morpheus/_lib/doca/src/doca_semaphore.cpp | 2 +- morpheus/_lib/doca/src/doca_source.cpp | 13 +++++----- morpheus/_lib/doca/src/doca_source_kernels.cu | 4 +-- morpheus/_lib/doca/src/rte_context.cpp | 4 +-- 21 files changed, 64 insertions(+), 56 deletions(-) rename morpheus/_lib/doca/include/{ => morpheus/doca}/common.hpp (100%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/doca_context.hpp (92%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/doca_mem.hpp (96%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/doca_rx_pipe.hpp (95%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/doca_rx_queue.hpp (94%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/doca_semaphore.hpp (97%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/doca_source.hpp (98%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/doca_source_kernels.hpp (100%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/error.hpp (98%) rename morpheus/_lib/doca/include/{ => morpheus/doca}/rte_context.hpp (100%) diff --git a/conda/environments/dev_cuda-121_arch-x86_64.yaml b/conda/environments/dev_cuda-121_arch-x86_64.yaml index bf045f359a..68da8416fb 100644 --- a/conda/environments/dev_cuda-121_arch-x86_64.yaml +++ b/conda/environments/dev_cuda-121_arch-x86_64.yaml @@ -10,6 +10,7 @@ channels: - pytorch dependencies: - appdirs +- automake - benchmark=1.8.3 - boost-cpp=1.84 - breathe=4.35.0 @@ -43,6 +44,7 @@ dependencies: - ipython - isort - librdkafka>=1.9.2,<1.10.0a0 +- libtool - mlflow=2.9.2 - mrc=24.03 - myst-parser=0.18.1 @@ -72,6 +74,7 @@ dependencies: - pytorch-cuda - pytorch=*=*cuda* - rapidjson=1.1.0 +- rdma-core>=48 - requests - requests-cache=1.1 - requests-toolbelt diff --git a/dependencies.yaml b/dependencies.yaml index d19cb844bd..829b698315 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -52,6 +52,7 @@ files: - cudatoolkit - data_retrieval - development + - doca - docs - python - runtime diff --git a/morpheus/_lib/doca/CMakeLists.txt b/morpheus/_lib/doca/CMakeLists.txt index 2578ca02a3..9cdf7a7e44 100644 --- a/morpheus/_lib/doca/CMakeLists.txt +++ b/morpheus/_lib/doca/CMakeLists.txt @@ -50,7 +50,7 @@ target_link_libraries(morpheus_doca file(GLOB_RECURSE morpheus_doca_public_headers LIST_DIRECTORIES FALSE CONFIGURE_DEPENDS - "${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp" + "${CMAKE_CURRENT_SOURCE_DIR}/include/morpheus/doca/*" ) # Add headers to target sources file_set so they can be installed @@ -59,6 +59,7 @@ target_sources(morpheus_doca PUBLIC FILE_SET public_headers TYPE HEADERS + BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include" FILES ${morpheus_doca_public_headers} ) @@ -76,17 +77,23 @@ set_target_properties(morpheus_doca CUDA_SEPARABLE_COMPILATION ON ) +if (MORPHEUS_PYTHON_INPLACE_BUILD) + morpheus_utils_inplace_build_copy(morpheus_doca ${CMAKE_CURRENT_SOURCE_DIR}) +endif() + +# ################################################################################################## +# - install targets -------------------------------------------------------------------------------- + +# Get the library directory in a cross-platform way +rapids_cmake_install_lib_dir(lib_dir) + install( TARGETS morpheus_doca EXPORT ${PROJECT_NAME}-core-exports + LIBRARY + DESTINATION ${lib_dir} FILE_SET public_headers - COMPONENT - Wheel ) - -if (MORPHEUS_PYTHON_INPLACE_BUILD) - morpheus_utils_inplace_build_copy(morpheus_doca ${CMAKE_CURRENT_SOURCE_DIR}) -endif() diff --git a/morpheus/_lib/doca/include/common.hpp b/morpheus/_lib/doca/include/morpheus/doca/common.hpp similarity index 100% rename from morpheus/_lib/doca/include/common.hpp rename to morpheus/_lib/doca/include/morpheus/doca/common.hpp diff --git a/morpheus/_lib/doca/include/doca_context.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_context.hpp similarity index 92% rename from morpheus/_lib/doca/include/doca_context.hpp rename to morpheus/_lib/doca/include/morpheus/doca/doca_context.hpp index 5fbb0e3b09..018c7aca94 100644 --- a/morpheus/_lib/doca/include/doca_context.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/doca_context.hpp @@ -17,9 +17,9 @@ #pragma once -#include "common.hpp" -#include "error.hpp" -#include "rte_context.hpp" +#include "morpheus/doca/common.hpp" +#include "morpheus/doca/error.hpp" +#include "morpheus/doca/rte_context.hpp" #include #include diff --git a/morpheus/_lib/doca/include/doca_mem.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp similarity index 96% rename from morpheus/_lib/doca/include/doca_mem.hpp rename to morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp index 255e55e562..3e3707f654 100644 --- a/morpheus/_lib/doca/include/doca_mem.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp @@ -17,8 +17,8 @@ #pragma once -#include "doca_context.hpp" -#include "error.hpp" +#include "morpheus/doca/doca_context.hpp" +#include "morpheus/doca/error.hpp" #include diff --git a/morpheus/_lib/doca/include/doca_rx_pipe.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_rx_pipe.hpp similarity index 95% rename from morpheus/_lib/doca/include/doca_rx_pipe.hpp rename to morpheus/_lib/doca/include/morpheus/doca/doca_rx_pipe.hpp index 39d44713f7..4c7940ac22 100644 --- a/morpheus/_lib/doca/include/doca_rx_pipe.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/doca_rx_pipe.hpp @@ -17,8 +17,8 @@ #pragma once -#include "doca_context.hpp" -#include "doca_rx_queue.hpp" +#include "morpheus/doca/doca_context.hpp" +#include "morpheus/doca/doca_rx_queue.hpp" namespace morpheus::doca { diff --git a/morpheus/_lib/doca/include/doca_rx_queue.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_rx_queue.hpp similarity index 94% rename from morpheus/_lib/doca/include/doca_rx_queue.hpp rename to morpheus/_lib/doca/include/morpheus/doca/doca_rx_queue.hpp index 5d5f162151..537061954c 100644 --- a/morpheus/_lib/doca/include/doca_rx_queue.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/doca_rx_queue.hpp @@ -17,8 +17,8 @@ #pragma once -#include "doca_context.hpp" -#include "doca_mem.hpp" +#include "morpheus/doca/doca_context.hpp" +#include "morpheus/doca/doca_mem.hpp" #include #include diff --git a/morpheus/_lib/doca/include/doca_semaphore.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_semaphore.hpp similarity index 97% rename from morpheus/_lib/doca/include/doca_semaphore.hpp rename to morpheus/_lib/doca/include/morpheus/doca/doca_semaphore.hpp index 9a1fbc3f6c..635455b442 100644 --- a/morpheus/_lib/doca/include/doca_semaphore.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/doca_semaphore.hpp @@ -17,7 +17,7 @@ #pragma once -#include "doca_context.hpp" +#include "morpheus/doca/doca_context.hpp" namespace morpheus::doca { diff --git a/morpheus/_lib/doca/include/doca_source.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_source.hpp similarity index 98% rename from morpheus/_lib/doca/include/doca_source.hpp rename to morpheus/_lib/doca/include/morpheus/doca/doca_source.hpp index 3b9d8ea9d1..90882d10b5 100644 --- a/morpheus/_lib/doca/include/doca_source.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/doca_source.hpp @@ -17,8 +17,7 @@ #pragma once -#include "common.hpp" - +#include "morpheus/doca/common.hpp" #include "morpheus/messages/meta.hpp" #include diff --git a/morpheus/_lib/doca/include/doca_source_kernels.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_source_kernels.hpp similarity index 100% rename from morpheus/_lib/doca/include/doca_source_kernels.hpp rename to morpheus/_lib/doca/include/morpheus/doca/doca_source_kernels.hpp diff --git a/morpheus/_lib/doca/include/error.hpp b/morpheus/_lib/doca/include/morpheus/doca/error.hpp similarity index 98% rename from morpheus/_lib/doca/include/error.hpp rename to morpheus/_lib/doca/include/morpheus/doca/error.hpp index 90cfc97671..db396f1fbc 100644 --- a/morpheus/_lib/doca/include/error.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/error.hpp @@ -17,8 +17,9 @@ #pragma once +#include "morpheus/utilities/string_util.hpp" + #include -#include #include diff --git a/morpheus/_lib/doca/include/rte_context.hpp b/morpheus/_lib/doca/include/morpheus/doca/rte_context.hpp similarity index 100% rename from morpheus/_lib/doca/include/rte_context.hpp rename to morpheus/_lib/doca/include/morpheus/doca/rte_context.hpp diff --git a/morpheus/_lib/doca/module.cpp b/morpheus/_lib/doca/module.cpp index fdf06cdcff..4aab98aaa1 100644 --- a/morpheus/_lib/doca/module.cpp +++ b/morpheus/_lib/doca/module.cpp @@ -15,7 +15,7 @@ * limitations under the License. */ -#include "doca_source.hpp" +#include "morpheus/doca/doca_source.hpp" #include // IWYU pragma: keep #include diff --git a/morpheus/_lib/doca/src/doca_context.cpp b/morpheus/_lib/doca/src/doca_context.cpp index 87e7a350d4..0ec12c3c07 100644 --- a/morpheus/_lib/doca/src/doca_context.cpp +++ b/morpheus/_lib/doca/src/doca_context.cpp @@ -15,11 +15,10 @@ * limitations under the License. */ -#include "doca_context.hpp" - -#include "common.hpp" -#include "error.hpp" +#include "morpheus/doca/doca_context.hpp" +#include "morpheus/doca/common.hpp" +#include "morpheus/doca/error.hpp" #include "morpheus/utilities/error.hpp" #include @@ -97,11 +96,11 @@ doca_flow_port* init_doca_flow(uint16_t port_id, uint8_t rxq_num) rte_eth_dev_info dev_info = {nullptr}; rte_eth_conf eth_conf = { .rxmode = - { + { .mtu = 2048, /* Not really used, just to initialize DPDK */ }, .txmode = - { + { .offloads = RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | RTE_ETH_TX_OFFLOAD_UDP_CKSUM | RTE_ETH_TX_OFFLOAD_TCP_CKSUM, }, }; diff --git a/morpheus/_lib/doca/src/doca_rx_pipe.cpp b/morpheus/_lib/doca/src/doca_rx_pipe.cpp index 8879da66ad..32f00253a2 100644 --- a/morpheus/_lib/doca/src/doca_rx_pipe.cpp +++ b/morpheus/_lib/doca/src/doca_rx_pipe.cpp @@ -15,7 +15,7 @@ * limitations under the License. */ -#include "doca_rx_pipe.hpp" +#include "morpheus/doca/doca_rx_pipe.hpp" #include #include @@ -37,7 +37,7 @@ DocaRxPipe::DocaRxPipe(std::shared_ptr context, doca_flow_match match_mask{0}; doca_flow_match match{}; - match.outer.l3_type = DOCA_FLOW_L3_TYPE_IP4; + match.outer.l3_type = DOCA_FLOW_L3_TYPE_IP4; if (m_traffic_type == DOCA_TRAFFIC_TYPE_TCP) { match.outer.ip4.next_proto = IPPROTO_TCP; @@ -50,14 +50,14 @@ DocaRxPipe::DocaRxPipe(std::shared_ptr context, } doca_flow_fwd fwd{}; - fwd.type = DOCA_FLOW_FWD_RSS; + fwd.type = DOCA_FLOW_FWD_RSS; if (m_traffic_type == DOCA_TRAFFIC_TYPE_TCP) fwd.rss_outer_flags = DOCA_FLOW_RSS_IPV4 | DOCA_FLOW_RSS_TCP; else fwd.rss_outer_flags = DOCA_FLOW_RSS_IPV4 | DOCA_FLOW_RSS_UDP; - fwd.rss_queues = rss_queues.begin(); - fwd.num_of_queues = m_rxq.size(); + fwd.rss_queues = rss_queues.begin(); + fwd.num_of_queues = m_rxq.size(); doca_flow_fwd miss_fwd{}; miss_fwd.type = DOCA_FLOW_FWD_DROP; @@ -68,13 +68,13 @@ DocaRxPipe::DocaRxPipe(std::shared_ptr context, doca_flow_pipe_cfg pipe_cfg{}; pipe_cfg.attr.name = "GPU_RXQ_PIPE"; pipe_cfg.attr.enable_strict_matching = true; - pipe_cfg.attr.type = DOCA_FLOW_PIPE_BASIC; - pipe_cfg.attr.nb_actions = 0; - pipe_cfg.attr.is_root = false; - pipe_cfg.match = &match; - pipe_cfg.match_mask = &match_mask; - pipe_cfg.monitor = &monitor; - pipe_cfg.port = context->flow_port(); + pipe_cfg.attr.type = DOCA_FLOW_PIPE_BASIC; + pipe_cfg.attr.nb_actions = 0; + pipe_cfg.attr.is_root = false; + pipe_cfg.match = &match; + pipe_cfg.match_mask = &match_mask; + pipe_cfg.monitor = &monitor; + pipe_cfg.port = context->flow_port(); DOCA_TRY(doca_flow_pipe_create(&pipe_cfg, &fwd, &miss_fwd, &m_pipe)); @@ -90,7 +90,7 @@ DocaRxPipe::DocaRxPipe(std::shared_ptr context, doca_flow_monitor root_monitor = {}; root_monitor.counter_type = DOCA_FLOW_RESOURCE_TYPE_NON_SHARED; - doca_flow_pipe_cfg root_pipe_cfg = {}; + doca_flow_pipe_cfg root_pipe_cfg = {}; root_pipe_cfg.attr.name = "ROOT_PIPE"; root_pipe_cfg.attr.enable_strict_matching = true; root_pipe_cfg.attr.is_root = true; diff --git a/morpheus/_lib/doca/src/doca_rx_queue.cpp b/morpheus/_lib/doca/src/doca_rx_queue.cpp index 0e9b9c1dfd..5b802e871d 100644 --- a/morpheus/_lib/doca/src/doca_rx_queue.cpp +++ b/morpheus/_lib/doca/src/doca_rx_queue.cpp @@ -15,11 +15,10 @@ * limitations under the License. */ -#include "doca_rx_queue.hpp" - -#include "common.hpp" -#include "error.hpp" +#include "morpheus/doca/doca_rx_queue.hpp" +#include "morpheus/doca/common.hpp" +#include "morpheus/doca/error.hpp" #include "morpheus/utilities/error.hpp" #include diff --git a/morpheus/_lib/doca/src/doca_semaphore.cpp b/morpheus/_lib/doca/src/doca_semaphore.cpp index 71298d2e5b..d0da096d7c 100644 --- a/morpheus/_lib/doca/src/doca_semaphore.cpp +++ b/morpheus/_lib/doca/src/doca_semaphore.cpp @@ -15,7 +15,7 @@ * limitations under the License. */ -#include "doca_semaphore.hpp" +#include "morpheus/doca/doca_semaphore.hpp" namespace morpheus::doca { diff --git a/morpheus/_lib/doca/src/doca_source.cpp b/morpheus/_lib/doca/src/doca_source.cpp index 9e5777ff86..b855f82dcc 100644 --- a/morpheus/_lib/doca/src/doca_source.cpp +++ b/morpheus/_lib/doca/src/doca_source.cpp @@ -15,14 +15,13 @@ * limitations under the License. */ -#include "doca_source.hpp" - -#include "doca_context.hpp" -#include "doca_rx_pipe.hpp" -#include "doca_rx_queue.hpp" -#include "doca_semaphore.hpp" -#include "doca_source_kernels.hpp" +#include "morpheus/doca/doca_source.hpp" +#include "morpheus/doca/doca_context.hpp" +#include "morpheus/doca/doca_rx_pipe.hpp" +#include "morpheus/doca/doca_rx_queue.hpp" +#include "morpheus/doca/doca_semaphore.hpp" +#include "morpheus/doca/doca_source_kernels.hpp" #include "morpheus/utilities/error.hpp" #include diff --git a/morpheus/_lib/doca/src/doca_source_kernels.cu b/morpheus/_lib/doca/src/doca_source_kernels.cu index d72e6ec1a8..773539e14b 100644 --- a/morpheus/_lib/doca/src/doca_source_kernels.cu +++ b/morpheus/_lib/doca/src/doca_source_kernels.cu @@ -15,7 +15,7 @@ * limitations under the License. */ -#include "common.hpp" +#include "morpheus/doca/common.hpp" #include "morpheus/utilities/error.hpp" @@ -391,7 +391,7 @@ __global__ void _packet_receive_kernel( auto epoch = now_ms.time_since_epoch(); pkt_info->timestamp_out[packet_idx] = epoch.count(); } - + // if (threadIdx.x == 0) DEVICE_GET_TIME(reduce_start); auto payload_size_total = BlockReduce(temp_storage).Sum(_payload_sizes); __syncthreads(); diff --git a/morpheus/_lib/doca/src/rte_context.cpp b/morpheus/_lib/doca/src/rte_context.cpp index 8576cb0444..f3cd3fb0dc 100644 --- a/morpheus/_lib/doca/src/rte_context.cpp +++ b/morpheus/_lib/doca/src/rte_context.cpp @@ -15,9 +15,9 @@ * limitations under the License. */ -#include "rte_context.hpp" +#include "morpheus/doca/rte_context.hpp" -#include "error.hpp" +#include "morpheus/doca/error.hpp" #include #include From 76b56720d38a7a992a31ddd6640737fd5e7bed3f Mon Sep 17 00:00:00 2001 From: Michael Demoret Date: Thu, 4 Apr 2024 22:22:38 -0400 Subject: [PATCH 07/10] Fix broken bsd configure --- cmake/package_config/bsd/Configure_bsd.cmake | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cmake/package_config/bsd/Configure_bsd.cmake b/cmake/package_config/bsd/Configure_bsd.cmake index e7af920dd9..1a68e006b7 100644 --- a/cmake/package_config/bsd/Configure_bsd.cmake +++ b/cmake/package_config/bsd/Configure_bsd.cmake @@ -32,7 +32,7 @@ function(morpheus_configure_libbsd) if (bsd_ADDED) message(STATUS "libbsd was not installed and will be built from source") - find_package(bsd REQUIRED) + find_package(md REQUIRED) set(bsd_INSTALL_DIR ${bsd_BINARY_DIR}/install) file(MAKE_DIRECTORY ${bsd_INSTALL_DIR}/include) @@ -46,8 +46,6 @@ function(morpheus_configure_libbsd) cmake_path(GET MD_LIBRARY PARENT_PATH MD_LINK_DIRECTORY) - message(STATUS "MD_LIBRARY: ${MD_LINK_DIRECTORY}") - # Get the Compiler settings to forward onto autoconf set(COMPILER_SETTINGS "CXX=${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER}" @@ -87,7 +85,7 @@ function(morpheus_configure_libbsd) # Install only the headers install( - DIRECTORY ${md_INSTALL_DIR}/include + DIRECTORY ${bsd_INSTALL_DIR}/include TYPE INCLUDE ) @@ -108,8 +106,6 @@ function(morpheus_configure_libbsd) add_dependencies(bsd::bsd bsd) - message(STATUS "bsd_INSTALL_DIR: ${bsd_INSTALL_DIR}") - endif() LIST(POP_BACK CMAKE_MESSAGE_CONTEXT) From 56a6aa325796266b5dbb000429fe3e423e7ecc5f Mon Sep 17 00:00:00 2001 From: eagostini Date: Fri, 5 Apr 2024 08:23:01 +0000 Subject: [PATCH 08/10] Fix release container args for DOCA --- docker/run_container_release.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docker/run_container_release.sh b/docker/run_container_release.sh index 1086d5eb39..62740a5dca 100755 --- a/docker/run_container_release.sh +++ b/docker/run_container_release.sh @@ -42,4 +42,11 @@ fi echo -e "${g}Launching ${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}...${x}" -docker run --rm -ti ${DOCKER_ARGS} ${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} "${@:-bash}" +# DPDK requires hugepage and privileged container +MORPHEUS_SUPPORT_DOCA=${MORPHEUS_SUPPORT_DOCA:-OFF} +DOCA_EXTRA_ARGS="" +if [[ ${MORPHEUS_SUPPORT_DOCA} == @(TRUE|ON) ]]; then + DOCA_EXTRA_ARGS="-v /dev/hugepages:/dev/hugepages --privileged" +fi + +docker run ${DOCA_EXTRA_ARGS} --rm -ti ${DOCKER_ARGS} ${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} "${@:-bash}" From 7d4711781bdbe5497c3c39ea566c75a8ac740303 Mon Sep 17 00:00:00 2001 From: Michael Demoret Date: Fri, 5 Apr 2024 09:47:38 -0400 Subject: [PATCH 09/10] Cleaning up the run container command. --- docker/optional_deps/doca.sh | 6 +++--- docker/run_container_release.sh | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/docker/optional_deps/doca.sh b/docker/optional_deps/doca.sh index 796cb4ba4e..97d1d108f3 100755 --- a/docker/optional_deps/doca.sh +++ b/docker/optional_deps/doca.sh @@ -17,9 +17,9 @@ set -e MORPHEUS_SUPPORT_DOCA=${MORPHEUS_SUPPORT_DOCA:-OFF} -LINUX_DISTRO=${LINUX_DISTRO} -LINUX_VER=${LINUX_VER} -DOCA_VERSION="2.6.0" +LINUX_DISTRO=${LINUX_DISTRO:-ubuntu} +LINUX_VER=${LINUX_VER:-22.04} +DOCA_VERSION=${DOCA_VERSION:-2.6.0} # Exit early if nothing to do if [[ ${MORPHEUS_SUPPORT_DOCA} != @(TRUE|ON) ]]; then diff --git a/docker/run_container_release.sh b/docker/run_container_release.sh index 62740a5dca..7a60d75faf 100755 --- a/docker/run_container_release.sh +++ b/docker/run_container_release.sh @@ -27,8 +27,12 @@ x="\033[0m" # Change to the script file to ensure we are in the correct repo (in case were in a submodule) pushd ${SCRIPT_DIR} &> /dev/null +MORPHEUS_SUPPORT_DOCA=${MORPHEUS_SUPPORT_DOCA:-OFF} + DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-"nvcr.io/nvidia/morpheus/morpheus"} DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG:-"$(git describe --tags --abbrev=0)-runtime"} + +# This variable is used for passing extra arguments to the docker run command. Do not use DOCKER_ARGS for this purpose. DOCKER_EXTRA_ARGS=${DOCKER_EXTRA_ARGS:-""} popd &> /dev/null @@ -40,13 +44,18 @@ if [[ -n "${SSH_AUTH_SOCK}" ]]; then DOCKER_ARGS="${DOCKER_ARGS} -v $(readlink -f $SSH_AUTH_SOCK):/ssh-agent:ro -e SSH_AUTH_SOCK=/ssh-agent" fi -echo -e "${g}Launching ${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}...${x}" - # DPDK requires hugepage and privileged container -MORPHEUS_SUPPORT_DOCA=${MORPHEUS_SUPPORT_DOCA:-OFF} DOCA_EXTRA_ARGS="" if [[ ${MORPHEUS_SUPPORT_DOCA} == @(TRUE|ON) ]]; then - DOCA_EXTRA_ARGS="-v /dev/hugepages:/dev/hugepages --privileged" + echo -e "${b}Enabling DOCA Support. Mounting /dev/hugepages and running in privileged mode${x}" + + DOCKER_ARGS="${DOCKER_ARGS} -v /dev/hugepages:/dev/hugepages --privileged" fi + +echo -e "${g}Launching ${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}...${x}" + +# Enable command logging to show what is being executed +set -x docker run ${DOCA_EXTRA_ARGS} --rm -ti ${DOCKER_ARGS} ${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} "${@:-bash}" +set +x From cce35c6a3e7ae332961454b789cb69a452e24a68 Mon Sep 17 00:00:00 2001 From: Michael Demoret Date: Fri, 5 Apr 2024 11:27:34 -0400 Subject: [PATCH 10/10] Updating copyright --- morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp | 2 +- morpheus/_lib/doca/include/morpheus/doca/rte_context.hpp | 2 +- morpheus/_lib/doca/src/rte_context.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp b/morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp index 3e3707f654..a290326529 100644 --- a/morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/doca_mem.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/morpheus/_lib/doca/include/morpheus/doca/rte_context.hpp b/morpheus/_lib/doca/include/morpheus/doca/rte_context.hpp index c8c447e14d..28ab636568 100644 --- a/morpheus/_lib/doca/include/morpheus/doca/rte_context.hpp +++ b/morpheus/_lib/doca/include/morpheus/doca/rte_context.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2022-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/morpheus/_lib/doca/src/rte_context.cpp b/morpheus/_lib/doca/src/rte_context.cpp index f3cd3fb0dc..705da11235 100644 --- a/morpheus/_lib/doca/src/rte_context.cpp +++ b/morpheus/_lib/doca/src/rte_context.cpp @@ -1,5 +1,5 @@ /** - * SPDX-FileCopyrightText: Copyright (c) 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-FileCopyrightText: Copyright (c) 2021-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License");