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