Project
Loading...
Searching...
No Matches
GPUDefParametersDefaults.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
14
15// This file contains compile-time constants affecting the GPU performance.
16
17#if !defined(GPUDEFPARAMETERSDEFAULTS_H)
18#define GPUDEFPARAMETERSDEFAULTS_H
19// clang-format off
20
21// Launch bound definition, 3 optional parameters: maxThreads per block, minBlocks per multiprocessor, force number of blocks (not passed to compiler as launch bounds)
22
23// GPU Run Configuration
24#if defined(GPUCA_GPUCODE) && !defined(GPUCA_GPUCODE_GENRTC) && !defined(GPUCA_GPUCODE_NO_LAUNCH_BOUNDS) // Avoid including for RTC generation besides normal include protection.
25 // GPU-architecture-dependent default settings
26 #if defined(GPUCA_GPUTYPE_MI2xx)
27 #define GPUCA_WARP_SIZE 64
28 #define GPUCA_THREAD_COUNT_DEFAULT 256
29 #define GPUCA_LB_GPUTPCCreateTrackingData 256
30 #define GPUCA_LB_GPUTPCStartHitsSorter 512, 1
31 #define GPUCA_LB_GPUTPCStartHitsFinder 1024
32 #define GPUCA_LB_GPUTPCTrackletConstructor 512, 2
33 #define GPUCA_LB_GPUTPCTrackletSelector 192, 3
34 #define GPUCA_LB_GPUTPCNeighboursFinder 1024, 1
35 #define GPUCA_LB_GPUTPCNeighboursCleaner 896
36 #define GPUCA_LB_GPUTPCExtrapolationTracking 256
37 #define GPUCA_LB_GPUTPCCFDecodeZS 64, 4
38 #define GPUCA_LB_GPUTPCCFDecodeZSLink GPUCA_WARP_SIZE
39 #define GPUCA_LB_GPUTPCCFDecodeZSDenseLink GPUCA_WARP_SIZE
40 #define GPUCA_LB_GPUTPCCFGather 1024, 1
41 #define GPUCA_LB_GPUTPCGMMergerTrackFit 128, 1
42 #define GPUCA_LB_GPUTPCGMMergerFollowLoopers 64, 12
43 #define GPUCA_LB_GPUTPCGMMergerSectorRefit 256
44 #define GPUCA_LB_GPUTPCGMMergerUnpackResetIds 256
45 #define GPUCA_LB_GPUTPCGMMergerUnpackGlobal 256
46 #define GPUCA_LB_GPUTPCGMMergerResolve_step0 512
47 #define GPUCA_LB_GPUTPCGMMergerResolve_step1 512
48 #define GPUCA_LB_GPUTPCGMMergerResolve_step2 512
49 #define GPUCA_LB_GPUTPCGMMergerResolve_step3 512
50 #define GPUCA_LB_GPUTPCGMMergerResolve_step4 512
51 #define GPUCA_LB_GPUTPCGMMergerClearLinks 256
52 #define GPUCA_LB_GPUTPCGMMergerMergeWithinPrepare 256
53 #define GPUCA_LB_GPUTPCGMMergerMergeSectorsPrepare 256
54 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step0 512
55 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step2 512
56 #define GPUCA_LB_GPUTPCGMMergerMergeCE 512
57 #define GPUCA_LB_GPUTPCGMMergerLinkExtrapolatedTracks 256
58 #define GPUCA_LB_GPUTPCGMMergerCollect 512
59 #define GPUCA_LB_GPUTPCGMMergerSortTracksPrepare 256
60 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step0 256
61 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step1 256
62 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step2 256
63 #define GPUCA_LB_GPUTPCGMMergerFinalize_0 256
64 #define GPUCA_LB_GPUTPCGMMergerFinalize_1 256
65 #define GPUCA_LB_GPUTPCGMMergerFinalize_2 256
66 #define GPUCA_LB_GPUTPCCompressionKernels_step0attached 64, 2
67 #define GPUCA_LB_GPUTPCCompressionKernels_step1unattached 512, 2
68 #define GPUCA_LB_GPUTPCDecompressionKernels_step0attached 128, 2
69 #define GPUCA_LB_GPUTPCDecompressionKernels_step1unattached 64, 2
70 #define GPUCA_LB_GPUTPCCFCheckPadBaseline 64
71 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillIndexMap 512
72 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillFromDigits 512
73 #define GPUCA_LB_GPUTPCCFChargeMapFiller_findFragmentStart 512
74 #define GPUCA_LB_GPUTPCCFPeakFinder 512
75 #define GPUCA_LB_GPUTPCCFNoiseSuppression 512
76 #define GPUCA_LB_GPUTPCCFDeconvolution 512
77 #define GPUCA_LB_GPUTPCCFClusterizer 448
78 #define GPUCA_LB_COMPRESSION_GATHER 1024
79 #define GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP 5
80 #define GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE 20
81 #define GPUCA_PAR_ALTERNATE_BORDER_SORT 1
82 #define GPUCA_PAR_SORT_BEFORE_FIT 1
83 #define GPUCA_PAR_NO_ATOMIC_PRECHECK 1
84 #define GPUCA_PAR_DEDX_STORAGE_TYPE uint16_t
85 #define GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE half
86 #define GPUCA_PAR_COMP_GATHER_KERNEL 4
87 #define GPUCA_PAR_COMP_GATHER_MODE 3
88 #elif defined(GPUCA_GPUTYPE_VEGA)
89 #define GPUCA_WARP_SIZE 64
90 #define GPUCA_THREAD_COUNT_DEFAULT 256
91 #define GPUCA_LB_GPUTPCCreateTrackingData 128
92 #define GPUCA_LB_GPUTPCStartHitsSorter 1024, 2
93 #define GPUCA_LB_GPUTPCStartHitsFinder 1024
94 #define GPUCA_LB_GPUTPCTrackletConstructor 256, 2
95 #define GPUCA_LB_GPUTPCTrackletSelector 256, 8
96 #define GPUCA_LB_GPUTPCNeighboursFinder 1024, 1
97 #define GPUCA_LB_GPUTPCNeighboursCleaner 896
98 #define GPUCA_LB_GPUTPCExtrapolationTracking 256
99 #define GPUCA_LB_GPUTPCCFDecodeZS 64, 4
100 #define GPUCA_LB_GPUTPCCFDecodeZSLink GPUCA_WARP_SIZE
101 #define GPUCA_LB_GPUTPCCFDecodeZSDenseLink GPUCA_WARP_SIZE
102 #define GPUCA_LB_GPUTPCCFGather 1024, 1
103 #define GPUCA_LB_GPUTPCGMMergerTrackFit 64, 1
104 #define GPUCA_LB_GPUTPCGMMergerFollowLoopers 256, 4, 200
105 #define GPUCA_LB_GPUTPCGMMergerSectorRefit 256
106 #define GPUCA_LB_GPUTPCGMMergerUnpackResetIds 256
107 #define GPUCA_LB_GPUTPCGMMergerUnpackGlobal 256
108 #define GPUCA_LB_GPUTPCGMMergerResolve_step0 256
109 #define GPUCA_LB_GPUTPCGMMergerResolve_step1 256
110 #define GPUCA_LB_GPUTPCGMMergerResolve_step2 256
111 #define GPUCA_LB_GPUTPCGMMergerResolve_step3 256
112 #define GPUCA_LB_GPUTPCGMMergerResolve_step4 256
113 #define GPUCA_LB_GPUTPCGMMergerClearLinks 256
114 #define GPUCA_LB_GPUTPCGMMergerMergeWithinPrepare 256
115 #define GPUCA_LB_GPUTPCGMMergerMergeSectorsPrepare 256
116 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step0 256
117 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step2 256
118 #define GPUCA_LB_GPUTPCGMMergerMergeCE 256
119 #define GPUCA_LB_GPUTPCGMMergerLinkExtrapolatedTracks 256
120 #define GPUCA_LB_GPUTPCGMMergerCollect 512
121 #define GPUCA_LB_GPUTPCGMMergerSortTracksPrepare 256
122 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step0 256
123 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step1 256
124 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step2 256
125 #define GPUCA_LB_GPUTPCGMMergerFinalize_0 256
126 #define GPUCA_LB_GPUTPCGMMergerFinalize_1 256
127 #define GPUCA_LB_GPUTPCGMMergerFinalize_2 256
128 #define GPUCA_LB_GPUTPCCompressionKernels_step0attached 192, 2
129 #define GPUCA_LB_GPUTPCCompressionKernels_step1unattached 512, 2
130 #define GPUCA_LB_GPUTPCDecompressionKernels_step0attached 128, 2
131 #define GPUCA_LB_GPUTPCDecompressionKernels_step1unattached 64, 2
132 #define GPUCA_LB_GPUTPCCFCheckPadBaseline 64
133 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillIndexMap 512
134 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillFromDigits 512
135 #define GPUCA_LB_GPUTPCCFChargeMapFiller_findFragmentStart 512
136 #define GPUCA_LB_GPUTPCCFPeakFinder 512
137 #define GPUCA_LB_GPUTPCCFNoiseSuppression 512
138 #define GPUCA_LB_GPUTPCCFDeconvolution 512
139 #define GPUCA_LB_GPUTPCCFClusterizer 512
140 #define GPUCA_LB_COMPRESSION_GATHER 1024
141 #define GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP 5
142 #define GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE 20
143 #define GPUCA_PAR_ALTERNATE_BORDER_SORT 1
144 #define GPUCA_PAR_SORT_BEFORE_FIT 1
145 #define GPUCA_PAR_NO_ATOMIC_PRECHECK 1
146 #define GPUCA_PAR_DEDX_STORAGE_TYPE uint16_t
147 #define GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE half
148 #define GPUCA_PAR_COMP_GATHER_KERNEL 4
149 #define GPUCA_PAR_COMP_GATHER_MODE 3
150 #elif defined(GPUCA_GPUTYPE_AMPERE)
151 #define GPUCA_WARP_SIZE 32
152 #define GPUCA_THREAD_COUNT_DEFAULT 512
153 #define GPUCA_LB_GPUTPCCreateTrackingData 384
154 #define GPUCA_LB_GPUTPCStartHitsSorter 512, 1
155 #define GPUCA_LB_GPUTPCStartHitsFinder 512
156 #define GPUCA_LB_GPUTPCTrackletConstructor 256, 2 // best single-kernel: 128, 4
157 #define GPUCA_LB_GPUTPCTrackletSelector 192, 3 // best single-kernel: 128, 4
158 #define GPUCA_LB_GPUTPCNeighboursFinder 640, 1 // best single-kernel: 768, 1
159 #define GPUCA_LB_GPUTPCNeighboursCleaner 512
160 #define GPUCA_LB_GPUTPCExtrapolationTracking 128, 4
161 #define GPUCA_LB_GPUTPCCFDecodeZS 64, 10
162 #define GPUCA_LB_GPUTPCCFDecodeZSLink GPUCA_WARP_SIZE
163 #define GPUCA_LB_GPUTPCCFDecodeZSDenseLink GPUCA_WARP_SIZE
164 #define GPUCA_LB_GPUTPCCFGather 1024, 1
165 #define GPUCA_LB_GPUTPCGMMergerTrackFit 64, 4
166 #define GPUCA_LB_GPUTPCGMMergerFollowLoopers 64, 12
167 #define GPUCA_LB_GPUTPCGMMergerSectorRefit 32, 6
168 #define GPUCA_LB_GPUTPCGMMergerUnpackResetIds 256
169 #define GPUCA_LB_GPUTPCGMMergerUnpackGlobal 256
170 #define GPUCA_LB_GPUTPCGMMergerResolve_step0 256
171 #define GPUCA_LB_GPUTPCGMMergerResolve_step1 256
172 #define GPUCA_LB_GPUTPCGMMergerResolve_step2 256
173 #define GPUCA_LB_GPUTPCGMMergerResolve_step3 256
174 #define GPUCA_LB_GPUTPCGMMergerResolve_step4 256, 4
175 #define GPUCA_LB_GPUTPCGMMergerClearLinks 256
176 #define GPUCA_LB_GPUTPCGMMergerMergeWithinPrepare 256
177 #define GPUCA_LB_GPUTPCGMMergerMergeSectorsPrepare 256, 2
178 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step0 192
179 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step2 64, 2
180 #define GPUCA_LB_GPUTPCGMMergerMergeCE 256
181 #define GPUCA_LB_GPUTPCGMMergerLinkExtrapolatedTracks 256
182 #define GPUCA_LB_GPUTPCGMMergerCollect 256, 2
183 #define GPUCA_LB_GPUTPCGMMergerSortTracksPrepare 256
184 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step0 256
185 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step1 256
186 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step2 256
187 #define GPUCA_LB_GPUTPCGMMergerFinalize_0 256
188 #define GPUCA_LB_GPUTPCGMMergerFinalize_1 256
189 #define GPUCA_LB_GPUTPCGMMergerFinalize_2 256
190 #define GPUCA_LB_GPUTPCCompressionKernels_step0attached 64, 2
191 #define GPUCA_LB_GPUTPCCompressionKernels_step1unattached 512, 3
192 #define GPUCA_LB_GPUTPCDecompressionKernels_step0attached 32, 1
193 #define GPUCA_LB_GPUTPCDecompressionKernels_step1unattached 32, 1
194 #define GPUCA_LB_GPUTPCCFCheckPadBaseline 64,8
195 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillIndexMap 448
196 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillFromDigits 448
197 #define GPUCA_LB_GPUTPCCFChargeMapFiller_findFragmentStart 448
198 #define GPUCA_LB_GPUTPCCFPeakFinder 128
199 #define GPUCA_LB_GPUTPCCFNoiseSuppression 448
200 #define GPUCA_LB_GPUTPCCFDeconvolution 384
201 #define GPUCA_LB_GPUTPCCFClusterizer 448
202 #define GPUCA_LB_COMPRESSION_GATHER 1024
203 #define GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP 4
204 #define GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE 20
205 #define GPUCA_PAR_ALTERNATE_BORDER_SORT 1
206 #define GPUCA_PAR_SORT_BEFORE_FIT 1
207 #define GPUCA_PAR_NO_ATOMIC_PRECHECK 1
208 #define GPUCA_PAR_DEDX_STORAGE_TYPE uint16_t
209 #define GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE half
210 #define GPUCA_PAR_COMP_GATHER_KERNEL 4
211 #define GPUCA_PAR_COMP_GATHER_MODE 3
212 #elif defined(GPUCA_GPUTYPE_TURING)
213 #define GPUCA_WARP_SIZE 32
214 #define GPUCA_THREAD_COUNT_DEFAULT 512
215 #define GPUCA_LB_GPUTPCCreateTrackingData 256
216 #define GPUCA_LB_GPUTPCStartHitsSorter 512, 1
217 #define GPUCA_LB_GPUTPCStartHitsFinder 512
218 #define GPUCA_LB_GPUTPCTrackletConstructor 256, 2
219 #define GPUCA_LB_GPUTPCTrackletSelector 192, 3
220 #define GPUCA_LB_GPUTPCNeighboursFinder 640, 1
221 #define GPUCA_LB_GPUTPCNeighboursCleaner 512
222 #define GPUCA_LB_GPUTPCExtrapolationTracking 192, 2
223 #define GPUCA_LB_GPUTPCCFDecodeZS 64, 8
224 #define GPUCA_LB_GPUTPCCFDecodeZSLink GPUCA_WARP_SIZE
225 #define GPUCA_LB_GPUTPCCFDecodeZSDenseLink GPUCA_WARP_SIZE
226 #define GPUCA_LB_GPUTPCCFGather 1024, 1
227 #define GPUCA_LB_GPUTPCGMMergerTrackFit 32, 8
228 #define GPUCA_LB_GPUTPCGMMergerFollowLoopers 128, 4
229 #define GPUCA_LB_GPUTPCGMMergerSectorRefit 64, 5
230 #define GPUCA_LB_GPUTPCGMMergerUnpackResetIds 256
231 #define GPUCA_LB_GPUTPCGMMergerUnpackGlobal 256
232 #define GPUCA_LB_GPUTPCGMMergerResolve_step0 256
233 #define GPUCA_LB_GPUTPCGMMergerResolve_step1 256
234 #define GPUCA_LB_GPUTPCGMMergerResolve_step2 256
235 #define GPUCA_LB_GPUTPCGMMergerResolve_step3 256
236 #define GPUCA_LB_GPUTPCGMMergerResolve_step4 256, 4
237 #define GPUCA_LB_GPUTPCGMMergerClearLinks 256
238 #define GPUCA_LB_GPUTPCGMMergerMergeWithinPrepare 256
239 #define GPUCA_LB_GPUTPCGMMergerMergeSectorsPrepare 256, 2
240 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step0 192
241 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step2 256
242 #define GPUCA_LB_GPUTPCGMMergerMergeCE 256
243 #define GPUCA_LB_GPUTPCGMMergerLinkExtrapolatedTracks 256
244 #define GPUCA_LB_GPUTPCGMMergerCollect 128, 2
245 #define GPUCA_LB_GPUTPCGMMergerSortTracksPrepare 256
246 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step0 256
247 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step1 256
248 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step2 256
249 #define GPUCA_LB_GPUTPCGMMergerFinalize_0 256
250 #define GPUCA_LB_GPUTPCGMMergerFinalize_1 256
251 #define GPUCA_LB_GPUTPCGMMergerFinalize_2 256
252 #define GPUCA_LB_GPUTPCCompressionKernels_step0attached 128
253 #define GPUCA_LB_GPUTPCCompressionKernels_step1unattached 512, 2
254 #define GPUCA_LB_GPUTPCDecompressionKernels_step0attached 32, 1
255 #define GPUCA_LB_GPUTPCDecompressionKernels_step1unattached 32, 1
256 #define GPUCA_LB_COMPRESSION_GATHER 1024
257 #define GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP 4
258 #define GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE 20
259 #define GPUCA_PAR_ALTERNATE_BORDER_SORT 1
260 #define GPUCA_PAR_SORT_BEFORE_FIT 1
261 #define GPUCA_PAR_NO_ATOMIC_PRECHECK 1
262 #define GPUCA_PAR_COMP_GATHER_KERNEL 4
263 #define GPUCA_PAR_COMP_GATHER_MODE 3
264 #define GPUCA_PAR_DEDX_STORAGE_TYPE uint16_t
265 #define GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE half
266 #elif defined(GPUCA_GPUTYPE_OPENCL)
267 #else
268 #error GPU TYPE NOT SET
269 #endif
270
271 // Default settings for GPU, if not already set for selected GPU type
272 #ifndef GPUCA_WARP_SIZE
273 #define GPUCA_WARP_SIZE 32
274 #endif
275 #ifndef GPUCA_THREAD_COUNT_DEFAULT
276 #define GPUCA_THREAD_COUNT_DEFAULT 256
277 #endif
278 #ifndef GPUCA_LB_GPUTPCCreateTrackingData
279 #define GPUCA_LB_GPUTPCCreateTrackingData 256
280 #endif
281 #ifndef GPUCA_LB_GPUTPCTrackletConstructor
282 #define GPUCA_LB_GPUTPCTrackletConstructor 256
283 #endif
284 #ifndef GPUCA_LB_GPUTPCTrackletSelector
285 #define GPUCA_LB_GPUTPCTrackletSelector 256
286 #endif
287 #ifndef GPUCA_LB_GPUTPCNeighboursFinder
288 #define GPUCA_LB_GPUTPCNeighboursFinder 256
289 #endif
290 #ifndef GPUCA_LB_GPUTPCNeighboursCleaner
291 #define GPUCA_LB_GPUTPCNeighboursCleaner 256
292 #endif
293 #ifndef GPUCA_LB_GPUTPCExtrapolationTracking
294 #define GPUCA_LB_GPUTPCExtrapolationTracking 256
295 #endif
296 #ifndef GPUCA_LB_GPUTRDTrackerKernels_gpuVersion
297 #define GPUCA_LB_GPUTRDTrackerKernels_gpuVersion 512
298 #endif
299 #ifndef GPUCA_LB_GPUTPCCreateOccupancyMap_fill
300 #define GPUCA_LB_GPUTPCCreateOccupancyMap_fill 256
301 #endif
302 #ifndef GPUCA_LB_GPUTPCCreateOccupancyMap_fold
303 #define GPUCA_LB_GPUTPCCreateOccupancyMap_fold 256
304 #endif
305 #ifndef GPUCA_LB_GPUTRDTrackerKernels_o2Version
306 #define GPUCA_LB_GPUTRDTrackerKernels_o2Version 512
307 #endif
308 #ifndef GPUCA_LB_GPUTPCCompressionKernels_step0attached
309 #define GPUCA_LB_GPUTPCCompressionKernels_step0attached 256
310 #endif
311 #ifndef GPUCA_LB_GPUTPCCompressionKernels_step1unattached
312 #define GPUCA_LB_GPUTPCCompressionKernels_step1unattached 256
313 #endif
314 #ifndef GPUCA_LB_GPUTPCDecompressionKernels_step0attached
315 #define GPUCA_LB_GPUTPCDecompressionKernels_step0attached 256
316 #endif
317 #ifndef GPUCA_LB_GPUTPCDecompressionKernels_step1unattached
318 #define GPUCA_LB_GPUTPCDecompressionKernels_step1unattached 256
319 #endif
320 #ifndef GPUCA_LB_GPUTPCDecompressionUtilKernels_sortPerSectorRow
321 #define GPUCA_LB_GPUTPCDecompressionUtilKernels_sortPerSectorRow 256
322 #endif
323 #ifndef GPUCA_LB_GPUTPCDecompressionUtilKernels_countFilteredClusters
324 #define GPUCA_LB_GPUTPCDecompressionUtilKernels_countFilteredClusters 256
325 #endif
326 #ifndef GPUCA_LB_GPUTPCDecompressionUtilKernels_storeFilteredClusters
327 #define GPUCA_LB_GPUTPCDecompressionUtilKernels_storeFilteredClusters 256
328 #endif
329 #ifndef GPUCA_LB_GPUTPCCFDecodeZS
330 #define GPUCA_LB_GPUTPCCFDecodeZS 128, 4
331 #endif
332 #ifndef GPUCA_LB_GPUTPCCFDecodeZSLink
333 #define GPUCA_LB_GPUTPCCFDecodeZSLink GPUCA_WARP_SIZE
334 #endif
335 #ifndef GPUCA_LB_GPUTPCCFDecodeZSDenseLink
336 #define GPUCA_LB_GPUTPCCFDecodeZSDenseLink GPUCA_WARP_SIZE
337 #endif
338 #ifndef GPUCA_LB_GPUTPCCFGather
339 #define GPUCA_LB_GPUTPCCFGather 1024, 1
340 #endif
341 #ifndef GPUCA_LB_COMPRESSION_GATHER
342 #define GPUCA_LB_COMPRESSION_GATHER 1024
343 #endif
344 #ifndef GPUCA_LB_GPUTPCGMMergerTrackFit
345 #define GPUCA_LB_GPUTPCGMMergerTrackFit 256
346 #endif
347 #ifndef GPUCA_LB_GPUTPCGMMergerFollowLoopers
348 #define GPUCA_LB_GPUTPCGMMergerFollowLoopers 256
349 #endif
350 #ifndef GPUCA_LB_GPUTPCGMMergerSectorRefit
351 #define GPUCA_LB_GPUTPCGMMergerSectorRefit 256
352 #endif
353 #ifndef GPUCA_LB_GPUTPCGMMergerUnpackResetIds
354 #define GPUCA_LB_GPUTPCGMMergerUnpackResetIds 256
355 #endif
356 #ifndef GPUCA_LB_GPUTPCGMMergerUnpackGlobal
357 #define GPUCA_LB_GPUTPCGMMergerUnpackGlobal 256
358 #endif
359 #ifndef GPUCA_LB_GPUTPCGMMergerResolve_step0
360 #define GPUCA_LB_GPUTPCGMMergerResolve_step0 256
361 #endif
362 #ifndef GPUCA_LB_GPUTPCGMMergerResolve_step1
363 #define GPUCA_LB_GPUTPCGMMergerResolve_step1 256
364 #endif
365 #ifndef GPUCA_LB_GPUTPCGMMergerResolve_step2
366 #define GPUCA_LB_GPUTPCGMMergerResolve_step2 256
367 #endif
368 #ifndef GPUCA_LB_GPUTPCGMMergerResolve_step3
369 #define GPUCA_LB_GPUTPCGMMergerResolve_step3 256
370 #endif
371 #ifndef GPUCA_LB_GPUTPCGMMergerResolve_step4
372 #define GPUCA_LB_GPUTPCGMMergerResolve_step4 256
373 #endif
374 #ifndef GPUCA_LB_GPUTPCGMMergerClearLinks
375 #define GPUCA_LB_GPUTPCGMMergerClearLinks 256
376 #endif
377 #ifndef GPUCA_LB_GPUTPCGMMergerMergeWithinPrepare
378 #define GPUCA_LB_GPUTPCGMMergerMergeWithinPrepare 256
379 #endif
380 #ifndef GPUCA_LB_GPUTPCGMMergerMergeSectorsPrepare
381 #define GPUCA_LB_GPUTPCGMMergerMergeSectorsPrepare 256
382 #endif
383 #ifndef GPUCA_LB_GPUTPCGMMergerMergeBorders_step0
384 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step0 256
385 #endif
386 #ifndef GPUCA_LB_GPUTPCGMMergerMergeBorders_step2
387 #define GPUCA_LB_GPUTPCGMMergerMergeBorders_step2 256
388 #endif
389 #ifndef GPUCA_LB_GPUTPCGMMergerMergeCE
390 #define GPUCA_LB_GPUTPCGMMergerMergeCE 256
391 #endif
392 #ifndef GPUCA_LB_GPUTPCGMMergerLinkExtrapolatedTracks
393 #define GPUCA_LB_GPUTPCGMMergerLinkExtrapolatedTracks 256
394 #endif
395 #ifndef GPUCA_LB_GPUTPCGMMergerCollect
396 #define GPUCA_LB_GPUTPCGMMergerCollect 256
397 #endif
398 #ifndef GPUCA_LB_GPUTPCGMMergerSortTracksPrepare
399 #define GPUCA_LB_GPUTPCGMMergerSortTracksPrepare 256
400 #endif
401 #ifndef GPUCA_LB_GPUTPCGMMergerPrepareForFit_step0
402 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step0 256
403 #endif
404 #ifndef GPUCA_LB_GPUTPCGMMergerPrepareForFit_step1
405 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step1 256
406 #endif
407 #ifndef GPUCA_LB_GPUTPCGMMergerPrepareForFit_step2
408 #define GPUCA_LB_GPUTPCGMMergerPrepareForFit_step2 256
409 #endif
410 #ifndef GPUCA_LB_GPUTPCGMMergerFinalize_step0
411 #define GPUCA_LB_GPUTPCGMMergerFinalize_step0 256
412 #endif
413 #ifndef GPUCA_LB_GPUTPCGMMergerFinalize_step1
414 #define GPUCA_LB_GPUTPCGMMergerFinalize_step1 256
415 #endif
416 #ifndef GPUCA_LB_GPUTPCGMMergerFinalize_step2
417 #define GPUCA_LB_GPUTPCGMMergerFinalize_step2 256
418 #endif
419 #ifndef GPUCA_LB_GPUTPCGMMergerMergeLoopers_step0
420 #define GPUCA_LB_GPUTPCGMMergerMergeLoopers_step0 256
421 #endif
422 #ifndef GPUCA_LB_GPUTPCGMMergerMergeLoopers_step1
423 #define GPUCA_LB_GPUTPCGMMergerMergeLoopers_step1 256
424 #endif
425 #ifndef GPUCA_LB_GPUTPCGMMergerMergeLoopers_step2
426 #define GPUCA_LB_GPUTPCGMMergerMergeLoopers_step2 256
427 #endif
428 #ifndef GPUCA_LB_GPUTPCGMO2Output_prepare
429 #define GPUCA_LB_GPUTPCGMO2Output_prepare 256
430 #endif
431 #ifndef GPUCA_LB_GPUTPCGMO2Output_output
432 #define GPUCA_LB_GPUTPCGMO2Output_output 256
433 #endif
434 #ifndef GPUCA_LB_GPUTPCStartHitsFinder
435 #define GPUCA_LB_GPUTPCStartHitsFinder 256
436 #endif
437 #ifndef GPUCA_LB_GPUTPCStartHitsSorter
438 #define GPUCA_LB_GPUTPCStartHitsSorter 256
439 #endif
440 #ifndef GPUCA_LB_GPUTPCCFCheckPadBaseline
441 #define GPUCA_LB_GPUTPCCFCheckPadBaseline 64
442 #endif
443 #ifndef GPUCA_LB_GPUTPCCFChargeMapFiller_fillIndexMap
444 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillIndexMap 512
445 #endif
446 #ifndef GPUCA_LB_GPUTPCCFChargeMapFiller_fillFromDigits
447 #define GPUCA_LB_GPUTPCCFChargeMapFiller_fillFromDigits 512
448 #endif
449 #ifndef GPUCA_LB_GPUTPCCFChargeMapFiller_findFragmentStart
450 #define GPUCA_LB_GPUTPCCFChargeMapFiller_findFragmentStart 512
451 #endif
452 #ifndef GPUCA_LB_GPUTPCCFPeakFinder
453 #define GPUCA_LB_GPUTPCCFPeakFinder 512
454 #endif
455 #ifndef GPUCA_LB_GPUTPCCFNoiseSuppression
456 #define GPUCA_LB_GPUTPCCFNoiseSuppression 512
457 #endif
458 #ifndef GPUCA_LB_GPUTPCCFDeconvolution
459 #define GPUCA_LB_GPUTPCCFDeconvolution 512
460 #endif
461 #ifndef GPUCA_LB_GPUTPCCFClusterizer
462 #define GPUCA_LB_GPUTPCCFClusterizer 512
463 #endif
464 #ifndef GPUCA_LB_GPUTPCNNClusterizerKernels
465 #define GPUCA_LB_GPUTPCNNClusterizerKernels 512
466 #endif
467 #ifndef GPUCA_LB_GPUTrackingRefitKernel_mode0asGPU
468 #define GPUCA_LB_GPUTrackingRefitKernel_mode0asGPU 256
469 #endif
470 #ifndef GPUCA_LB_GPUTrackingRefitKernel_mode1asTrackParCov
471 #define GPUCA_LB_GPUTrackingRefitKernel_mode1asTrackParCov 256
472 #endif
473 #ifndef GPUCA_LB_GPUMemClean16
474 #define GPUCA_LB_GPUMemClean16 GPUCA_THREAD_COUNT_DEFAULT, 1
475 #endif
476 #ifndef GPUCA_LB_GPUitoa
477 #define GPUCA_LB_GPUitoa GPUCA_THREAD_COUNT_DEFAULT, 1
478 #endif
479 // These kernel launch-bounds are derrived from one of the constants set above
480 #define GPUCA_LB_GPUTPCCFNoiseSuppression_noiseSuppression GPUCA_LB_GPUTPCCFNoiseSuppression
481 #define GPUCA_LB_GPUTPCCFNoiseSuppression_updatePeaks GPUCA_LB_GPUTPCCFNoiseSuppression
482
483 #define GPUCA_LB_GPUTPCNNClusterizerKernels_runCfClusterizer GPUCA_LB_GPUTPCNNClusterizerKernels
484 #define GPUCA_LB_GPUTPCNNClusterizerKernels_fillInputNNCPU GPUCA_LB_GPUTPCNNClusterizerKernels
485 #define GPUCA_LB_GPUTPCNNClusterizerKernels_fillInputNNGPU GPUCA_LB_GPUTPCNNClusterizerKernels
486 #define GPUCA_LB_GPUTPCNNClusterizerKernels_determineClass1Labels GPUCA_LB_GPUTPCNNClusterizerKernels
487 #define GPUCA_LB_GPUTPCNNClusterizerKernels_determineClass2Labels GPUCA_LB_GPUTPCNNClusterizerKernels
488 #define GPUCA_LB_GPUTPCNNClusterizerKernels_publishClass1Regression GPUCA_LB_GPUTPCNNClusterizerKernels
489 #define GPUCA_LB_GPUTPCNNClusterizerKernels_publishClass2Regression GPUCA_LB_GPUTPCNNClusterizerKernels
490 #define GPUCA_LB_GPUTPCNNClusterizerKernels_publishDeconvolutionFlags GPUCA_LB_GPUTPCNNClusterizerKernels
491
492 #define GPUCA_LB_GPUTPCCFStreamCompaction_scanStart GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
493 #define GPUCA_LB_GPUTPCCFStreamCompaction_scanUp GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
494 #define GPUCA_LB_GPUTPCCFStreamCompaction_scanTop GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
495 #define GPUCA_LB_GPUTPCCFStreamCompaction_scanDown GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
496 #define GPUCA_LB_GPUTPCCFStreamCompaction_compactDigits GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
497 #define GPUCA_LB_GPUTPCCompressionGatherKernels_unbuffered GPUCA_LB_COMPRESSION_GATHER
498 #define GPUCA_LB_GPUTPCCompressionGatherKernels_buffered32 GPUCA_LB_COMPRESSION_GATHER
499 #define GPUCA_LB_GPUTPCCompressionGatherKernels_buffered64 GPUCA_LB_COMPRESSION_GATHER
500 #define GPUCA_LB_GPUTPCCompressionGatherKernels_buffered128 GPUCA_LB_COMPRESSION_GATHER
501 #define GPUCA_LB_GPUTPCCompressionGatherKernels_multiBlock GPUCA_LB_COMPRESSION_GATHER
502
503 // Defaults for non-LB parameters
504 #ifndef GPUCA_PAR_SORT_STARTHITS
505 #define GPUCA_PAR_SORT_STARTHITS 1
506 #endif
507 #ifndef GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP
508 #define GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP 6
509 #endif
510 #ifndef GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_GLOBAL
511 #define GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_GLOBAL 4
512 #endif
513 #ifndef GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_SHARED
514 #define GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_SHARED 1
515 #endif
516 #ifndef GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE
517 #define GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE 12
518 #endif
519 #ifndef GPUCA_PAR_ALTERNATE_BORDER_SORT
520 #define GPUCA_PAR_ALTERNATE_BORDER_SORT 0
521 #endif
522 #ifndef GPUCA_PAR_SORT_BEFORE_FIT
523 #define GPUCA_PAR_SORT_BEFORE_FIT 0
524 #endif
525 #ifndef GPUCA_PAR_COMP_GATHER_KERNEL
526 #define GPUCA_PAR_COMP_GATHER_KERNEL 0
527 #endif
528 #ifndef GPUCA_PAR_COMP_GATHER_MODE
529 #define GPUCA_PAR_COMP_GATHER_MODE 2
530 #endif
531 #ifndef GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
532 #define GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE 512
533 #endif
534#endif // defined(GPUCA_GPUCODE) && !defined(GPUCA_GPUCODE_GENRTC) && !defined(GPUCA_GPUCODE_NO_LAUNCH_BOUNDS)
535
536#ifndef GPUCA_GPUCODE_GENRTC
537 // Defaults (also for CPU) for non-LB parameters
538 #ifndef GPUCA_PAR_SORT_STARTHITS
539 #define GPUCA_PAR_SORT_STARTHITS 0
540 #endif
541 #ifndef GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP
542 #define GPUCA_PAR_NEIGHBOURS_FINDER_MAX_NNEIGHUP 0
543 #endif
544 #ifndef GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_GLOBAL
545 #define GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_GLOBAL 0
546 #endif
547 #ifndef GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_SHARED
548 #define GPUCA_PAR_NEIGHBOURS_FINDER_UNROLL_SHARED 0
549 #endif
550 #ifndef GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE
551 #define GPUCA_PAR_TRACKLET_SELECTOR_HITS_REG_SIZE 0
552 #endif
553 #ifndef GPUCA_PAR_ALTERNATE_BORDER_SORT
554 #define GPUCA_PAR_ALTERNATE_BORDER_SORT 0
555 #endif
556 #ifndef GPUCA_PAR_SORT_BEFORE_FIT
557 #define GPUCA_PAR_SORT_BEFORE_FIT 0
558 #endif
559 #ifndef GPUCA_PAR_COMP_GATHER_KERNEL
560 #define GPUCA_PAR_COMP_GATHER_KERNEL 0
561 #endif
562 #ifndef GPUCA_PAR_COMP_GATHER_MODE
563 #define GPUCA_PAR_COMP_GATHER_MODE 0
564 #endif
565 #ifndef GPUCA_PAR_NO_ATOMIC_PRECHECK
566 #define GPUCA_PAR_NO_ATOMIC_PRECHECK 0
567 #endif
568 #ifndef GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
569 #define GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE 0
570 #endif
571 #ifndef GPUCA_PAR_DEDX_STORAGE_TYPE
572 #define GPUCA_PAR_DEDX_STORAGE_TYPE float
573 #endif
574 #ifndef GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE
575 #define GPUCA_PAR_MERGER_INTERPOLATION_ERROR_TYPE float
576 #endif
577#endif // GPUCA_GPUCODE_GENRTC
578
579// clang-format on
580#endif // GPUDEFPARAMETERSDEFAULTS_H