Skip to content

Commit 03df7cc

Browse files
committed
GPU RTC: Simplify the way LB preprocessor definitions are imported as parameter object, and replace explicit invalid list with CMake-auto-generated one
1 parent 5594d1d commit 03df7cc

File tree

8 files changed

+51
-310
lines changed

8 files changed

+51
-310
lines changed

GPU/GPUTracking/Base/GPUReconstructionProcessing.cxx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@
1212
/// \file GPUReconstructionProcessing.cxx
1313
/// \author David Rohr
1414

15-
#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
16-
#include "GPUDefParametersDefault.h"
17-
#include "GPUDefParametersLoad.inc"
18-
1915
#include "GPUReconstructionProcessing.h"
2016
#include "GPUReconstructionThreading.h"
17+
#include "GPUDefParametersLoad.inc"
2118

2219
using namespace o2::gpu;
2320

GPU/GPUTracking/Base/cuda/GPUReconstructionCUDA.cu

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@
1414

1515
#define GPUCA_GPUCODE_HOSTONLY
1616

17-
#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
18-
#include "GPUReconstructionCUDADef.h"
19-
#include "GPUDefParametersDefault.h"
20-
#include "GPUDefParametersLoad.inc"
21-
2217
#include "GPUReconstructionCUDAIncludesSystem.h"
2318
#include "GPUReconstructionCUDADef.h"
2419
#include <cuda_profiler_api.h>
@@ -28,6 +23,7 @@
2823
#include "GPUReconstructionIncludes.h"
2924
#include "GPUParamRTC.h"
3025
#include "GPUReconstructionCUDAHelpers.inc"
26+
#include "GPUDefParametersLoad.inc"
3127

3228
#if defined(GPUCA_KERNEL_COMPILE_MODE) && GPUCA_KERNEL_COMPILE_MODE == 1
3329
#include "utils/qGetLdBinarySymbols.h"

GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cxx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,10 @@
1313
/// \author David Rohr
1414

1515
#define GPUCA_GPUCODE_HOSTONLY
16-
#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
17-
#include "GPUDefParametersDefault.h"
18-
#include "GPUDefParametersLoad.inc"
1916

2017
#include "GPUReconstructionCUDA.h"
2118
#include "GPUParamRTC.h"
22-
#include "GPUDefMacros.h"
19+
#include "GPUDefParametersLoad.inc"
2320
#include <unistd.h>
2421
#include "Framework/SHA1.h"
2522
#include <sys/stat.h>

GPU/GPUTracking/Base/opencl/GPUReconstructionOCL.cxx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
/// \file GPUReconstructionOCL.cxx
1313
/// \author David Rohr
1414

15-
#define GPUCA_DEF_PARAMETERS_LOAD_DEFAULTS
1615
#include "GPUReconstructionOCLIncludesHost.h"
17-
#include "GPUDefParametersDefault.h"
1816
#include "GPUDefParametersLoad.inc"
1917

2018
#include <map>

GPU/GPUTracking/CMakeLists.txt

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2")
231231
endif()
232232

233233
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
234-
file(GENERATE
234+
file(GENERATE # TODO: Do this as a list
235235
OUTPUT include_gpu_onthefly/GPUReconstructionKernelList.h
236236
INPUT Base/GPUReconstructionKernelList.template.h
237237
)
@@ -255,10 +255,15 @@ file(GENERATE
255255
OUTPUT include_gpu_onthefly/GPUDefParametersLoad.inc
256256
INPUT Definitions/GPUDefParametersLoad.template.inc
257257
)
258-
if(NOT ALIGPU_BUILD_TYPE STREQUAL "O2")
259-
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
260-
endif()
261-
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)
258+
add_custom_command(
259+
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h
260+
COMMAND echo -e $<JOIN:$<LIST:TRANSFORM,$<TARGET_PROPERTY:O2_GPU_KERNELS,O2_GPU_KERNEL_NAMES>,REPLACE,[^A-Za-z0-9]+,_>,\\n> | sed -E "s/(.*)/#ifndef GPUCA_LB_\\1\\n#define GPUCA_LB_\\1 0\\n#endif\\n/g" > ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h
261+
COMMENT "Generating GPUDefParametersLoadPrepare.h"
262+
VERBATIM
263+
COMMAND_EXPAND_LISTS
264+
)
265+
266+
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)
262267
include(kernels.cmake)
263268

264269
# Optional sources depending on optional dependencies
@@ -396,6 +401,13 @@ set_source_files_properties(Base/GPUReconstructionLibrary.cxx
396401
PROPERTIES
397402
INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}")
398403

404+
# Make sure header files generated with add_custom_command are built
405+
target_sources(${targetName}
406+
PUBLIC FILE_SET "generatedHeaders"
407+
TYPE HEADERS
408+
FILES ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h # TODO: build file list for this
409+
BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR})
410+
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h PROPERTIES GENERATED 1)
399411

400412
# Add compile definitions and libraries depending on available optional dependencies
401413
if(GPUCA_QA)

0 commit comments

Comments
 (0)