Skip to content

Commit 9c03aee

Browse files
committed
GPU CMake: Make source for GPU parameters configurable, auto-convert CSV to JSON if necessary
1 parent 4645654 commit 9c03aee

File tree

5 files changed

+130
-1
lines changed

5 files changed

+130
-1
lines changed

GPU/GPUTracking/CMakeLists.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,22 @@ set(SRCS_NO_H SectorTracker/GPUTPCTrackerDump.cxx
107107
Global/GPUChainTrackingDebugAndProfiling.cxx
108108
Global/GPUChainTrackingIO.cxx)
109109

110+
if(GPUCA_OVERRIDE_PARAMETER_FILE)
111+
set(GPU_PARAM_JSON ${GPUCA_OVERRIDE_PARAMETER_FILE})
112+
else()
113+
set(GPU_PARAM_JSON ${CMAKE_CURRENT_SOURCE_DIR}/Definitions/Parameters/GPUParameters.csv)
114+
endif()
115+
get_filename_component(GPU_PARAM_JSON_EXT ${GPU_PARAM_JSON} EXT)
116+
string(TOLOWER "${GPU_PARAM_JSON_EXT}" GPU_PARAM_JSON_EXT)
117+
if(GPU_PARAM_JSON_EXT STREQUAL .csv)
118+
execute_process(
119+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/Definitions/Parameters/csv_to_json.sh "${GPU_PARAM_JSON}"
120+
OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/gpu_parameters.json
121+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
122+
)
123+
set(GPU_PARAM_JSON ${CMAKE_CURRENT_BINARY_DIR}/gpu_parameters.json)
124+
endif()
125+
110126
set(ON_THE_FLY_DIR ${CMAKE_CURRENT_BINARY_DIR}/include_gpu_onthefly)
111127
file(MAKE_DIRECTORY ${ON_THE_FLY_DIR})
112128
include(cmake/gpu_param_header_generator.cmake)
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
Architecture,default,MI100,VEGA,TAHITI,TESLA,FERMI,PASCAL,KEPLER,AMPERE,TURING,default_cpu
2+
,,,,,,,,,,,
3+
CORE:,,,,,,,,,,,
4+
WARP_SIZE,32,64,64,32,32,32,32,32,32,32,
5+
THREAD_COUNT_DEFAULT,256,256,256,,,,,,512,512,
6+
,,,,,,,,,,,
7+
LB:,,,,,,,,,,,
8+
GPUTPCCreateTrackingData,256,"[256, 7]","[192, 2]",,,,,,384,256,
9+
GPUTPCTrackletConstructor,256,"[768, 8]","[512, 10]","[256, 2]","[256, 1]","[256, 2]","[1024, 2]","[512, 4]","[256, 2]","[256, 2]",
10+
GPUTPCTrackletSelector,256,"[384, 5]","[192, 10]","[256, 3]","[256, 1]","[256, 3]","[512, 4]","[256, 3]","[192, 3]","[192, 3]",
11+
GPUTPCNeighboursFinder,256,"[192, 8]","[960, 8]",256,256,256,512,256,"[640, 1]","[640, 1]",
12+
GPUTPCNeighboursCleaner,256,"[128, 5]","[384, 9]",256,256,256,256,256,512,512,
13+
GPUTPCExtrapolationTracking,256,"[256, 7]","[256, 2]",,,,,,"[128, 4]","[192, 2]",
14+
GPUTRDTrackerKernels_gpuVersion,512,,,,,,,,,,
15+
GPUTPCCreateOccupancyMap_fill,256,,,,,,,,,,
16+
GPUTPCCreateOccupancyMap_fold,256,,,,,,,,,,
17+
GPUTRDTrackerKernels_o2Version,512,,,,,,,,,,
18+
GPUTPCCompressionKernels_step0attached,256,"[128, 1]","[64, 2]",,,,,,"[64, 2]",128,
19+
GPUTPCCompressionKernels_step1unattached,256,"[512, 2]","[512, 2]",,,,,,"[512, 3]","[512, 2]",
20+
GPUTPCDecompressionKernels_step0attached,256,"[128, 2]","[128, 2]",,,,,,"[32, 1]","[32, 1]",
21+
GPUTPCDecompressionKernels_step1unattached,256,"[64, 2]","[64, 2]",,,,,,"[32, 1]","[32, 1]",
22+
GPUTPCDecompressionUtilKernels_sortPerSectorRow,256,,,,,,,,,,
23+
GPUTPCDecompressionUtilKernels_countFilteredClusters,256,,,,,,,,,,
24+
GPUTPCDecompressionUtilKernels_storeFilteredClusters,256,,,,,,,,,,
25+
GPUTPCCFDecodeZS,"[128, 4]","[64, 4]","[64, 1]",,,,,,"[64, 10]","[64, 8]",
26+
GPUTPCCFDecodeZSLink,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""",,,,,,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""",
27+
GPUTPCCFDecodeZSDenseLink,"""GPUCA_WARP_SIZE""","[""GPUCA_WARP_SIZE"", 4]","[""GPUCA_WARP_SIZE"", 14]",,,,,,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""",
28+
GPUTPCCFGather,"[1024, 1]","[1024, 5]","[1024, 1]",,,,,,"[1024, 1]","[1024, 1]",
29+
COMPRESSION_GATHER,1024,1024,1024,,,,,,1024,1024,
30+
GPUTPCGMMergerTrackFit,256,"[192, 2]","[64, 7]",,,,,,"[64, 4]","[32, 8]",
31+
GPUTPCGMMergerFollowLoopers,256,"[256, 5]","[256, 4]",,,,,,"[64, 12]","[128, 4]",
32+
GPUTPCGMMergerSectorRefit,256,"[64, 4]","[256, 2]",,,,,,"[32, 6]","[64, 5]",
33+
GPUTPCGMMergerUnpackResetIds,256,256,256,,,,,,256,256,
34+
GPUTPCGMMergerUnpackGlobal,256,256,256,,,,,,256,256,
35+
GPUTPCGMMergerResolve_step0,256,512,256,,,,,,256,256,
36+
GPUTPCGMMergerResolve_step1,256,512,256,,,,,,256,256,
37+
GPUTPCGMMergerResolve_step2,256,512,256,,,,,,256,256,
38+
GPUTPCGMMergerResolve_step3,256,512,256,,,,,,256,256,
39+
GPUTPCGMMergerResolve_step4,256,512,256,,,,,,"[256, 4]","[256, 4]",
40+
GPUTPCGMMergerClearLinks,256,256,256,,,,,,256,256,
41+
GPUTPCGMMergerMergeWithinPrepare,256,256,256,,,,,,256,256,
42+
GPUTPCGMMergerMergeSectorsPrepare,256,256,256,,,,,,"[256, 2]","[256, 2]",
43+
GPUTPCGMMergerMergeBorders_step0,256,512,256,,,,,,192,192,
44+
GPUTPCGMMergerMergeBorders_step2,256,512,256,,,,,,"[64, 2]",256,
45+
GPUTPCGMMergerMergeCE,256,512,256,,,,,,256,256,
46+
GPUTPCGMMergerLinkExtrapolatedTracks,256,256,256,,,,,,256,256,
47+
GPUTPCGMMergerCollect,256,"[768, 1]","[1024, 1]",,,,,,"[256, 2]","[128, 2]",
48+
GPUTPCGMMergerSortTracksPrepare,256,256,256,,,,,,256,256,
49+
GPUTPCGMMergerPrepareForFit_step0,256,256,256,,,,,,256,256,
50+
GPUTPCGMMergerPrepareForFit_step1,256,256,256,,,,,,256,256,
51+
GPUTPCGMMergerPrepareForFit_step2,256,256,256,,,,,,256,256,
52+
GPUTPCGMMergerFinalize_step0,256,,256,,,,,,,,
53+
GPUTPCGMMergerFinalize_step1,256,,256,,,,,,,,
54+
GPUTPCGMMergerFinalize_step2,256,,256,,,,,,,,
55+
GPUTPCGMMergerMergeLoopers_step0,256,,,,,,,,,,
56+
GPUTPCGMMergerMergeLoopers_step1,256,,,,,,,,,,
57+
GPUTPCGMMergerMergeLoopers_step2,256,,,,,,,,,,
58+
GPUTPCGMO2Output_prepare,256,,,,,,,,,,
59+
GPUTPCGMO2Output_output,256,,,,,,,,,,
60+
GPUTPCStartHitsFinder,256,"[1024, 2]","[1024, 7]",256,256,256,256,256,512,512,
61+
GPUTPCStartHitsSorter,256,"[1024, 5]","[512, 7]",256,256,256,256,256,"[512, 1]","[512, 1]",
62+
GPUTPCCFCheckPadBaseline,576,"[576, 2]","[576, 2]",,,,,,"[576, 2]",,
63+
GPUTPCCFChargeMapFiller_fillIndexMap,512,512,512,,,,,,448,,
64+
GPUTPCCFChargeMapFiller_fillFromDigits,512,512,512,,,,,,448,,
65+
GPUTPCCFChargeMapFiller_findFragmentStart,512,512,512,,,,,,448,,
66+
GPUTPCCFPeakFinder,512,"[512, 9]","[512, 4]",,,,,,128,,
67+
GPUTPCCFNoiseSuppression,512,512,512,,,,,,448,,
68+
GPUTPCCFDeconvolution,512,"[512, 5]","[512, 5]",,,,,,384,,
69+
GPUTPCCFClusterizer,512,"[448, 3]","[512, 2]",,,,,,448,,
70+
GPUTPCNNClusterizerKernels,512,,,,,,,,,,
71+
GPUTrackingRefitKernel_mode0asGPU,256,,,,,,,,,,
72+
GPUTrackingRefitKernel_mode1asTrackParCov,256,,,,,,,,,,
73+
GPUMemClean16,"[""GPUCA_THREAD_COUNT_DEFAULT"", 1]",,,,,,,,,,
74+
GPUitoa,"[""GPUCA_THREAD_COUNT_DEFAULT"", 1]",,,,,,,,,,
75+
GPUTPCCFNoiseSuppression_noiseSuppression,"""GPUCA_LB_GPUTPCCFNoiseSuppression""",,,,,,,,,,
76+
GPUTPCCFNoiseSuppression_updatePeaks,"""GPUCA_LB_GPUTPCCFNoiseSuppression""",,,,,,,,,,
77+
GPUTPCNNClusterizerKernels_runCfClusterizer,"""GPUCA_LB_GPUTPCNNClusterizerKernels""",,,,,,,,,,
78+
GPUTPCNNClusterizerKernels_fillInputNNCPU,"""GPUCA_LB_GPUTPCNNClusterizerKernels""",,,,,,,,,,
79+
GPUTPCNNClusterizerKernels_fillInputNNGPU,1024,,,,,,,,,,
80+
GPUTPCNNClusterizerKernels_determineClass1Labels,"""GPUCA_LB_GPUTPCNNClusterizerKernels""",,,,,,,,,,
81+
GPUTPCNNClusterizerKernels_determineClass2Labels,"""GPUCA_LB_GPUTPCNNClusterizerKernels""",,,,,,,,,,
82+
GPUTPCNNClusterizerKernels_publishClass1Regression,"""GPUCA_LB_GPUTPCNNClusterizerKernels""",,,,,,,,,,
83+
GPUTPCNNClusterizerKernels_publishClass2Regression,"""GPUCA_LB_GPUTPCNNClusterizerKernels""",,,,,,,,,,
84+
GPUTPCNNClusterizerKernels_publishDeconvolutionFlags,"""GPUCA_LB_GPUTPCNNClusterizerKernels""",,,,,,,,,,
85+
GPUTPCCFStreamCompaction_scanStart,"""GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE""",,,,,,,,,,
86+
GPUTPCCFStreamCompaction_scanUp,"""GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE""",,,,,,,,,,
87+
GPUTPCCFStreamCompaction_scanTop,"""GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE""",,,,,,,,,,
88+
GPUTPCCFStreamCompaction_scanDown,"""GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE""",,,,,,,,,,
89+
GPUTPCCFStreamCompaction_compactDigits,"""GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE""",,,,,,,,,,
90+
GPUTPCCompressionGatherKernels_unbuffered,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
91+
GPUTPCCompressionGatherKernels_buffered32,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
92+
GPUTPCCompressionGatherKernels_buffered64,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
93+
GPUTPCCompressionGatherKernels_buffered128,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
94+
GPUTPCCompressionGatherKernels_multiBlock,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
95+
GPUTPCGMMergerFinalize_0,256,256,,,,,,,256,256,
96+
GPUTPCGMMergerFinalize_1,256,256,,,,,,,256,256,
97+
GPUTPCGMMergerFinalize_2,256,256,,,,,,,256,256,
98+
,,,,,,,,,,,
99+
PAR:,,,,,,,,,,,
100+
AMD_EUS_PER_CU,0,4,4,,,,,,,,0
101+
SORT_STARTHITS,1,,,,,,,,,,0
102+
NEIGHBOURS_FINDER_MAX_NNEIGHUP,6,10,4,,,,,,4,4,0
103+
NEIGHBOURS_FINDER_UNROLL_GLOBAL,4,4,2,,,,,,,,0
104+
NEIGHBOURS_FINDER_UNROLL_SHARED,1,0,0,,,,,,,,0
105+
TRACKLET_SELECTOR_HITS_REG_SIZE,12,9,27,,,,,,20,20,0
106+
ALTERNATE_BORDER_SORT,0,1,1,,,,,,1,1,0
107+
SORT_BEFORE_FIT,0,1,1,,,,,,1,1,0
108+
NO_ATOMIC_PRECHECK,0,1,1,,,,,,1,1,0
109+
DEDX_STORAGE_TYPE,"""float""","""uint16_t""","""uint16_t""",,,,,,"""uint16_t""","""uint16_t""","""float"""
110+
MERGER_INTERPOLATION_ERROR_TYPE,"""float""","""half""","""half""",,,,,,"""half""","""half""","""float"""
111+
COMP_GATHER_KERNEL,0,4,4,,,,,,4,4,0
112+
COMP_GATHER_MODE,2,3,3,,,,,,3,3,0
113+
CF_SCAN_WORKGROUP_SIZE,512,,,,,,,,,,0

GPU/GPUTracking/Definitions/Parameters/GPUParameters.json renamed to GPU/GPUTracking/Definitions/Parameters/GPUParameters.json.example

File renamed without changes.

GPU/GPUTracking/Standalone/cmake/config.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ set(CUDA_COMPUTETARGET "default") # 86 89
4141
#set(GPUCA_CONFIG_COMPILER gcc) # gcc / clang
4242
#set(GPUCA_CONFIG_WERROR 1)
4343
#add_definitions(-DGPUCA_GPU_DEBUG_PRINT)
44+
#set(GPUCA_OVERRIDE_PARAMETER_FILE "foo.csv")

GPU/GPUTracking/cmake/gpu_param_header_generator.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ function(generate_macros json_content output types arch_list arch_list_output)
7373
endfunction()
7474

7575
function(generate_gpu_param_header GPU_ARCH OUT_HEADER)
76-
set(GPU_PARAM_JSON ${CMAKE_CURRENT_SOURCE_DIR}/Definitions/Parameters/GPUParameters.json)
7776
set(TARGET_ARCH "UNKNOWN")
7877
if(GPU_ARCH STREQUAL "AUTO")
7978
detect_gpu_arch("ALL")

0 commit comments

Comments
 (0)