Skip to content

Commit 436f536

Browse files
committed
GPU Framework: remove GPUDefParametersDefaults.h and automatically
generate GPU parameters using json file and CMake
1 parent c990996 commit 436f536

File tree

7 files changed

+723
-599
lines changed

7 files changed

+723
-599
lines changed

GPU/GPUTracking/CMakeLists.txt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,12 @@ set(SRCS_NO_H SectorTracker/GPUTPCTrackerDump.cxx
106106
Global/GPUChainTrackingDebugAndProfiling.cxx
107107
Global/GPUChainTrackingIO.cxx)
108108

109+
set(ON_THE_FLY_DIR ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
110+
file(MAKE_DIRECTORY ${ON_THE_FLY_DIR})
111+
include(cmake/generateGPUParamHeader.cmake)
112+
set(GPU_DEFAULT_PARAMS_HEADER ${ON_THE_FLY_DIR}/GPUDefParametersDefaults.h)
113+
generate_gpu_param_header("AUTO" ${GPU_DEFAULT_PARAMS_HEADER}) # generate header with default GPU parameters, arch selected by CMake variables
114+
109115
set(HDRS_INSTALL
110116
${HDRS_CINT_O2}
111117
${HDRS_CINT_DATATYPES}
@@ -134,9 +140,9 @@ set(HDRS_INSTALL
134140
DataTypes/GPUO2ExternalUser.h
135141
Debug/GPUROOTDump.h
136142
Definitions/GPUDefConstantsAndSettings.h
143+
${GPU_DEFAULT_PARAMS_HEADER}
137144
Definitions/GPUDefParametersWrapper.h
138145
Definitions/GPUDefParametersConstants.h
139-
Definitions/GPUDefParametersDefaults.h
140146
Definitions/GPUDef.h
141147
Definitions/GPUDefMacros.h
142148
Definitions/GPULogging.h
@@ -238,8 +244,6 @@ set(TEMPLATE_HEADER_LIST Base/GPUReconstructionKernelList.template.h
238244
Definitions/GPUDefParametersLoad.template.inc)
239245
set(GENERATED_HEADERS_LIST "")
240246

241-
set(ON_THE_FLY_DIR ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
242-
file(MAKE_DIRECTORY ${ON_THE_FLY_DIR})
243247
foreach(TEMPLATE_FILE ${TEMPLATE_HEADER_LIST})
244248
get_filename_component(OUTPUT_FILE_NAME ${TEMPLATE_FILE} NAME)
245249
string(REPLACE ".template" "" OUTPUT_FILE_NAME ${OUTPUT_FILE_NAME})
@@ -285,6 +289,7 @@ set(HDRS_CINT_DATATYPES ${HDRS_CINT_DATATYPES} ${HDRS_TMP})
285289
unset(HDRS_TMP)
286290

287291
set(INCDIRS
292+
${ON_THE_FLY_DIR}
288293
${CMAKE_CURRENT_SOURCE_DIR}
289294
${CMAKE_CURRENT_SOURCE_DIR}/Definitions
290295
${CMAKE_CURRENT_SOURCE_DIR}/DataTypes
@@ -301,14 +306,14 @@ set(INCDIRS
301306
${CMAKE_CURRENT_SOURCE_DIR}/Refit
302307
${CMAKE_CURRENT_SOURCE_DIR}/Debug
303308
${CMAKE_CURRENT_SOURCE_DIR}/DataCompression
304-
${CMAKE_CURRENT_SOURCE_DIR}/TPCClusterFinder
305-
${ON_THE_FLY_DIR})
309+
${CMAKE_CURRENT_SOURCE_DIR}/TPCClusterFinder)
306310

307311
# Main CMake part for O2
308312
if(ALIGPU_BUILD_TYPE STREQUAL "O2")
309313
o2_add_library(GPUDataTypes
310314
TARGETVARNAME targetName
311315
PUBLIC_INCLUDE_DIRECTORIES .
316+
${ON_THE_FLY_DIR}
312317
Definitions
313318
DataTypes
314319
PUBLIC_LINK_LIBRARIES O2::GPUUtils
@@ -408,16 +413,17 @@ set(GPU_CONST_PARAM_ARCHITECTUES AMPERE TURING VEGA MI100)
408413
set(GPU_CONST_PARAM_FILES "")
409414
foreach(GPU_ARCH ${GPU_CONST_PARAM_ARCHITECTUES})
410415
set(PARAMFILE ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/gpu_const_param_${GPU_ARCH}.par)
416+
set(GPU_ARCH_PARAMS_HEADER ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/GPUDefParametersDefaults_${GPU_ARCH}.h)
417+
generate_gpu_param_header(${GPU_ARCH} ${GPU_ARCH_PARAMS_HEADER})
411418
add_custom_command(
412419
OUTPUT ${PARAMFILE}
413420
COMMAND bash -c
414-
"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'"
421+
"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'"
415422
| root -l -b > /dev/null
416423
VERBATIM
417424
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch
418425
MAIN_DEPENDENCY Standalone/tools/dumpGPUDefParam.C
419-
DEPENDS Definitions/GPUDefParametersDefaults.h
420-
${ON_THE_FLY_DIR}/GPUDefParametersLoadPrepare.h
426+
DEPENDS ${ON_THE_FLY_DIR}/GPUDefParametersLoadPrepare.h
421427
${ON_THE_FLY_DIR}/GPUDefParametersLoad.inc
422428
COMMENT "Generating GPU parameter set for architecture ${GPU_ARCH}")
423429
LIST(APPEND GPU_CONST_PARAM_FILES ${PARAMFILE})

0 commit comments

Comments
 (0)