Skip to content

Commit 7882df8

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 eaf7db3 commit 7882df8

File tree

8 files changed

+54
-310
lines changed

8 files changed

+54
-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: 20 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,19 @@ 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+
file(GENERATE
259+
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/GPUDefParametersLoadPrepareBase
260+
CONTENT "$<JOIN:$<LIST:TRANSFORM,$<TARGET_PROPERTY:O2_GPU_KERNELS,O2_GPU_KERNEL_NAMES>,REPLACE,[^A-Za-z0-9]+,_>,\n>"
261+
)
262+
add_custom_command(
263+
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly/GPUDefParametersLoadPrepare.h
264+
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
265+
COMMENT "Generating GPUDefParametersLoadPrepare.h"
266+
VERBATIM
267+
COMMAND_EXPAND_LISTS
268+
)
269+
270+
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)
262271
include(kernels.cmake)
263272

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

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

400415
# Add compile definitions and libraries depending on available optional dependencies
401416
if(GPUCA_QA)

0 commit comments

Comments
 (0)