Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
Lmdeploy
Commits
b97b62b7
Commit
b97b62b7
authored
Nov 14, 2023
by
xiabo
Browse files
添加下载的代码
parent
b30f3cdb
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1105 additions
and
0 deletions
+1105
-0
3rdparty/backend-r22.12/CMakeLists.txt
3rdparty/backend-r22.12/CMakeLists.txt
+262
-0
3rdparty/common-r22.12/CMakeLists.txt
3rdparty/common-r22.12/CMakeLists.txt
+431
-0
3rdparty/core-r22.12/CMakeLists.txt
3rdparty/core-r22.12/CMakeLists.txt
+373
-0
3rdparty/googletest-1.13.0/CMakeLists.txt
3rdparty/googletest-1.13.0/CMakeLists.txt
+39
-0
No files found.
3rdparty/backend-r22.12/CMakeLists.txt
0 → 100644
View file @
b97b62b7
# Copyright (c) 2020-2021, NVIDIA CORPORATION. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of NVIDIA CORPORATION nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#cmake_minimum_required(VERSION 3.17)
cmake_minimum_required
(
VERSION 3.16
)
project
(
tritonbackend LANGUAGES C CXX
)
#
# Options
#
option
(
TRITON_ENABLE_GPU
"Enable GPU support in backend utilities"
ON
)
option
(
TRITON_ENABLE_MALI_GPU
"Enable Arm MALI GPU support in backend utilities"
OFF
)
option
(
TRITON_ENABLE_STATS
"Include statistics collections in backend utilities"
ON
)
set
(
TRITON_COMMON_REPO_TAG
"main"
CACHE STRING
"Tag for triton-inference-server/common repo"
)
set
(
TRITON_CORE_REPO_TAG
"main"
CACHE STRING
"Tag for triton-inference-server/core repo"
)
if
(
NOT CMAKE_BUILD_TYPE
)
set
(
CMAKE_BUILD_TYPE Release
)
endif
()
#
# Dependencies
#
include
(
FetchContent
)
FetchContent_Declare
(
repo-common
GIT_REPOSITORY https://github.com/triton-inference-server/common.git
GIT_TAG
${
TRITON_COMMON_REPO_TAG
}
GIT_SHALLOW ON
)
FetchContent_Declare
(
repo-core
GIT_REPOSITORY https://github.com/triton-inference-server/core.git
GIT_TAG
${
TRITON_CORE_REPO_TAG
}
GIT_SHALLOW ON
)
FetchContent_MakeAvailable
(
repo-common repo-core
)
#
# CUDA
#
if
(
${
TRITON_ENABLE_GPU
}
)
#find_package(CUDAToolkit REQUIRED)
find_package
(
CUDA REQUIRED
)
message
(
STATUS
"Using CUDA
${
CUDA_VERSION
}
"
)
set
(
CUDA_NVCC_FLAGS -std=c++11
)
if
(
CUDA_VERSION VERSION_GREATER
"10.1"
OR CUDA_VERSION VERSION_EQUAL
"10.1"
)
add_definitions
(
-DTRITON_ENABLE_CUDA_GRAPH=1
)
else
()
message
(
WARNING
"CUDA
${
CUDA_VERSION
}
does not support CUDA graphs."
)
endif
()
endif
()
# TRITON_ENABLE_GPU
#
# Backend library containing useful source and utilities
#
set
(
SRC_FILES
"src/backend_common.cc"
"src/backend_input_collector.cc"
"src/backend_memory.cc"
"src/backend_model_instance.cc"
"src/backend_model.cc"
"src/backend_output_responder.cc"
)
if
(
${
TRITON_ENABLE_GPU
}
)
set
(
SRC_FILES
${
SRC_FILES
}
"src/kernel.h"
)
endif
()
# TRITON_ENABLE_GPU
add_library
(
triton-backend-utils
${
SRC_FILES
}
)
if
(
${
TRITON_ENABLE_GPU
}
)
set
(
HOST_COMPILER_FLAGS
""
)
if
(
WIN32
)
set
(
HOST_COMPILER_FLAGS
"/MD"
)
else
()
set
(
HOST_COMPILER_FLAGS
"-fPIC"
)
endif
()
set
(
CUDA_LIBRARIES PUBLIC
${
CUDA_LIBRARIES
}
)
cuda_add_library
(
kernel-library-new
src/kernel.cu src/kernel.h
OPTIONS -arch compute_53
OPTIONS -code compute_53,sm_53,sm_60,sm_61,sm_62,sm_70,sm_72,sm_75
OPTIONS -Xcompiler
${
HOST_COMPILER_FLAGS
}
)
endif
()
# TRITON_ENABLE_GPU
add_library
(
TritonBackend::triton-backend-utils ALIAS triton-backend-utils
)
target_include_directories
(
triton-backend-utils
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"MSVC"
)
message
(
"Using MSVC as compiler, default target on Windows 10. "
"If the target system is not Windows 10, please update _WIN32_WINNT "
"to corresponding value."
)
endif
()
target_compile_features
(
triton-backend-utils PRIVATE cxx_std_11
)
target_compile_options
(
triton-backend-utils
PRIVATE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
-Wall -Wextra -Wno-unused-parameter -Werror>
$<$<CXX_COMPILER_ID:MSVC>:/Wall /D_WIN32_WINNT=0x0A00 /EHsc>
)
# TRITON_ENABLE_GPU exposed in header so set PUBLIC
if
(
${
TRITON_ENABLE_GPU
}
)
target_compile_definitions
(
triton-backend-utils
PUBLIC TRITON_ENABLE_GPU=1
)
endif
()
# TRITON_ENABLE_GPU
# TRITON_ENABLE_MALI_GPU exposed in header so set PUBLIC
if
(
${
TRITON_ENABLE_MALI_GPU
}
)
target_compile_definitions
(
triton-backend-utils
PUBLIC TRITON_ENABLE_MALI_GPU=1
)
endif
()
# TRITON_ENABLE_MALI_GPU
# TRITON_ENABLE_STATS exposed in header so set PUBLIC
if
(
${
TRITON_ENABLE_STATS
}
)
target_compile_definitions
(
triton-backend-utils
PUBLIC TRITON_ENABLE_STATS=1
)
endif
()
# TRITON_ENABLE_STATS
set_target_properties
(
triton-backend-utils PROPERTIES
WINDOWS_EXPORT_ALL_SYMBOLS TRUE
POSITION_INDEPENDENT_CODE ON
OUTPUT_NAME tritonbackendutils
)
target_link_libraries
(
triton-backend-utils
PUBLIC
triton-core-backendapi
# from repo-core
triton-core-serverapi
# from repo-core
triton-common-async-work-queue
# from repo-common
triton-common-json
# from repo-common
)
if
(
${
TRITON_ENABLE_GPU
}
)
target_link_libraries
(
triton-backend-utils
PUBLIC
#CUDA::cudart
cudart
PRIVATE
kernel-library-new
)
endif
()
# TRITON_ENABLE_GPU
#
# Install
#
include
(
GNUInstallDirs
)
set
(
INSTALL_CONFIGDIR
${
CMAKE_INSTALL_LIBDIR
}
/cmake/TritonBackend
)
install
(
TARGETS
triton-backend-utils
EXPORT
triton-backend-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
if
(
${
TRITON_ENABLE_GPU
}
)
install
(
TARGETS
kernel-library-new
EXPORT
triton-backend-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
endif
()
# TRITON_ENABLE_GPU
install
(
DIRECTORY include/
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
)
install
(
EXPORT
triton-backend-targets
FILE
TritonBackendTargets.cmake
NAMESPACE
TritonBackend::
DESTINATION
${
INSTALL_CONFIGDIR
}
)
include
(
CMakePackageConfigHelpers
)
configure_package_config_file
(
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/TritonBackendConfig.cmake.in
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonBackendConfig.cmake
INSTALL_DESTINATION
${
INSTALL_CONFIGDIR
}
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonBackendConfig.cmake
DESTINATION
${
INSTALL_CONFIGDIR
}
)
#
# Export from build tree
#
export
(
EXPORT triton-backend-targets
FILE
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonBackendTargets.cmake
NAMESPACE TritonBackend::
)
export
(
PACKAGE TritonBackend
)
3rdparty/common-r22.12/CMakeLists.txt
0 → 100644
View file @
b97b62b7
# Copyright 2020-2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of NVIDIA CORPORATION nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#cmake_minimum_required(VERSION 3.17)
cmake_minimum_required
(
VERSION 3.16
)
project
(
tritoncommon LANGUAGES C CXX
)
#
# Options
#
# Some components are expensive to build and have extensive
# dependencies, so those parts of the build must be enabled
# explicitly.
option
(
TRITON_COMMON_ENABLE_PROTOBUF
"Build protobuf artifacts"
OFF
)
option
(
TRITON_COMMON_ENABLE_PROTOBUF_PYTHON
"Build protobuf artifacts for python"
ON
)
option
(
TRITON_COMMON_ENABLE_GRPC
"Build grpc artifacts"
OFF
)
option
(
TRITON_COMMON_ENABLE_JSON
"Build json-related libs"
ON
)
#option(TRITON_COMMON_ENABLE_JSON "Build json-related libs" OFF)
if
(
TRITON_COMMON_ENABLE_JSON
)
find_package
(
RapidJSON CONFIG REQUIRED
)
message
(
STATUS
"RapidJSON found. Headers:
${
RAPIDJSON_INCLUDE_DIRS
}
"
)
endif
()
set
(
THREADS_PREFER_PTHREAD_FLAG TRUE
)
find_package
(
Threads REQUIRED
)
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"MSVC"
)
message
(
"Using MSVC as compiler, default target on Windows 10. "
"If the target system is not Windows 10, please update _WIN32_WINNT "
"to corresponding value."
)
endif
()
add_library
(
common-compile-settings INTERFACE
)
target_compile_features
(
common-compile-settings INTERFACE cxx_std_11
)
target_compile_options
(
common-compile-settings INTERFACE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:
-Wall -Wextra -Wno-unused-parameter -Wno-type-limits -Werror>
$<$<CXX_COMPILER_ID:MSVC>:/W0 /D_WIN32_WINNT=0x0A00 /EHsc>
)
#
# Error
#
add_library
(
triton-common-error
src/error.cc
)
add_library
(
TritonCommon::triton-common-error ALIAS triton-common-error
)
target_include_directories
(
triton-common-error
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
target_link_libraries
(
triton-common-error PRIVATE common-compile-settings
)
#
# Logging
#
add_library
(
triton-common-logging
src/logging.cc
)
add_library
(
TritonCommon::triton-common-logging ALIAS triton-common-logging
)
target_include_directories
(
triton-common-logging
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
if
(
${
TRITON_ENABLE_LOGGING
}
)
target_compile_definitions
(
triton-common-logging
PRIVATE TRITON_ENABLE_LOGGING=1
)
endif
()
# TRITON_ENABLE_LOGGING
target_link_libraries
(
triton-common-logging PRIVATE common-compile-settings
)
#
# SyncQueue
#
add_library
(
triton-common-sync-queue INTERFACE
)
add_library
(
TritonCommon::triton-common-sync-queue ALIAS triton-common-sync-queue
)
target_include_directories
(
triton-common-sync-queue
INTERFACE
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
)
#
# Async Work Queue
#
add_library
(
triton-common-async-work-queue
src/async_work_queue.cc
src/error.cc
src/thread_pool.cc
)
add_library
(
TritonCommon::triton-common-async-work-queue ALIAS triton-common-async-work-queue
)
target_include_directories
(
triton-common-async-work-queue
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
target_link_libraries
(
triton-common-async-work-queue
PUBLIC
Threads::Threads
PRIVATE
common-compile-settings
)
#
# Thread Pool
#
add_library
(
triton-common-thread-pool
src/thread_pool.cc
)
add_library
(
TritonCommon::triton-common-thread-pool ALIAS triton-common-thread-pool
)
target_include_directories
(
triton-common-thread-pool
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
target_link_libraries
(
triton-common-thread-pool
PUBLIC
Threads::Threads
PRIVATE
common-compile-settings
)
#
# JSON utilities
#
if
(
TRITON_COMMON_ENABLE_JSON
)
add_library
(
triton-common-json INTERFACE
)
add_library
(
TritonCommon::triton-common-json ALIAS triton-common-json
)
target_include_directories
(
triton-common-json
INTERFACE
$<INSTALL_INTERFACE:include>
$<INSTALL_INTERFACE:
${
RAPIDJSON_INCLUDE_DIRS
}
>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
$<BUILD_INTERFACE:
${
RAPIDJSON_INCLUDE_DIRS
}
>
)
endif
()
#
# Table Printer
#
add_library
(
triton-common-table-printer
src/table_printer.cc
)
add_library
(
TritonBackend::triton-common-table-printer ALIAS triton-common-table-printer
)
target_include_directories
(
triton-common-table-printer
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
)
target_link_libraries
(
triton-common-table-printer PRIVATE common-compile-settings
)
set_target_properties
(
triton-common-async-work-queue
triton-common-error
triton-common-logging
triton-common-table-printer
triton-common-thread-pool
PROPERTIES
WINDOWS_EXPORT_ALL_SYMBOLS TRUE
POSITION_INDEPENDENT_CODE ON
)
set_target_properties
(
triton-common-async-work-queue
PROPERTIES
OUTPUT_NAME tritonasyncworkqueue
)
set_target_properties
(
triton-common-thread-pool
PROPERTIES
OUTPUT_NAME tritonthreadpool
)
set_target_properties
(
triton-common-error
PROPERTIES
OUTPUT_NAME tritoncommonerror
)
set_target_properties
(
triton-common-logging
PROPERTIES
OUTPUT_NAME tritoncommonlogging
)
set_target_properties
(
triton-common-table-printer
PROPERTIES
OUTPUT_NAME tritontableprinter
)
#
# Protobuf and GRPC artifacts
#
if
(
${
TRITON_COMMON_ENABLE_PROTOBUF
}
OR
${
TRITON_COMMON_ENABLE_GRPC
}
)
add_subdirectory
(
protobuf
)
set
(
protobuf_MODULE_COMPATIBLE TRUE CACHE BOOL
"protobuf_MODULE_COMPATIBLE"
FORCE
)
find_package
(
Protobuf CONFIG REQUIRED
)
message
(
STATUS
"Using protobuf
${
Protobuf_VERSION
}
"
)
#
# Model Config (depends on protobuf & generated .pb.h file)
#
add_library
(
triton-common-model-config
src/model_config.cc
)
add_library
(
TritonCommon::triton-common-model-config ALIAS triton-common-model-config
)
target_include_directories
(
triton-common-model-config
PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/src
${
Protobuf_INCLUDE_DIRS
}
)
target_link_libraries
(
triton-common-model-config
PRIVATE
common-compile-settings
protobuf::libprotobuf
proto-library
)
set_target_properties
(
triton-common-model-config
PROPERTIES
WINDOWS_EXPORT_ALL_SYMBOLS TRUE
POSITION_INDEPENDENT_CODE ON
OUTPUT_NAME tritoncommonmodelconfig
)
endif
()
#
# Install
#
include
(
GNUInstallDirs
)
set
(
INSTALL_CONFIGDIR
${
CMAKE_INSTALL_LIBDIR
}
/cmake/TritonCommon
)
install
(
TARGETS
triton-common-async-work-queue
triton-common-error
triton-common-logging
triton-common-sync-queue
triton-common-table-printer
triton-common-thread-pool
common-compile-settings
EXPORT
triton-common-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
if
(
TRITON_COMMON_ENABLE_JSON
)
install
(
TARGETS
triton-common-json
EXPORT
triton-common-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
endif
()
if
(
${
TRITON_COMMON_ENABLE_GRPC
}
OR
${
TRITON_COMMON_ENABLE_PROTOBUF
}
)
install
(
TARGETS
proto-library
triton-common-model-config
# proto-py-library
EXPORT
triton-common-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
endif
()
if
(
${
TRITON_COMMON_ENABLE_GRPC
}
)
install
(
TARGETS
grpc-service-library
# grpc-service-py-library
EXPORT
triton-common-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
)
endif
()
install
(
DIRECTORY include/
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
)
install
(
EXPORT
triton-common-targets
FILE
TritonCommonTargets.cmake
NAMESPACE
TritonCommon::
DESTINATION
${
INSTALL_CONFIGDIR
}
)
include
(
CMakePackageConfigHelpers
)
configure_package_config_file
(
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/TritonCommonConfig.cmake.in
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonCommonConfig.cmake
INSTALL_DESTINATION
${
INSTALL_CONFIGDIR
}
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonCommonConfig.cmake
DESTINATION
${
INSTALL_CONFIGDIR
}
)
#
# Export from build tree
#
export
(
EXPORT
triton-common-targets
FILE
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonCommonTargets.cmake
NAMESPACE
TritonCommon::
)
export
(
PACKAGE TritonCommon
)
3rdparty/core-r22.12/CMakeLists.txt
0 → 100644
View file @
b97b62b7
# Copyright 2020-2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of NVIDIA CORPORATION nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#cmake_minimum_required(VERSION 3.18)
cmake_minimum_required
(
VERSION 3.16
)
project
(
tritoncore LANGUAGES C CXX
)
# Control building of shared library vs. only headers and stub. By
# default only the headers and library stub is built. Set
# TRITON_CORE_HEADERS_ONLY=OFF to also build libtritonserver.so.
option
(
TRITON_CORE_HEADERS_ONLY
"Build only headers and stub"
ON
)
#
# Triton Server API
#
add_library
(
triton-core-serverapi INTERFACE
)
add_library
(
TritonCore::triton-core-serverapi ALIAS triton-core-serverapi
)
target_include_directories
(
triton-core-serverapi
INTERFACE
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
)
#
# Triton Backend API
#
add_library
(
triton-core-backendapi INTERFACE
)
add_library
(
TritonCore::triton-core-backendapi ALIAS triton-core-backendapi
)
target_include_directories
(
triton-core-backendapi
INTERFACE
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
)
#
# Triton RepoAgent API
#
add_library
(
triton-core-repoagentapi INTERFACE
)
add_library
(
TritonCore::triton-core-repoagentapi ALIAS triton-core-repoagentapi
)
target_include_directories
(
triton-core-repoagentapi
INTERFACE
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/include>
)
#
# Stub library for libtritonserver.so that stubs Triton Server API and
# Triton Backend API
#
add_library
(
triton-core-serverstub SHARED
${
CMAKE_CURRENT_SOURCE_DIR
}
/src/tritonserver_stub.cc
)
add_library
(
TritonCore::triton-core-serverstub ALIAS triton-core-serverstub
)
target_compile_features
(
triton-core-serverstub PRIVATE cxx_std_11
)
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"MSVC"
)
message
(
"Using MSVC as compiler, default target on Windows 10. "
"If the target system is not Windows 10, please update _WIN32_WINNT "
"to corresponding value."
)
target_compile_options
(
triton-core-serverstub
PRIVATE
/Wall /D_WIN32_WINNT=0x0A00 /EHsc
)
else
()
target_compile_options
(
triton-core-serverstub
PRIVATE
-Wall -Wextra -Wno-unused-parameter -Werror
)
endif
()
set_target_properties
(
triton-core-serverstub
PROPERTIES
POSITION_INDEPENDENT_CODE ON
OUTPUT_NAME tritonserver
)
#
# Shared library implementing Triton Server API
#
if
(
NOT TRITON_CORE_HEADERS_ONLY
)
include
(
CMakeDependentOption
)
set
(
TRITON_VERSION
"0.0.0"
CACHE STRING
"The version of the Triton shared library"
)
option
(
TRITON_ENABLE_LOGGING
"Include logging support in server"
ON
)
option
(
TRITON_ENABLE_STATS
"Include statistics collections in server"
ON
)
option
(
TRITON_ENABLE_TRACING
"Include tracing support in server"
OFF
)
option
(
TRITON_ENABLE_NVTX
"Include NVTX support in server"
OFF
)
option
(
TRITON_ENABLE_GPU
"Enable GPU support in server"
ON
)
option
(
TRITON_ENABLE_MALI_GPU
"Enable Arm Mali GPU support in server"
OFF
)
set
(
TRITON_MIN_COMPUTE_CAPABILITY
"6.0"
CACHE STRING
"The minimum CUDA compute capability supported by Triton"
)
set
(
TRITON_EXTRA_LIB_PATHS
""
CACHE PATH
"Extra library paths for Triton Server build"
)
# Ensemble
option
(
TRITON_ENABLE_ENSEMBLE
"Include ensemble support in server"
OFF
)
# Metrics
option
(
TRITON_ENABLE_METRICS
"Include metrics support in server"
ON
)
option
(
TRITON_ENABLE_METRICS_GPU
"Include GPU metrics support in server"
ON
)
option
(
TRITON_ENABLE_METRICS_CPU
"Include CPU metrics support in server"
ON
)
# Cloud storage
option
(
TRITON_ENABLE_GCS
"Include GCS Filesystem support in server"
OFF
)
option
(
TRITON_ENABLE_S3
"Include S3 Filesystem support in server"
OFF
)
option
(
TRITON_ENABLE_AZURE_STORAGE
"Include Azure Storage Filesystem support in server"
OFF
)
# Repo tags
set
(
TRITON_COMMON_REPO_TAG
"main"
CACHE STRING
"Tag for triton-inference-server/common repo"
)
set
(
TRITON_THIRD_PARTY_REPO_TAG
"main"
CACHE STRING
"Tag for triton-inference-server/third_party repo"
)
# Third-party location
set
(
TRITON_THIRD_PARTY_INSTALL_PREFIX
"
${
CMAKE_CURRENT_BINARY_DIR
}
/third-party"
CACHE STRING
"Location of third-party build"
)
set
(
TRITON_THIRD_PARTY_SRC_INSTALL_PREFIX
"
${
CMAKE_CURRENT_BINARY_DIR
}
/third-party-src"
CACHE STRING
"Location of third-party source"
)
if
(
TRITON_ENABLE_METRICS AND NOT TRITON_ENABLE_STATS
)
message
(
FATAL_ERROR
"TRITON_ENABLE_METRICS=ON requires TRITON_ENABLE_STATS=ON"
)
endif
()
if
(
TRITON_ENABLE_TRACING AND NOT TRITON_ENABLE_STATS
)
message
(
FATAL_ERROR
"TRITON_ENABLE_TRACING=ON requires TRITON_ENABLE_STATS=ON"
)
endif
()
if
(
TRITON_ENABLE_METRICS_CPU AND NOT TRITON_ENABLE_METRICS
)
message
(
FATAL_ERROR
"TRITON_ENABLE_METRICS_CPU=ON requires TRITON_ENABLE_METRICS=ON"
)
endif
()
if
(
TRITON_ENABLE_METRICS_GPU AND NOT TRITON_ENABLE_METRICS
)
message
(
FATAL_ERROR
"TRITON_ENABLE_METRICS_GPU=ON requires TRITON_ENABLE_METRICS=ON"
)
endif
()
if
(
TRITON_ENABLE_METRICS_GPU AND NOT TRITON_ENABLE_GPU
)
message
(
FATAL_ERROR
"TRITON_ENABLE_METRICS_GPU=ON requires TRITON_ENABLE_GPU=ON"
)
endif
()
include
(
FetchContent
)
FetchContent_Declare
(
repo-third-party
GIT_REPOSITORY https://github.com/triton-inference-server/third_party.git
GIT_TAG
${
TRITON_THIRD_PARTY_REPO_TAG
}
)
FetchContent_MakeAvailable
(
repo-third-party
)
# Need to use ExternalProject for our builds so that we can get the
# correct dependencies between Triton shared library components and
# the ExternalProject dependencies (found in the third_party repo)
include
(
ExternalProject
)
# If CMAKE_TOOLCHAIN_FILE is set, propagate that hint path to the external
# projects.
set
(
_CMAKE_ARGS_CMAKE_TOOLCHAIN_FILE
""
)
if
(
CMAKE_TOOLCHAIN_FILE
)
set
(
_CMAKE_ARGS_CMAKE_TOOLCHAIN_FILE
"-DCMAKE_TOOLCHAIN_FILE:PATH=
${
CMAKE_TOOLCHAIN_FILE
}
"
)
endif
()
# If VCPKG_TARGET_TRIPLET is set, propagate that hint path to the external
# projects.
set
(
_CMAKE_ARGS_VCPKG_TARGET_TRIPLET
""
)
if
(
VCPKG_TARGET_TRIPLET
)
set
(
_CMAKE_ARGS_VCPKG_TARGET_TRIPLET
"-DVCPKG_TARGET_TRIPLET:STRING=
${
VCPKG_TARGET_TRIPLET
}
"
)
endif
()
# If OPENSSL_ROOT_DIR is set, propagate that hint path to the external
# projects with OpenSSL dependency.
set
(
_CMAKE_ARGS_OPENSSL_ROOT_DIR
""
)
if
(
OPENSSL_ROOT_DIR
)
set
(
_CMAKE_ARGS_OPENSSL_ROOT_DIR
"-DOPENSSL_ROOT_DIR:PATH=
${
OPENSSL_ROOT_DIR
}
"
)
endif
()
# Location where protobuf-config.cmake will be installed varies by
# platform
if
(
WIN32
)
set
(
_FINDPACKAGE_PROTOBUF_CONFIG_DIR
"
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/protobuf/cmake"
)
else
()
set
(
_FINDPACKAGE_PROTOBUF_CONFIG_DIR
"
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/protobuf/lib/cmake/protobuf"
)
endif
()
if
(
CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
)
set
(
TRITON_INSTALL_PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
/install
)
else
()
set
(
TRITON_INSTALL_PREFIX
${
CMAKE_INSTALL_PREFIX
}
)
endif
()
set
(
TRITON_DEPENDS googletest protobuf
)
if
(
${
TRITON_ENABLE_GCS
}
)
set
(
TRITON_DEPENDS
${
TRITON_DEPENDS
}
google-cloud-cpp
)
endif
()
# TRITON_ENABLE_GCS
if
(
${
TRITON_ENABLE_S3
}
)
set
(
TRITON_DEPENDS
${
TRITON_DEPENDS
}
aws-sdk-cpp
)
endif
()
# TRITON_ENABLE_S3
if
(
${
TRITON_ENABLE_AZURE_STORAGE
}
)
set
(
TRITON_DEPENDS
${
TRITON_DEPENDS
}
azure-storage-cpplite
)
endif
()
# TRITON_ENABLE_AZURE_STORAGE
if
(
${
TRITON_ENABLE_METRICS
}
)
set
(
TRITON_DEPENDS
${
TRITON_DEPENDS
}
prometheus-cpp
)
endif
()
# TRITON_ENABLE_METRICS
if
(
${
TRITON_ENABLE_GPU
}
)
set
(
TRITON_DEPENDS
${
TRITON_DEPENDS
}
cnmem
)
endif
()
# TRITON_ENABLE_GPU
ExternalProject_Add
(
triton-core
PREFIX triton-core
SOURCE_DIR
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/src"
BINARY_DIR
"
${
CMAKE_CURRENT_BINARY_DIR
}
/triton-core"
CMAKE_CACHE_ARGS
-DProtobuf_DIR:PATH=
${
_FINDPACKAGE_PROTOBUF_CONFIG_DIR
}
${
_CMAKE_ARGS_OPENSSL_ROOT_DIR
}
${
_CMAKE_ARGS_CMAKE_TOOLCHAIN_FILE
}
${
_CMAKE_ARGS_VCPKG_TARGET_TRIPLET
}
-DGTEST_ROOT:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/googletest
-DgRPC_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/grpc/lib/cmake/grpc
-Dc-ares_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/c-ares/lib/cmake/c-ares
-Dabsl_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/absl/lib/cmake/absl
-Dnlohmann_json_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/nlohmann_json/lib/cmake/nlohmann_json
-Dprometheus-cpp_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/prometheus-cpp/lib/cmake/prometheus-cpp
-Dgoogle_cloud_cpp_storage_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/google-cloud-cpp/lib/cmake/google_cloud_cpp_storage
-Dgoogle_cloud_cpp_rest_internal_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/google-cloud-cpp/lib/cmake/google_cloud_cpp_rest_internal
-Dazure-storage-cpplite_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/azure-storage-cpplite
-Dgoogle_cloud_cpp_common_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/google-cloud-cpp/lib/cmake/google_cloud_cpp_common
-DCrc32c_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/crc32c/lib/cmake/Crc32c
-DAWSSDK_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/aws-sdk-cpp/lib/cmake/AWSSDK
-Daws-cpp-sdk-core_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/aws-sdk-cpp/lib/cmake/aws-cpp-sdk-core
-Daws-cpp-sdk-s3_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/aws-sdk-cpp/lib/cmake/aws-cpp-sdk-s3
-Daws-c-event-stream_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/aws-sdk-cpp/lib/aws-c-event-stream/cmake
-Daws-c-common_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/aws-sdk-cpp/lib/aws-c-common/cmake
-Daws-checksums_DIR:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/aws-sdk-cpp/lib/aws-checksums/cmake
-DCNMEM_PATH:PATH=
${
TRITON_THIRD_PARTY_INSTALL_PREFIX
}
/cnmem
-DTRITON_COMMON_REPO_TAG:STRING=
${
TRITON_COMMON_REPO_TAG
}
-DTRITON_EXTRA_LIB_PATHS:PATH=
${
TRITON_EXTRA_LIB_PATHS
}
-DTRITON_ENABLE_NVTX:BOOL=
${
TRITON_ENABLE_NVTX
}
-DTRITON_ENABLE_TRACING:BOOL=
${
TRITON_ENABLE_TRACING
}
-DTRITON_ENABLE_LOGGING:BOOL=
${
TRITON_ENABLE_LOGGING
}
-DTRITON_ENABLE_STATS:BOOL=
${
TRITON_ENABLE_STATS
}
-DTRITON_ENABLE_GPU:BOOL=
${
TRITON_ENABLE_GPU
}
-DTRITON_ENABLE_MALI_GPU:BOOL=
${
TRITON_ENABLE_MALI_GPU
}
-DTRITON_MIN_COMPUTE_CAPABILITY:STRING=
${
TRITON_MIN_COMPUTE_CAPABILITY
}
-DTRITON_ENABLE_METRICS:BOOL=
${
TRITON_ENABLE_METRICS
}
-DTRITON_ENABLE_METRICS_GPU:BOOL=
${
TRITON_ENABLE_METRICS_GPU
}
-DTRITON_ENABLE_METRICS_CPU:BOOL=
${
TRITON_ENABLE_METRICS_CPU
}
-DTRITON_ENABLE_GCS:BOOL=
${
TRITON_ENABLE_GCS
}
-DTRITON_ENABLE_AZURE_STORAGE:BOOL=
${
TRITON_ENABLE_AZURE_STORAGE
}
-DTRITON_ENABLE_S3:BOOL=
${
TRITON_ENABLE_S3
}
-DTRITON_ENABLE_ENSEMBLE:BOOL=
${
TRITON_ENABLE_ENSEMBLE
}
-DCMAKE_BUILD_TYPE:STRING=
${
CMAKE_BUILD_TYPE
}
-DCMAKE_INSTALL_PREFIX:PATH=
${
TRITON_INSTALL_PREFIX
}
-DTRITON_VERSION:STRING=
${
TRITON_VERSION
}
DEPENDS
${
TRITON_DEPENDS
}
)
endif
()
# NOT TRITON_CORE_HEADERS_ONLY
#
# Install
#
include
(
GNUInstallDirs
)
set
(
INSTALL_CONFIGDIR
${
CMAKE_INSTALL_LIBDIR
}
/cmake/TritonCore
)
install
(
TARGETS
triton-core-backendapi
triton-core-repoagentapi
triton-core-serverapi
EXPORT
triton-core-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
install
(
TARGETS
triton-core-serverstub
EXPORT
triton-core-targets
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/stubs
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/stubs
RUNTIME DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/stubs
)
install
(
DIRECTORY include/
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
)
install
(
EXPORT
triton-core-targets
FILE
TritonCoreTargets.cmake
NAMESPACE
TritonCore::
DESTINATION
${
INSTALL_CONFIGDIR
}
)
include
(
CMakePackageConfigHelpers
)
configure_package_config_file
(
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/TritonCoreConfig.cmake.in
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonCoreConfig.cmake
INSTALL_DESTINATION
${
INSTALL_CONFIGDIR
}
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonCoreConfig.cmake
DESTINATION
${
INSTALL_CONFIGDIR
}
)
#
# Export from build tree
#
export
(
EXPORT
triton-core-targets
FILE
${
CMAKE_CURRENT_BINARY_DIR
}
/TritonCoreTargets.cmake
NAMESPACE
TritonCore::
)
export
(
PACKAGE TritonCore
)
3rdparty/googletest-1.13.0/CMakeLists.txt
0 → 100644
View file @
b97b62b7
# Note: CMake support is community-based. The maintainers do not use CMake
# internally.
cmake_minimum_required
(
VERSION 3.5
)
if
(
POLICY CMP0048
)
cmake_policy
(
SET CMP0048 NEW
)
endif
(
POLICY CMP0048
)
if
(
POLICY CMP0069
)
cmake_policy
(
SET CMP0069 NEW
)
endif
(
POLICY CMP0069
)
if
(
POLICY CMP0077
)
cmake_policy
(
SET CMP0077 NEW
)
endif
(
POLICY CMP0077
)
project
(
googletest-distribution
)
set
(
GOOGLETEST_VERSION 1.13.0
)
if
(
NOT CYGWIN AND NOT MSYS AND NOT
${
CMAKE_SYSTEM_NAME
}
STREQUAL QNX
)
set
(
CMAKE_CXX_EXTENSIONS OFF
)
endif
()
enable_testing
()
include
(
CMakeDependentOption
)
include
(
GNUInstallDirs
)
#Note that googlemock target already builds googletest
option
(
BUILD_GMOCK
"Builds the googlemock subproject"
ON
)
option
(
INSTALL_GTEST
"Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)"
ON
)
option
(
GTEST_HAS_ABSL
"Use Abseil and RE2. Requires Abseil and RE2 to be separately added to the build."
OFF
)
if
(
BUILD_GMOCK
)
add_subdirectory
(
googlemock
)
else
()
add_subdirectory
(
googletest
)
endif
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment