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
5 changes: 1 addition & 4 deletions GPU/GPUTracking/Base/GPUReconstructionProcessing.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,9 @@
/// \file GPUReconstructionProcessing.cxx
/// \author David Rohr

#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
#include "GPUDefParametersDefault.h"
#include "GPUDefParametersLoad.inc"

#include "GPUReconstructionProcessing.h"
#include "GPUReconstructionThreading.h"
#include "GPUDefParametersLoad.inc"

using namespace o2::gpu;

Expand Down
8 changes: 4 additions & 4 deletions GPU/GPUTracking/Base/cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,10 @@ set(SRCS ${SRCS} ${GPU_RTC_BIN}.src.o ${GPU_RTC_BIN}.command.o ${GPU_RTC_BIN}.co
# -------------------------------- End RTC -------------------------------------------------------

if(ALIGPU_BUILD_TYPE STREQUAL "O2")
set(TMP_BASELIB O2::GPUTracking)
o2_add_library(
${MODULE}
SOURCES ${SRCS}
PUBLIC_LINK_LIBRARIES ${TMP_BASELIB} O2::ITStrackingCUDA
PUBLIC_LINK_LIBRARIES O2::GPUTracking O2::ITStrackingCUDA
PRIVATE_INCLUDE_DIRECTORIES
${CMAKE_SOURCE_DIR}/Detectors/Base/src
${CMAKE_SOURCE_DIR}/Detectors/TRD/base/src
Expand All @@ -127,10 +126,9 @@ endif()

if(ALIGPU_BUILD_TYPE STREQUAL "Standalone")
set(targetName "${MODULE}")
set(TMP_BASELIB GPUTracking)
add_library(${MODULE} SHARED ${SRCS})
add_library(O2::${MODULE} ALIAS ${MODULE})
target_link_libraries(${MODULE} PUBLIC ${TMP_BASELIB})
target_link_libraries(${MODULE} PUBLIC O2::GPUTracking)
install(TARGETS GPUTrackingCUDA)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
endif()
Expand Down Expand Up @@ -158,6 +156,7 @@ elseif(GPUCA_CUDA_COMPILE_MODE STREQUAL "perkernel")
target_compile_definitions(${targetName} PRIVATE GPUCA_KERNEL_COMPILE_MODE=1)
target_compile_definitions(GPUTrackingCUDAKernels PRIVATE $<TARGET_PROPERTY:${targetName},COMPILE_DEFINITIONS>)
target_include_directories(GPUTrackingCUDAKernels PRIVATE $<TARGET_PROPERTY:${targetName},INCLUDE_DIRECTORIES>)
target_link_libraries(GPUTrackingCUDAKernels PRIVATE $<TARGET_PROPERTY:${targetName},LINK_LIBRARIES>)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/cuda_kernel_module_fatbin)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/GPUTrackingCUDAKernelModules.o
Expand Down Expand Up @@ -189,3 +188,4 @@ add_library(O2::GPUTrackingCUDAExternalProvider ALIAS GPUTrackingCUDAExternalPro
set_property(TARGET GPUTrackingCUDAExternalProvider PROPERTY CUDA_SEPARABLE_COMPILATION ON)
target_compile_definitions(GPUTrackingCUDAExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},COMPILE_DEFINITIONS>)
target_include_directories(GPUTrackingCUDAExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},INCLUDE_DIRECTORIES>)
add_dependencies(GPUTrackingCUDAExternalProvider O2::GPUTracking) # must not depend on GPU backend to avoid cyclic dependencies
8 changes: 2 additions & 6 deletions GPU/GPUTracking/Base/cuda/GPUReconstructionCUDA.cu
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,6 @@

#define GPUCA_GPUCODE_HOSTONLY

#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
#include "GPUReconstructionCUDADef.h"
#include "GPUDefParametersDefault.h"
#include "GPUDefParametersLoad.inc"

#include "GPUReconstructionCUDAIncludesSystem.h"
#include "GPUReconstructionCUDADef.h"
#include <cuda_profiler_api.h>
Expand All @@ -28,6 +23,7 @@
#include "GPUReconstructionIncludes.h"
#include "GPUParamRTC.h"
#include "GPUReconstructionCUDAHelpers.inc"
#include "GPUDefParametersLoad.inc"

#if defined(GPUCA_KERNEL_COMPILE_MODE) && GPUCA_KERNEL_COMPILE_MODE == 1
#include "utils/qGetLdBinarySymbols.h"
Expand Down Expand Up @@ -86,7 +82,7 @@ GPUReconstructionCUDA::GPUReconstructionCUDA(const GPUSettingsDeviceBackend& cfg
mRtcBinExtension = ".o";
#endif
}
GPUReconstructionCUDA::~GPUReconstructionCUDA() {}
GPUReconstructionCUDA::~GPUReconstructionCUDA() = default;

GPUReconstruction* GPUReconstruction_Create_CUDA(const GPUSettingsDeviceBackend& cfg) { return new GPUReconstructionCUDA(cfg); }

Expand Down
5 changes: 1 addition & 4 deletions GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,10 @@
/// \author David Rohr

#define GPUCA_GPUCODE_HOSTONLY
#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
#include "GPUDefParametersDefault.h"
#include "GPUDefParametersLoad.inc"

#include "GPUReconstructionCUDA.h"
#include "GPUParamRTC.h"
#include "GPUDefMacros.h"
#include "GPUDefParametersLoad.inc"
#include <unistd.h>
#include "Framework/SHA1.h"
#include <sys/stat.h>
Expand Down
19 changes: 10 additions & 9 deletions GPU/GPUTracking/Base/hip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,10 @@ set(SRCS ${SRCS} ${GPU_RTC_BIN}.src.o ${GPU_RTC_BIN}.command.o ${GPU_RTC_BIN}.co
# -------------------------------- End RTC -------------------------------------------------------

if(ALIGPU_BUILD_TYPE STREQUAL "O2")
set(TMP_BASELIB O2::GPUTracking)
o2_add_library(
${MODULE}
SOURCES ${SRCS}
PUBLIC_LINK_LIBRARIES ${TMP_BASELIB} O2::ITStrackingHIP
PUBLIC_LINK_LIBRARIES O2::GPUTracking O2::ITStrackingHIP
PRIVATE_INCLUDE_DIRECTORIES
${CMAKE_SOURCE_DIR}/Detectors/Base/src
${CMAKE_SOURCE_DIR}/Detectors/TRD/base/src
Expand All @@ -171,19 +170,20 @@ endif()

if(ALIGPU_BUILD_TYPE STREQUAL "Standalone")
set(targetName "${MODULE}")
set(TMP_BASELIB GPUTracking)
add_library(${MODULE} SHARED ${SRCS})
add_library(O2::${MODULE} ALIAS ${MODULE})
target_link_libraries(${MODULE} PUBLIC ${TMP_BASELIB})
target_link_libraries(${MODULE} PUBLIC O2::GPUTracking)
install(TARGETS GPUTrackingHIP)
include_directories(${GPUCA_HIP_SOURCE_DIR})
endif()

target_compile_definitions(${targetName} PRIVATE $<TARGET_PROPERTY:O2::GPUTracking,COMPILE_DEFINITIONS>)

add_library(${MODULE}_CXX OBJECT ${SRCS_CXX}) # Adding a C++ library for the .cxx code of the HIP library, such that it does not link to HIP libraries, and CMake HIP Language doesn't add HIP compile flags.
target_compile_definitions(${MODULE}_CXX PRIVATE $<TARGET_PROPERTY:${TMP_BASELIB},COMPILE_DEFINITIONS>)
target_include_directories(${MODULE}_CXX PRIVATE $<TARGET_PROPERTY:${TMP_BASELIB},INCLUDE_DIRECTORIES>)
target_compile_definitions(${MODULE}_CXX PRIVATE $<TARGET_PROPERTY:O2::GPUTracking,COMPILE_DEFINITIONS>)
target_include_directories(${MODULE}_CXX PRIVATE $<TARGET_PROPERTY:O2::GPUTracking,INCLUDE_DIRECTORIES>)
target_link_libraries(${MODULE}_CXX PRIVATE $<TARGET_PROPERTY:O2::GPUTracking,LINK_LIBRARIES>)
add_dependencies(${MODULE}_CXX O2::GPUTracking)
target_link_libraries(${targetName} PRIVATE ${MODULE}_CXX)

if(NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA}")
Expand All @@ -205,14 +205,14 @@ endif()
if(GPUCA_HIP_COMPILE_MODE STREQUAL "onefile")
target_compile_definitions(${targetName} PRIVATE GPUCA_KERNEL_COMPILE_MODE=0)
elseif(GPUCA_HIP_COMPILE_MODE STREQUAL "perkernel")
#add_library(GPUTrackingHIPKernels OBJECT $<JOIN:$<LIST:TRANSFORM,$<LIST:TRANSFORM,$<LIST:TRANSFORM,$<TARGET_PROPERTY:O2_GPU_KERNELS,O2_GPU_KERNEL_NAMES>,REPLACE,[^A-Za-z0-9]+,_>,PREPEND,${O2_GPU_KERNEL_WRAPPER_FOLDER}/krnl_>,APPEND,.cu>, >)
#set_property(TARGET GPUTrackingHIPKernels PROPERTY HIP_FATBIN_COMPILATION ON)
add_subdirectory(per_kernel)
add_library(GPUTrackingHIPKernels OBJECT $<JOIN:$<LIST:TRANSFORM,$<LIST:TRANSFORM,$<LIST:TRANSFORM,$<TARGET_PROPERTY:O2_GPU_KERNELS,O2_GPU_KERNEL_NAMES>,REPLACE,[^A-Za-z0-9]+,_>,PREPEND,${O2_GPU_KERNEL_WRAPPER_FOLDER}/krnl_>,APPEND,.hip>, >)
target_compile_options(GPUTrackingHIPKernels PRIVATE "--cuda-device-only")
target_compile_options(GPUTrackingHIPKernels PRIVATE $<$<COMPILE_LANGUAGE:HIP>:-fno-gpu-rdc>)
target_link_options(GPUTrackingHIPKernels PRIVATE $<$<COMPILE_LANGUAGE:HIP>:-fno-gpu-rdc>)
target_compile_definitions(${targetName} PRIVATE GPUCA_KERNEL_COMPILE_MODE=1)
target_compile_definitions(GPUTrackingHIPKernels PRIVATE $<TARGET_PROPERTY:${targetName},COMPILE_DEFINITIONS>)
target_include_directories(GPUTrackingHIPKernels PRIVATE $<TARGET_PROPERTY:${targetName},INCLUDE_DIRECTORIES>)
target_link_libraries(GPUTrackingHIPKernels PRIVATE $<TARGET_PROPERTY:${targetName},LINK_LIBRARIES>)
if(NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA}")
add_dependencies(GPUTrackingHIPKernels ${MODULE}_HIPIFIED)
endif()
Expand Down Expand Up @@ -249,6 +249,7 @@ target_compile_options(GPUTrackingHIPExternalProvider PRIVATE $<$<COMPILE_LANGUA
target_link_options(GPUTrackingHIPExternalProvider PRIVATE $<$<COMPILE_LANGUAGE:HIP>:-fgpu-rdc>)
target_compile_definitions(GPUTrackingHIPExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},COMPILE_DEFINITIONS>)
target_include_directories(GPUTrackingHIPExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},INCLUDE_DIRECTORIES>)
add_dependencies(GPUTrackingHIPExternalProvider O2::GPUTracking) # must not depend on GPU backend to avoid cyclic dependencies
if(NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA}")
add_dependencies(GPUTrackingHIPExternalProvider ${MODULE}_HIPIFIED)
endif()
13 changes: 0 additions & 13 deletions GPU/GPUTracking/Base/hip/per_kernel/CMakeLists.txt

This file was deleted.

2 changes: 0 additions & 2 deletions GPU/GPUTracking/Base/opencl/GPUReconstructionOCL.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
/// \file GPUReconstructionOCL.cxx
/// \author David Rohr

#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
#include "GPUReconstructionOCLIncludesHost.h"
#include "GPUDefParametersDefault.h"
#include "GPUDefParametersLoad.inc"

#include <map>
Expand Down
25 changes: 20 additions & 5 deletions GPU/GPUTracking/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2")
endif()

file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
file(GENERATE
file(GENERATE # TODO: Do this as a list
OUTPUT include_gpu_onthefly/GPUReconstructionKernelList.h
INPUT Base/GPUReconstructionKernelList.template.h
)
Expand All @@ -255,10 +255,19 @@ file(GENERATE
OUTPUT include_gpu_onthefly/GPUDefParametersLoad.inc
INPUT Definitions/GPUDefParametersLoad.template.inc
)
if(NOT ALIGPU_BUILD_TYPE STREQUAL "O2")
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
endif()
set(HDRS_INSTALL ${HDRS_INSTALL} ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUReconstructionKernelList.h ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParameters.h ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoad.inc)
file(GENERATE
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/GPUDefParametersLoadPrepareBase
CONTENT "$<JOIN:$<LIST:TRANSFORM,$<TARGET_PROPERTY:O2_GPU_KERNELS,O2_GPU_KERNEL_NAMES>,REPLACE,[^A-Za-z0-9]+,_>,\n>"
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h
COMMAND awk "{print(\"#ifndef GPUCA_LB_\" $0 \"\\n#define GPUCA_LB_\" $0 \" 0\\n#endif\")}" ${CMAKE_CURRENT_BINARY_DIR}/GPUDefParametersLoadPrepareBase > ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h
COMMENT "Generating GPUDefParametersLoadPrepare.h"
VERBATIM
COMMAND_EXPAND_LISTS
)

set(HDRS_INSTALL ${HDRS_INSTALL} ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUReconstructionKernelList.h ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParameters.h ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoad.inc ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h)
include(kernels.cmake)

# Optional sources depending on optional dependencies
Expand Down Expand Up @@ -396,6 +405,12 @@ set_source_files_properties(Base/GPUReconstructionLibrary.cxx
PROPERTIES
INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}")

# Make sure header files generated with add_custom_command are built
target_sources(${targetName}
PRIVATE FILE_SET "generatedHeaders"
TYPE HEADERS
FILES ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h # TODO: build file list for this
BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR})

# Add compile definitions and libraries depending on available optional dependencies
if(GPUCA_QA)
Expand Down
Loading