Skip to content
Draft
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
2 changes: 1 addition & 1 deletion Detectors/ITSMFT/ITS/tracking/GPU/cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ if(CUDA_ENABLED)

set_property(TARGET ${targetName} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
target_compile_definitions(${targetName} PRIVATE $<TARGET_PROPERTY:O2::ITStracking,COMPILE_DEFINITIONS>)
set_target_cuda_arch(${targetName})
set_target_gpu_arch("CUDA" ${targetName})
endif()
4 changes: 2 additions & 2 deletions GPU/GPUTracking/Base/cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ add_custom_command(
COMMAND cat ${GPUDIR}/Base/GPUStdSystemHeaders.h >> ${GPU_RTC_BIN}.src
COMMAND ${CMAKE_CUDA_COMPILER} ${GPU_RTC_DEFINES} ${GPU_RTC_INCLUDES} -std=c++${CMAKE_CUDA_STANDARD} -D__CUDA_ARCH__=${RTC_CUDA_ARCH} -Wno-deprecated-gpu-targets -D__CUDACC__ -x c++ -M -MD -MT ${GPU_RTC_BIN}.src -MF ${GPU_RTC_BIN}.src.d ${GPU_RTC_SRC}
COMMAND ${CMAKE_CUDA_COMPILER} ${GPU_RTC_DEFINES} ${GPU_RTC_INCLUDES} -std=c++${CMAKE_CUDA_STANDARD} -D__CUDA_ARCH__=${RTC_CUDA_ARCH} -Wno-deprecated-gpu-targets -D__CUDACC__ -x c++ -E -Xcompiler "-nostdinc -P" ${GPU_RTC_SRC} >> ${GPU_RTC_BIN}.src
DEPENDS ${GPU_RTC_SRC} ${GPUDIR}/Base/GPUStdSystemHeaders.h ${GPUDIR}/Base/cuda/GPUReconstructionCUDAIncludesSystem.h ${GPUDIR}/Base/GPUStdSystemHeaders.h
DEPENDS ${GPU_RTC_SRC} ${GPUDIR}/Base/GPUStdSystemHeaders.h ${GPUDIR}/Base/cuda/GPUReconstructionCUDAIncludesSystem.h ${GPUDIR}/Base/GPUStdSystemHeaders.h GPU_PARAM_HEADER_AUTO_ALL
DEPFILE ${GPU_RTC_BIN}.src.d
COMMAND_EXPAND_LISTS
COMMENT "Preparing CUDA RTC source file ${GPU_RTC_BIN}.src"
Expand Down Expand Up @@ -149,7 +149,7 @@ endif()

# Setting target architecture and adding GPU libraries
target_link_libraries(${targetName} PRIVATE cuda cudart)
set_target_cuda_arch(${targetName})
set_target_gpu_arch("CUDA" ${targetName})
#target_link_options(${targetName} PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/version_script.ld")
#set_target_properties(${targetName} PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/version_script.ld)

Expand Down
4 changes: 2 additions & 2 deletions GPU/GPUTracking/Base/hip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ add_custom_command(
COMMAND cat ${GPUDIR}/Base/hip/GPUReconstructionHIPIncludesSystem.h | grep -v GPUStdSystemHeaders.h >> ${GPU_RTC_BIN}.src
COMMAND cat ${GPUDIR}/Base/GPUStdSystemHeaders.h >> ${GPU_RTC_BIN}.src
COMMAND ${CMAKE_HIP_COMPILER} ${GPU_RTC_DEFINES} ${GPU_RTC_INCLUDES} -std=c++${CMAKE_HIP_STANDARD} -D__HIPCC__ -D__HIP_DEVICE_COMPILE__ -x c++ -nostdinc -E -P ${GPU_RTC_SRC} -MD -MT ${GPU_RTC_BIN}.src -MF ${GPU_RTC_BIN}.src.d >> ${GPU_RTC_BIN}.src
DEPENDS ${GPU_RTC_SRC} ${GPUDIR}/Base/GPUStdSystemHeaders.h ${GPUDIR}/Base/hip/GPUReconstructionHIPIncludesSystem.h ${GPUDIR}/Base/GPUStdSystemHeaders.h ${MODULE}_HIPIFIED
DEPENDS ${GPU_RTC_SRC} ${GPUDIR}/Base/GPUStdSystemHeaders.h ${GPUDIR}/Base/hip/GPUReconstructionHIPIncludesSystem.h ${GPUDIR}/Base/GPUStdSystemHeaders.h ${MODULE}_HIPIFIED GPU_PARAM_HEADER_AUTO_ALL
DEPFILE ${GPU_RTC_BIN}.src.d
COMMAND_EXPAND_LISTS
COMMENT "Preparing HIP RTC source file ${GPU_RTC_BIN}.src"
Expand Down Expand Up @@ -219,7 +219,7 @@ endif()

# Setting target architecture and adding GPU libraries
target_link_libraries(${targetName} PRIVATE hip::host hip::device hip::hipcub roc::rocthrust)
set_target_hip_arch(${targetName})
set_target_gpu_arch("HIP" ${targetName})

target_link_libraries(${MODULE}_CXX PRIVATE TBB::tbb)

Expand Down
21 changes: 14 additions & 7 deletions GPU/GPUTracking/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,12 @@ set(SRCS_NO_H SectorTracker/GPUTPCTrackerDump.cxx
Global/GPUChainTrackingDebugAndProfiling.cxx
Global/GPUChainTrackingIO.cxx)

set(ON_THE_FLY_DIR ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
file(MAKE_DIRECTORY ${ON_THE_FLY_DIR})
include(cmake/generateGPUParamHeader.cmake)
set(GPU_DEFAULT_PARAMS_HEADER ${ON_THE_FLY_DIR}/GPUDefParametersDefaults.h)
generate_gpu_param_header("AUTO" ${GPU_DEFAULT_PARAMS_HEADER}) # generate header with default GPU parameters, arch selected by CMake variables

set(HDRS_INSTALL
${HDRS_CINT_O2}
${HDRS_CINT_DATATYPES}
Expand Down Expand Up @@ -134,9 +140,9 @@ set(HDRS_INSTALL
DataTypes/GPUO2ExternalUser.h
Debug/GPUROOTDump.h
Definitions/GPUDefConstantsAndSettings.h
${GPU_DEFAULT_PARAMS_HEADER}
Definitions/GPUDefParametersWrapper.h
Definitions/GPUDefParametersConstants.h
Definitions/GPUDefParametersDefaults.h
Definitions/GPUDef.h
Definitions/GPUDefMacros.h
Definitions/GPULogging.h
Expand Down Expand Up @@ -238,8 +244,6 @@ set(TEMPLATE_HEADER_LIST Base/GPUReconstructionKernelList.template.h
Definitions/GPUDefParametersLoad.template.inc)
set(GENERATED_HEADERS_LIST "")

set(ON_THE_FLY_DIR ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
file(MAKE_DIRECTORY ${ON_THE_FLY_DIR})
foreach(TEMPLATE_FILE ${TEMPLATE_HEADER_LIST})
get_filename_component(OUTPUT_FILE_NAME ${TEMPLATE_FILE} NAME)
string(REPLACE ".template" "" OUTPUT_FILE_NAME ${OUTPUT_FILE_NAME})
Expand Down Expand Up @@ -285,6 +289,7 @@ set(HDRS_CINT_DATATYPES ${HDRS_CINT_DATATYPES} ${HDRS_TMP})
unset(HDRS_TMP)

set(INCDIRS
${ON_THE_FLY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/Definitions
${CMAKE_CURRENT_SOURCE_DIR}/DataTypes
Expand All @@ -301,14 +306,14 @@ set(INCDIRS
${CMAKE_CURRENT_SOURCE_DIR}/Refit
${CMAKE_CURRENT_SOURCE_DIR}/Debug
${CMAKE_CURRENT_SOURCE_DIR}/DataCompression
${CMAKE_CURRENT_SOURCE_DIR}/TPCClusterFinder
${ON_THE_FLY_DIR})
${CMAKE_CURRENT_SOURCE_DIR}/TPCClusterFinder)

# Main CMake part for O2
if(ALIGPU_BUILD_TYPE STREQUAL "O2")
o2_add_library(GPUDataTypes
TARGETVARNAME targetName
PUBLIC_INCLUDE_DIRECTORIES .
${ON_THE_FLY_DIR}
Definitions
DataTypes
PUBLIC_LINK_LIBRARIES O2::GPUUtils
Expand Down Expand Up @@ -408,15 +413,17 @@ set(GPU_CONST_PARAM_ARCHITECTUES AMPERE TURING VEGA MI100)
set(GPU_CONST_PARAM_FILES "")
foreach(GPU_ARCH ${GPU_CONST_PARAM_ARCHITECTUES})
set(PARAMFILE ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/gpu_const_param_${GPU_ARCH}.par)
set(GPU_ARCH_PARAMS_HEADER ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/GPUDefParametersDefaults_${GPU_ARCH}.h)
generate_gpu_param_header(${GPU_ARCH} ${GPU_ARCH_PARAMS_HEADER})
add_custom_command(
OUTPUT ${PARAMFILE}
COMMAND bash -c
"echo -e '#define GPUCA_GPUTYPE_${GPU_ARCH}\\n#define PARAMETER_FILE \"GPUDefParametersDefaults.h\"\\ngInterpreter->AddIncludePath(\"${CMAKE_CURRENT_SOURCE_DIR}/Definitions\");\\ngInterpreter->AddIncludePath(\"${ON_THE_FLY_DIR}\");\\n.x ${CMAKE_CURRENT_SOURCE_DIR}/Standalone/tools/dumpGPUDefParam.C(\"${PARAMFILE}\")\\n.q\\n'"
"echo -e '#define GPUCA_GPUTYPE_${GPU_ARCH}\\n#define PARAMETER_FILE \"${GPU_ARCH_PARAMS_HEADER}\"\\ngInterpreter->AddIncludePath(\"${CMAKE_CURRENT_SOURCE_DIR}/Definitions\");\\ngInterpreter->AddIncludePath(\"${ON_THE_FLY_DIR}\");\\n.x ${CMAKE_CURRENT_SOURCE_DIR}/Standalone/tools/dumpGPUDefParam.C(\"${PARAMFILE}\")\\n.q\\n'"
| root -l -b > /dev/null
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch
MAIN_DEPENDENCY Standalone/tools/dumpGPUDefParam.C
DEPENDS Definitions/GPUDefParametersDefaults.h
DEPENDS ${GPU_ARCH_PARAMS_HEADER}
${ON_THE_FLY_DIR}/GPUDefParametersLoadPrepare.h
${ON_THE_FLY_DIR}/GPUDefParametersLoad.inc
COMMENT "Generating GPU parameter set for architecture ${GPU_ARCH}")
Expand Down
1 change: 1 addition & 0 deletions GPU/GPUTracking/Definitions/.clang-format-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
GPUParameters.json
Loading
Loading