Skip to content

Commit 0f6bb1e

Browse files
committed
GPU Framework: Add OpenCL support to GPU param header generation + update CFCheckPadBaseline parameters
1 parent a913089 commit 0f6bb1e

File tree

3 files changed

+29
-16
lines changed

3 files changed

+29
-16
lines changed

GPU/GPUTracking/Definitions/Parameters/GPUParameters.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,10 @@
338338
"TURING": [512, 1]
339339
},
340340
"GPUTPCCFCheckPadBaseline": {
341-
"default": 64,
342-
"MI100": [64, 10],
343-
"VEGA": [64, 2],
344-
"AMPERE": [64, 8]
341+
"default": 576,
342+
"MI100": [576, 2],
343+
"VEGA": [576, 2],
344+
"AMPERE": [576, 2]
345345
},
346346
"GPUTPCCFChargeMapFiller_fillIndexMap": {
347347
"default": 512,

GPU/GPUTracking/cmake/gpu_param_header_generator.cmake

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ function(generate_gpu_param_header GPU_ARCH OUT_HEADER)
5858
endif()
5959
file(READ "${GPU_PARAM_JSON}" JSON_CONTENT)
6060
set(TMP_HEADER "${OUT_HEADER}.tmp")
61-
message(STATUS "OUT_HEADER = '${OUT_HEADER}'")
62-
message(STATUS "TMP_HEADER = '${TMP_HEADER}'")
6361
file(WRITE "${TMP_HEADER}" "#ifndef GPUDEFPARAMETERSDEFAULTS_H\n#define GPUDEFPARAMETERSDEFAULTS_H\n\n")
6462
file(APPEND "${TMP_HEADER}" "// This file is auto-generated from gpu_params.json. Do not edit directly.\n")
6563
string(REPLACE "," ";" ARCH_LIST "${TARGET_ARCH}")
@@ -69,19 +67,27 @@ function(generate_gpu_param_header GPU_ARCH OUT_HEADER)
6967
# Types
7068
set(TYPES CORE LB PAR)
7169
# Per architecture definitions
70+
set(_first TRUE)
7271
foreach(ARCH IN LISTS ARCH_LIST)
73-
file(APPEND "${TMP_HEADER}" "#if defined(GPUCA_GPUTYPE_${ARCH})\n\n")
74-
generate_macros("${JSON_CONTENT}" "${TMP_HEADER}" "${TYPES}" "${ARCH}" "")
75-
file(APPEND "${TMP_HEADER}" "\n#endif // GPUCA_GPUTYPE_${ARCH}\n\n")
72+
if(_first)
73+
file(APPEND "${TMP_HEADER}" "#if defined(GPUCA_GPUTYPE_${ARCH})\n\n")
74+
set(_first FALSE)
75+
else()
76+
file(APPEND "${TMP_HEADER}" "#elif defined(GPUCA_GPUTYPE_${ARCH})\n\n")
77+
endif()
78+
generate_macros("${JSON_CONTENT}" "${TMP_HEADER}" "${TYPES}" "${ARCH}" "")
7679
endforeach()
80+
if(NOT _first)
81+
file(APPEND "${TMP_HEADER}" "#else\n#error GPU TYPE NOT SET\n#endif\n")
82+
endif()
7783

7884
# Default parameters
7985
file(APPEND "${TMP_HEADER}" "\n// Default parameters if not defined for the target architecture\n\n")
8086
generate_macros("${JSON_CONTENT}" "${TMP_HEADER}" "${TYPES}" "default" "use_ifndef_guard")
8187
file(APPEND "${TMP_HEADER}" "#endif // defined(GPUCA_GPUCODE) && !defined(GPUCA_GPUCODE_GENRTC) && !defined(GPUCA_GPUCODE_NO_LAUNCH_BOUNDS)\n\n")
8288

8389
# CPU fallback
84-
file(APPEND "${TMP_HEADER}" "#ifndef GPUCA_GPUCODE_GENRTC //Defaults for non-LB parameters also for CPU fallback\n\n") # Get all keys of this TYPE as a semicolon-separated list
90+
file(APPEND "${TMP_HEADER}" "#ifndef GPUCA_GPUCODE_GENRTC //Defaults for non-LB parameters also for CPU fallback\n\n")
8591
generate_macros("${JSON_CONTENT}" "${TMP_HEADER}" "PAR" "default_cpu" "use_ifndef_guard")
8692
file(APPEND "${TMP_HEADER}" "\n#endif // GPUCA_GPUCODE_GENRTC\n")
8793

dependencies/FindO2GPU.cmake

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,21 +73,28 @@ function(detect_gpu_arch backend) # Detect GPU architecture, optionally filterri
7373

7474
if(backend STREQUAL "CUDA") # CUDA filter
7575
set(TARGET_ARCH "${CUDA_TARGET}" PARENT_SCOPE)
76-
return()
7776
elseif(backend STREQUAL "HIP") # HIP filter
7877
set(TARGET_ARCH "${HIP_TARGET}" PARENT_SCOPE)
79-
return()
80-
elseif(backend STREQUAL "ALL") # Return both
81-
set(TARGET_ARCH "${CUDA_TARGET},${HIP_TARGET}" PARENT_SCOPE)
82-
return()
78+
elseif(backend STREQUAL "ALL") # Return enabled backends
79+
set(_archs "")
80+
if(CUDA_ENABLED)
81+
list(APPEND _archs "${CUDA_TARGET}")
82+
endif()
83+
if(HIP_ENABLED)
84+
list(APPEND _archs "${HIP_TARGET}")
85+
endif()
86+
if(OPENCL_ENABLED)
87+
list(APPEND _archs "OPENCL")
88+
endif()
89+
list(JOIN _archs "," TARGET_ARCH)
90+
set(TARGET_ARCH "${TARGET_ARCH}" PARENT_SCOPE)
8391
else()
8492
message(FATAL_ERROR "Unknown backend provided: ${backend}")
8593
endif()
8694
endfunction()
8795

8896
function(set_target_gpu_arch backend target)
8997
detect_gpu_arch("${backend}")
90-
message(STATUS "Compiling for ${TARGET_ARCH}")
9198
target_compile_definitions(${target} PUBLIC GPUCA_GPUTYPE_${TARGET_ARCH})
9299
endfunction()
93100

0 commit comments

Comments
 (0)