Warning, /acts/Plugins/Gnn/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 acts_add_library(
0002 PluginGnn
0003 src/GnnPipeline.cpp
0004 src/Tensor.cpp
0005 src/BoostTrackBuilding.cpp
0006 src/TruthGraphMetricsHook.cpp
0007 src/GraphStoreHook.cpp
0008 ACTS_INCLUDE_FOLDER include/ActsPlugins
0009 )
0010
0011 if(ACTS_GNN_ENABLE_CUDA)
0012 target_compile_definitions(ActsPluginGnn PUBLIC ACTS_GNN_WITH_CUDA)
0013 target_sources(
0014 ActsPluginGnn
0015 PRIVATE src/CudaTrackBuilding.cu src/JunctionRemoval.cu src/Tensor.cu
0016 )
0017 target_link_libraries(ActsPluginGnn PUBLIC CUDA::nvtx3)
0018 target_compile_definitions(ActsPluginGnn PUBLIC ACTS_GNN_NVTX)
0019 endif()
0020
0021 if(ACTS_GNN_ENABLE_MODULEMAP)
0022 target_compile_definitions(ActsPluginGnn PUBLIC ACTS_GNN_WITH_MODULEMAP)
0023
0024 target_link_libraries(
0025 ActsPluginGnn
0026 PRIVATE ModuleMapGraph::CPU ModuleMapGraph::GPU
0027 )
0028 target_sources(ActsPluginGnn PRIVATE src/ModuleMapCuda.cu)
0029 endif()
0030
0031 if(ACTS_GNN_ENABLE_ONNX)
0032 target_sources(ActsPluginGnn PRIVATE src/OnnxEdgeClassifier.cpp)
0033 target_link_libraries(ActsPluginGnn PRIVATE onnxruntime::onnxruntime)
0034 target_compile_definitions(ActsPluginGnn PUBLIC ACTS_GNN_ONNX_BACKEND)
0035 endif()
0036
0037 if(ACTS_GNN_ENABLE_TORCH)
0038 target_sources(
0039 ActsPluginGnn
0040 PRIVATE
0041 src/TorchEdgeClassifier.cpp
0042 src/TorchMetricLearning.cpp
0043 src/buildEdges.cpp
0044 )
0045 endif()
0046
0047 if(ACTS_GNN_ENABLE_TENSORRT)
0048 find_package(TensorRT REQUIRED)
0049 message(STATUS "Found TensorRT ${TensorRT_VERSION}")
0050 target_link_libraries(ActsPluginGnn PUBLIC trt::nvinfer trt::nvinfer_plugin)
0051 target_sources(ActsPluginGnn PRIVATE src/TensorRTEdgeClassifier.cpp)
0052 target_compile_definitions(ActsPluginGnn PUBLIC ACTS_GNN_WITH_TENSORRT)
0053 endif()
0054
0055 target_include_directories(
0056 ActsPluginGnn
0057 PUBLIC
0058 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
0059 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
0060 )
0061
0062 target_link_libraries(ActsPluginGnn PUBLIC Acts::Core Boost::boost)
0063
0064 if(ACTS_GNN_ENABLE_CUDA)
0065 target_compile_features(ActsPluginGnn PUBLIC cuda_std_20)
0066 set_target_properties(
0067 ActsPluginGnn
0068 PROPERTIES CUDA_STANDARD_REQUIRED ON CUDA_SEPARABLE_COMPILATION OFF
0069 )
0070 target_compile_options(
0071 ActsPluginGnn
0072 PRIVATE
0073 $<$<COMPILE_LANGUAGE:CUDA>:
0074 --dopt=on
0075 --generate-line-info
0076 --expt-relaxed-constexpr
0077 --extended-lambda>
0078 )
0079 target_compile_definitions(
0080 ActsPluginGnn
0081 PUBLIC CUDA_API_PER_THREAD_DEFAULT_STREAM
0082 )
0083 target_link_libraries(ActsPluginGnn PUBLIC CUDA::cudart)
0084 else()
0085 target_compile_definitions(ActsPluginGnn PUBLIC ACTS_GNN_CPUONLY)
0086 endif()
0087
0088 if(ACTS_GNN_ENABLE_TORCH)
0089 target_compile_definitions(ActsPluginGnn PUBLIC ACTS_GNN_TORCH_BACKEND)
0090 target_link_libraries(ActsPluginGnn PRIVATE ${TORCH_LIBRARIES})
0091 if(ACTS_GNN_ENABLE_CUDA)
0092 target_link_libraries(ActsPluginGnn PRIVATE frnn)
0093 endif()
0094 find_package(TorchScatter QUIET)
0095 if(NOT TARGET TorchScatter::TorchScatter)
0096 message(
0097 WARNING
0098 "Torch scatter not found, models that rely on torch-scatter will not work"
0099 )
0100 else()
0101 target_link_libraries(ActsPluginGnn PRIVATE TorchScatter::TorchScatter)
0102 # Should not discard TorchScatter even if its not needed at this point
0103 # since we need the scatter_max operation in the torch script later
0104 target_link_options(ActsPluginGnn PUBLIC "-Wl,-no-as-needed")
0105 endif()
0106 endif()