Skip to content
Merged
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
48 changes: 23 additions & 25 deletions GPU/GPUTracking/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -428,31 +428,6 @@ target_sources(${targetName}
FILES ${GENERATED_HEADERS_LIST}
BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR})

make_directory(${CMAKE_CURRENT_BINARY_DIR}/genGPUArch)
set(GPU_CONST_PARAM_FILES "")
set(GPU_ARCH_PARAMS_HEADER ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/GPUDefParametersDefaults_OnTheFly.h)
generate_gpu_param_header("ALL" ${GPU_ARCH_PARAMS_HEADER} "GPU_CONST_PARAM_ARCHITECTUES")
foreach(GPU_ARCH ${GPU_CONST_PARAM_ARCHITECTUES})
set(PARAMFILE ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/gpu_const_param_${GPU_ARCH}.par)
add_custom_command(
OUTPUT ${PARAMFILE}
COMMAND bash -c
"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 ${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}")
LIST(APPEND GPU_CONST_PARAM_FILES ${PARAMFILE})
endforeach()

add_custom_target(${MODULE}_GPU_CONST_PARAM_ARCHS ALL DEPENDS ${GPU_CONST_PARAM_FILES})
install(FILES ${GPU_CONST_PARAM_FILES} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/GPU/arch_param)


# Add compile definitions and libraries depending on available optional dependencies
if(GPUCA_QA)
message(STATUS "Building GPU QA")
Expand All @@ -473,6 +448,29 @@ if(CUDA_ENABLED OR OPENCL_ENABLED OR HIP_ENABLED)
if(CMAKE_SYSTEM_NAME MATCHES Darwin)
message(WARNING "GPU Tracking disabled on MacOS")
else()
make_directory(${CMAKE_CURRENT_BINARY_DIR}/genGPUArch)
set(GPU_CONST_PARAM_FILES "")
set(GPU_ARCH_PARAMS_HEADER ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/GPUDefParametersDefaults_OnTheFly.h)
generate_gpu_param_header("ALL" ${GPU_ARCH_PARAMS_HEADER} "GPU_CONST_PARAM_ARCHITECTUES")
foreach(GPU_ARCH ${GPU_CONST_PARAM_ARCHITECTUES})
set(PARAMFILE ${CMAKE_CURRENT_BINARY_DIR}/genGPUArch/gpu_const_param_${GPU_ARCH}.par)
add_custom_command(
OUTPUT ${PARAMFILE}
COMMAND bash -c
"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 ${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}")
LIST(APPEND GPU_CONST_PARAM_FILES ${PARAMFILE})
endforeach()
add_custom_target(${MODULE}_GPU_CONST_PARAM_ARCHS ALL DEPENDS ${GPU_CONST_PARAM_FILES})
install(FILES ${GPU_CONST_PARAM_FILES} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/GPU/arch_param)

if(CUDA_ENABLED)
add_subdirectory(Base/cuda)
endif()
Expand Down
140 changes: 70 additions & 70 deletions GPU/GPUTracking/Definitions/Parameters/GPUParameters.csv
Original file line number Diff line number Diff line change
@@ -1,72 +1,72 @@
Architecture,default,MI100,VEGA,TAHITI,TESLA,FERMI,PASCAL,KEPLER,AMPERE,TURING,default_cpu
Architecture,default,default_cpu,MI100,VEGA,TAHITI,TESLA,FERMI,PASCAL,KEPLER,AMPERE,TURING
,,,,,,,,,,,
CORE:,,,,,,,,,,,
WARP_SIZE,32,64,64,32,32,32,32,32,32,32,
THREAD_COUNT_DEFAULT,256,256,256,,,,,,512,512,
WARP_SIZE,32,,64,64,32,32,32,32,32,32,32
THREAD_COUNT_DEFAULT,256,,256,256,,,,,,512,512
,,,,,,,,,,,
LB:,,,,,,,,,,,
GPUTPCCreateTrackingData,256,"[256, 7]","[192, 2]",,,,,,384,256,
GPUTPCTrackletConstructor,256,"[768, 8]","[512, 10]","[256, 2]","[256, 1]","[256, 2]","[1024, 2]","[512, 4]","[256, 2]","[256, 2]",
GPUTPCTrackletSelector,256,"[384, 5]","[192, 10]","[256, 3]","[256, 1]","[256, 3]","[512, 4]","[256, 3]","[192, 3]","[192, 3]",
GPUTPCNeighboursFinder,256,"[192, 8]","[960, 8]",256,256,256,512,256,"[640, 1]","[640, 1]",
GPUTPCNeighboursCleaner,256,"[128, 5]","[384, 9]",256,256,256,256,256,512,512,
GPUTPCExtrapolationTracking,256,"[256, 7]","[256, 2]",,,,,,"[128, 4]","[192, 2]",
GPUTPCCreateTrackingData,256,,"[256, 7]","[192, 2]",,,,,,384,256
GPUTPCTrackletConstructor,256,,"[768, 8]","[512, 10]","[256, 2]","[256, 1]","[256, 2]","[1024, 2]","[512, 4]","[256, 2]","[256, 2]"
GPUTPCTrackletSelector,256,,"[384, 5]","[192, 10]","[256, 3]","[256, 1]","[256, 3]","[512, 4]","[256, 3]","[192, 3]","[192, 3]"
GPUTPCNeighboursFinder,256,,"[192, 8]","[960, 8]",256,256,256,512,256,"[640, 1]","[640, 1]"
GPUTPCNeighboursCleaner,256,,"[128, 5]","[384, 9]",256,256,256,256,256,512,512
GPUTPCExtrapolationTracking,256,,"[256, 7]","[256, 2]",,,,,,"[128, 4]","[192, 2]"
GPUTRDTrackerKernels_gpuVersion,512,,,,,,,,,,
GPUTPCCreateOccupancyMap_fill,256,,,,,,,,,,
GPUTPCCreateOccupancyMap_fold,256,,,,,,,,,,
GPUTRDTrackerKernels_o2Version,512,,,,,,,,,,
GPUTPCCompressionKernels_step0attached,256,"[128, 1]","[64, 2]",,,,,,"[64, 2]",128,
GPUTPCCompressionKernels_step1unattached,256,"[512, 2]","[512, 2]",,,,,,"[512, 3]","[512, 2]",
GPUTPCDecompressionKernels_step0attached,256,"[128, 2]","[128, 2]",,,,,,"[32, 1]","[32, 1]",
GPUTPCDecompressionKernels_step1unattached,256,"[64, 2]","[64, 2]",,,,,,"[32, 1]","[32, 1]",
GPUTPCCompressionKernels_step0attached,256,,"[128, 1]","[64, 2]",,,,,,"[64, 2]",128
GPUTPCCompressionKernels_step1unattached,256,,"[512, 2]","[512, 2]",,,,,,"[512, 3]","[512, 2]"
GPUTPCDecompressionKernels_step0attached,256,,"[128, 2]","[128, 2]",,,,,,"[32, 1]","[32, 1]"
GPUTPCDecompressionKernels_step1unattached,256,,"[64, 2]","[64, 2]",,,,,,"[32, 1]","[32, 1]"
GPUTPCDecompressionUtilKernels_sortPerSectorRow,256,,,,,,,,,,
GPUTPCDecompressionUtilKernels_countFilteredClusters,256,,,,,,,,,,
GPUTPCDecompressionUtilKernels_storeFilteredClusters,256,,,,,,,,,,
GPUTPCCFDecodeZS,"[128, 4]","[64, 4]","[64, 1]",,,,,,"[64, 10]","[64, 8]",
GPUTPCCFDecodeZSLink,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""",,,,,,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""",
GPUTPCCFDecodeZSDenseLink,"""GPUCA_WARP_SIZE""","[""GPUCA_WARP_SIZE"", 4]","[""GPUCA_WARP_SIZE"", 14]",,,,,,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""",
GPUTPCCFGather,"[1024, 1]","[1024, 5]","[1024, 1]",,,,,,"[1024, 1]","[1024, 1]",
COMPRESSION_GATHER,1024,1024,1024,,,,,,1024,1024,
GPUTPCGMMergerTrackFit,256,"[192, 2]","[64, 7]",,,,,,"[64, 4]","[32, 8]",
GPUTPCGMMergerFollowLoopers,256,"[256, 5]","[256, 4]",,,,,,"[64, 12]","[128, 4]",
GPUTPCGMMergerSectorRefit,256,"[64, 4]","[256, 2]",,,,,,"[32, 6]","[64, 5]",
GPUTPCGMMergerUnpackResetIds,256,256,256,,,,,,256,256,
GPUTPCGMMergerUnpackGlobal,256,256,256,,,,,,256,256,
GPUTPCGMMergerResolve_step0,256,512,256,,,,,,256,256,
GPUTPCGMMergerResolve_step1,256,512,256,,,,,,256,256,
GPUTPCGMMergerResolve_step2,256,512,256,,,,,,256,256,
GPUTPCGMMergerResolve_step3,256,512,256,,,,,,256,256,
GPUTPCGMMergerResolve_step4,256,512,256,,,,,,"[256, 4]","[256, 4]",
GPUTPCGMMergerClearLinks,256,256,256,,,,,,256,256,
GPUTPCGMMergerMergeWithinPrepare,256,256,256,,,,,,256,256,
GPUTPCGMMergerMergeSectorsPrepare,256,256,256,,,,,,"[256, 2]","[256, 2]",
GPUTPCGMMergerMergeBorders_step0,256,512,256,,,,,,192,192,
GPUTPCGMMergerMergeBorders_step2,256,512,256,,,,,,"[64, 2]",256,
GPUTPCGMMergerMergeCE,256,512,256,,,,,,256,256,
GPUTPCGMMergerLinkExtrapolatedTracks,256,256,256,,,,,,256,256,
GPUTPCGMMergerCollect,256,"[768, 1]","[1024, 1]",,,,,,"[256, 2]","[128, 2]",
GPUTPCGMMergerSortTracksPrepare,256,256,256,,,,,,256,256,
GPUTPCGMMergerPrepareForFit_step0,256,256,256,,,,,,256,256,
GPUTPCGMMergerPrepareForFit_step1,256,256,256,,,,,,256,256,
GPUTPCGMMergerPrepareForFit_step2,256,256,256,,,,,,256,256,
GPUTPCGMMergerFinalize_step0,256,,256,,,,,,,,
GPUTPCGMMergerFinalize_step1,256,,256,,,,,,,,
GPUTPCGMMergerFinalize_step2,256,,256,,,,,,,,
GPUTPCCFDecodeZS,"[128, 4]",,"[64, 4]","[64, 1]",,,,,,"[64, 10]","[64, 8]"
GPUTPCCFDecodeZSLink,"""GPUCA_WARP_SIZE""",,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE""",,,,,,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE"""
GPUTPCCFDecodeZSDenseLink,"""GPUCA_WARP_SIZE""",,"[""GPUCA_WARP_SIZE"", 4]","[""GPUCA_WARP_SIZE"", 14]",,,,,,"""GPUCA_WARP_SIZE""","""GPUCA_WARP_SIZE"""
GPUTPCCFGather,"[1024, 1]",,"[1024, 5]","[1024, 1]",,,,,,"[1024, 1]","[1024, 1]"
COMPRESSION_GATHER,1024,,1024,1024,,,,,,1024,1024
GPUTPCGMMergerTrackFit,256,,"[192, 2]","[64, 7]",,,,,,"[64, 4]","[32, 8]"
GPUTPCGMMergerFollowLoopers,256,,"[256, 5]","[256, 4]",,,,,,"[64, 12]","[128, 4]"
GPUTPCGMMergerSectorRefit,256,,"[64, 4]","[256, 2]",,,,,,"[32, 6]","[64, 5]"
GPUTPCGMMergerUnpackResetIds,256,,256,256,,,,,,256,256
GPUTPCGMMergerUnpackGlobal,256,,256,256,,,,,,256,256
GPUTPCGMMergerResolve_step0,256,,512,256,,,,,,256,256
GPUTPCGMMergerResolve_step1,256,,512,256,,,,,,256,256
GPUTPCGMMergerResolve_step2,256,,512,256,,,,,,256,256
GPUTPCGMMergerResolve_step3,256,,512,256,,,,,,256,256
GPUTPCGMMergerResolve_step4,256,,512,256,,,,,,"[256, 4]","[256, 4]"
GPUTPCGMMergerClearLinks,256,,256,256,,,,,,256,256
GPUTPCGMMergerMergeWithinPrepare,256,,256,256,,,,,,256,256
GPUTPCGMMergerMergeSectorsPrepare,256,,256,256,,,,,,"[256, 2]","[256, 2]"
GPUTPCGMMergerMergeBorders_step0,256,,512,256,,,,,,192,192
GPUTPCGMMergerMergeBorders_step2,256,,512,256,,,,,,"[64, 2]",256
GPUTPCGMMergerMergeCE,256,,512,256,,,,,,256,256
GPUTPCGMMergerLinkExtrapolatedTracks,256,,256,256,,,,,,256,256
GPUTPCGMMergerCollect,256,,"[768, 1]","[1024, 1]",,,,,,"[256, 2]","[128, 2]"
GPUTPCGMMergerSortTracksPrepare,256,,256,256,,,,,,256,256
GPUTPCGMMergerPrepareForFit_step0,256,,256,256,,,,,,256,256
GPUTPCGMMergerPrepareForFit_step1,256,,256,256,,,,,,256,256
GPUTPCGMMergerPrepareForFit_step2,256,,256,256,,,,,,256,256
GPUTPCGMMergerFinalize_step0,256,,,256,,,,,,,
GPUTPCGMMergerFinalize_step1,256,,,256,,,,,,,
GPUTPCGMMergerFinalize_step2,256,,,256,,,,,,,
GPUTPCGMMergerMergeLoopers_step0,256,,,,,,,,,,
GPUTPCGMMergerMergeLoopers_step1,256,,,,,,,,,,
GPUTPCGMMergerMergeLoopers_step2,256,,,,,,,,,,
GPUTPCGMO2Output_prepare,256,,,,,,,,,,
GPUTPCGMO2Output_output,256,,,,,,,,,,
GPUTPCStartHitsFinder,256,"[1024, 2]","[1024, 7]",256,256,256,256,256,512,512,
GPUTPCStartHitsSorter,256,"[1024, 5]","[512, 7]",256,256,256,256,256,"[512, 1]","[512, 1]",
GPUTPCCFCheckPadBaseline,576,"[576, 2]","[576, 2]",,,,,,"[576, 2]",,
GPUTPCCFChargeMapFiller_fillIndexMap,512,512,512,,,,,,448,,
GPUTPCCFChargeMapFiller_fillFromDigits,512,512,512,,,,,,448,,
GPUTPCCFChargeMapFiller_findFragmentStart,512,512,512,,,,,,448,,
GPUTPCCFPeakFinder,512,"[512, 9]","[512, 4]",,,,,,128,,
GPUTPCCFNoiseSuppression,512,512,512,,,,,,448,,
GPUTPCCFDeconvolution,512,"[512, 5]","[512, 5]",,,,,,384,,
GPUTPCCFClusterizer,512,"[448, 3]","[512, 2]",,,,,,448,,
GPUTPCStartHitsFinder,256,,"[1024, 2]","[1024, 7]",256,256,256,256,256,512,512
GPUTPCStartHitsSorter,256,,"[1024, 5]","[512, 7]",256,256,256,256,256,"[512, 1]","[512, 1]"
GPUTPCCFCheckPadBaseline,576,,"[576, 2]","[576, 2]",,,,,,"[576, 2]",
GPUTPCCFChargeMapFiller_fillIndexMap,512,,512,512,,,,,,448,
GPUTPCCFChargeMapFiller_fillFromDigits,512,,512,512,,,,,,448,
GPUTPCCFChargeMapFiller_findFragmentStart,512,,512,512,,,,,,448,
GPUTPCCFPeakFinder,512,,"[512, 9]","[512, 4]",,,,,,128,
GPUTPCCFNoiseSuppression,512,,512,512,,,,,,448,
GPUTPCCFDeconvolution,512,,"[512, 5]","[512, 5]",,,,,,384,
GPUTPCCFClusterizer,512,,"[448, 3]","[512, 2]",,,,,,448,
GPUTPCNNClusterizerKernels,512,,,,,,,,,,
GPUTrackingRefitKernel_mode0asGPU,256,,,,,,,,,,
GPUTrackingRefitKernel_mode1asTrackParCov,256,,,,,,,,,,
Expand All @@ -92,22 +92,22 @@ GPUTPCCompressionGatherKernels_buffered32,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,
GPUTPCCompressionGatherKernels_buffered64,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
GPUTPCCompressionGatherKernels_buffered128,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
GPUTPCCompressionGatherKernels_multiBlock,"""GPUCA_LB_COMPRESSION_GATHER""",,,,,,,,,,
GPUTPCGMMergerFinalize_0,256,256,,,,,,,256,256,
GPUTPCGMMergerFinalize_1,256,256,,,,,,,256,256,
GPUTPCGMMergerFinalize_2,256,256,,,,,,,256,256,
GPUTPCGMMergerFinalize_0,256,,256,,,,,,,256,256
GPUTPCGMMergerFinalize_1,256,,256,,,,,,,256,256
GPUTPCGMMergerFinalize_2,256,,256,,,,,,,256,256
,,,,,,,,,,,
PAR:,,,,,,,,,,,
AMD_EUS_PER_CU,0,4,4,,,,,,,,0
SORT_STARTHITS,1,,,,,,,,,,0
NEIGHBOURS_FINDER_MAX_NNEIGHUP,6,10,4,,,,,,4,4,0
NEIGHBOURS_FINDER_UNROLL_GLOBAL,4,4,2,,,,,,,,0
NEIGHBOURS_FINDER_UNROLL_SHARED,1,0,0,,,,,,,,0
TRACKLET_SELECTOR_HITS_REG_SIZE,12,9,27,,,,,,20,20,0
ALTERNATE_BORDER_SORT,0,1,1,,,,,,1,1,0
SORT_BEFORE_FIT,0,1,1,,,,,,1,1,0
NO_ATOMIC_PRECHECK,0,1,1,,,,,,1,1,0
DEDX_STORAGE_TYPE,"""float""","""uint16_t""","""uint16_t""",,,,,,"""uint16_t""","""uint16_t""","""float"""
MERGER_INTERPOLATION_ERROR_TYPE,"""float""","""half""","""half""",,,,,,"""half""","""half""","""float"""
COMP_GATHER_KERNEL,0,4,4,,,,,,4,4,0
COMP_GATHER_MODE,2,3,3,,,,,,3,3,0
CF_SCAN_WORKGROUP_SIZE,512,,,,,,,,,,0
AMD_EUS_PER_CU,0,0,4,4,,,,,,,
SORT_STARTHITS,1,0,,,,,,,,,
NEIGHBOURS_FINDER_MAX_NNEIGHUP,6,0,10,4,,,,,,4,4
NEIGHBOURS_FINDER_UNROLL_GLOBAL,4,0,4,2,,,,,,,
NEIGHBOURS_FINDER_UNROLL_SHARED,1,0,0,0,,,,,,,
TRACKLET_SELECTOR_HITS_REG_SIZE,12,0,9,27,,,,,,20,20
ALTERNATE_BORDER_SORT,0,0,1,1,,,,,,1,1
SORT_BEFORE_FIT,0,0,1,1,,,,,,1,1
NO_ATOMIC_PRECHECK,0,0,1,1,,,,,,1,1
DEDX_STORAGE_TYPE,"""float""","""float""","""uint16_t""","""uint16_t""",,,,,,"""uint16_t""","""uint16_t"""
MERGER_INTERPOLATION_ERROR_TYPE,"""float""","""float""","""half""","""half""",,,,,,"""half""","""half"""
COMP_GATHER_KERNEL,0,0,4,4,,,,,,4,4
COMP_GATHER_MODE,2,0,3,3,,,,,,3,3
CF_SCAN_WORKGROUP_SIZE,512,0,,,,,,,,,
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ for cat in data.values():

cols = 1 + len(arches)
empty = [""] * cols
arches = sorted(arches, key=lambda x: 0 if x.startswith("default") else 1)

with open(sys.argv[2], "w", newline="") as f:
w = csv.writer(f, lineterminator="\n")
Expand Down
2 changes: 1 addition & 1 deletion GPU/GPUTracking/Standalone/tools/dumpGPUDefParam.C
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
// echo -e '#define GPUCA_GPUTYPE_AMPERE\n#define PARAMETER_FILE "GPUDefParametersDefaults.h"\ngInterpreter->AddIncludePath("'`pwd`'/include/GPU");\n.x share/GPU/tools/dumpGPUDefParam.C("default_AMPERE.par")\n.q\n' | root -l -b

#ifndef PARAMETER_FILE
#error Must provide the PARAMETER_FILE as preprocessor define, e.g. -DHEADER_TO_INCLUDE='"GPUDefParametersDefaults.h"'
#error Must provide the PARAMETER_FILE as preprocessor define, e.g. -DPARAMETER_FILE='"GPUDefParametersDefaults.h"'
#endif

#define GPUCA_GPUCODE
Expand Down