| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -28,7 +28,6 @@ | |||
| 28 | 28 | #error Invalid Compile Definitions, need to build for either AliRoot or O2 or Standalone | |
| 29 | 29 | #endif | |
| 30 | 30 | ||
| 31 | - #define GPUCA_EXTERN_ROW_HITS | ||
| 32 | 31 | #define GPUCA_TRACKLET_SELECTOR_MIN_HITS(QPT) (CAMath::Abs(QPT) > 10 ? 10 : (CAMath::Abs(QPT) > 5 ? 15 : 29)) // Minimum hits should depend on Pt, low Pt tracks can have few hits. 29 Hits default, 15 for < 200 mev, 10 for < 100 mev | |
| 33 | 32 | ||
| 34 | 33 | #define GPUCA_GLOBAL_TRACKING_RANGE 45 // Number of rows from the upped/lower limit to search for global track candidates in for | |
@@ -50,8 +49,6 @@ | |||
| 50 | 49 | #define GPUCA_MERGER_COV_LIMIT 1000 // Abort fit when y/z cov exceed the limit | |
| 51 | 50 | #define GPUCA_MIN_TRACK_PT_DEFAULT 0.010 // Default setting for minimum track Pt at some places | |
| 52 | 51 | ||
| 53 | - #define GPUCA_MAX_SLICE_NTRACK (2 << 24) // Maximum number of tracks per slice (limited by track id format) | ||
| 54 | - | ||
| 55 | 52 | #define GPUCA_MAX_SIN_PHI_LOW 0.99f // Must be preprocessor define because c++ pre 11 cannot use static constexpr for initializes | |
| 56 | 53 | #define GPUCA_MAX_SIN_PHI 0.999f | |
| 57 | 54 | ||
@@ -70,13 +67,11 @@ | |||
| 70 | 67 | #endif | |
| 71 | 68 | #endif | |
| 72 | 69 | ||
| 73 | - //#define GPUCA_MERGER_BY_MC_LABEL | ||
| 74 | - #define GPUCA_REPRODUCIBLE_CLUSTER_SORTING | ||
| 75 | - | ||
| 76 | - //#define GPUCA_FULL_CLUSTERDATA //Store all cluster information in the cluster data, also those not needed for tracking. | ||
| 77 | - //#define GPUCA_TPC_RAW_PROPAGATE_PAD_ROW_TIME //Propagate Pad, Row, Time cluster information to GM | ||
| 78 | - //#define GPUCA_GM_USE_FULL_FIELD //Use offline magnetic field during GMPropagator prolongation | ||
| 79 | - //#define GPUCA_TPC_USE_STAT_ERROR //Use statistical errors from offline in track fit | ||
| 70 | + //#define GPUCA_MERGER_BY_MC_LABEL // Use MC labels for TPC track merging - for performance studies | ||
| 71 | + //#define GPUCA_FULL_CLUSTERDATA // Store all cluster information in the cluster data, also those not needed for tracking. | ||
| 72 | + //#define GPUCA_TPC_RAW_PROPAGATE_PAD_ROW_TIME // Propagate Pad, Row, Time cluster information to GM | ||
| 73 | + //#define GPUCA_GM_USE_FULL_FIELD // Use offline magnetic field during GMPropagator prolongation | ||
| 74 | + //#define GPUCA_TPC_USE_STAT_ERROR // Use statistical errors from offline in track fit | ||
| 80 | 75 | ||
| 81 | 76 | // clang-format on | |
| 82 | 77 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -40,12 +40,13 @@ | |||
| 40 | 40 | #define GPUCA_NEIGHBORSFINDER_REGS REG, (GPUCA_THREAD_COUNT_FINDER, 1) | |
| 41 | 41 | #define GPUCA_NEIGHBOURS_FINDER_MAX_NNEIGHUP 6 | |
| 42 | 42 | #define GPUCA_TRACKLET_SELECTOR_HITS_REG_SIZE 12 | |
| 43 | - //#define GPUCA_USE_TEXTURES | ||
| 43 | + // #define GPUCA_USE_TEXTURES | ||
| 44 | 44 | #elif defined(GPUCA_GPUTYPE_OPENCL) | |
| 45 | 45 | #elif defined(GPUCA_GPUCODE) | |
| 46 | 46 | #error GPU TYPE NOT SET | |
| 47 | 47 | #endif | |
| 48 | 48 | ||
| 49 | + // Default settings, if not already set for selected GPU type | ||
| 49 | 50 | #ifndef GPUCA_BLOCK_COUNT_CONSTRUCTOR_MULTIPLIER | |
| 50 | 51 | #define GPUCA_BLOCK_COUNT_CONSTRUCTOR_MULTIPLIER 2 | |
| 51 | 52 | #endif | |
@@ -91,14 +92,11 @@ | |||
| 91 | 92 | #define GPUCA_MAX_THREADS 1024 | |
| 92 | 93 | #define GPUCA_MAX_STREAMS 32 | |
| 93 | 94 | ||
| 95 | + #define GPUCA_EXTERN_ROW_HITS // Store row hits in separate array outside of tracklets | ||
| 96 | + #define GPUCA_SORT_STARTHITS_GPU // Sort the start hits when running on GPU | ||
| 94 | 97 | #define GPUCA_ROWALIGNMENT uint4 // Align Row Hits and Grid | |
| 95 | 98 | ||
| 96 | - #ifdef GPUCA_USE_TEXTURES | ||
| 97 | - #define GPUCA_TEXTURE_FETCH_CONSTRUCTOR // Fetch data through texture cache | ||
| 98 | - #define GPUCA_TEXTURE_FETCH_NEIGHBORS // Fetch also in Neighbours Finder | ||
| 99 | - #endif | ||
| 100 | - | ||
| 101 | - // #define GPUCA_TRACKLET_CONSTRUCTOR_DO_PROFILE // Output Profiling Data for Tracklet Constructor Tracklet Scheduling | ||
| 99 | + // #define GPUCA_TRACKLET_CONSTRUCTOR_DO_PROFILE // Output Profiling Data for Tracklet Constructor Tracklet Scheduling | ||
| 102 | 100 | ||
| 103 | 101 | #define GPUCA_TRACKLET_SELECTOR_SLICE_COUNT 8 // Currently must be smaller than avaiable MultiProcessors on GPU or will result in wrong results | |
| 104 | 102 | ||
@@ -113,13 +111,24 @@ | |||
| 113 | 111 | #define GPUCA_HOST_MEMORY_SIZE ((size_t) 6 * 1024 * 1024 * 1024) // Size of memory allocated on Host | |
| 114 | 112 | #define GPUCA_GPU_STACK_SIZE ((size_t) 8 * 1024) // Stack size per GPU thread | |
| 115 | 113 | ||
| 114 | + #define GPUCA_MAX_SLICE_NTRACK (2 << 24) // Maximum number of tracks per slice (limited by track id format) | ||
| 115 | + | ||
| 116 | 116 | // #define GPUCA_KERNEL_DEBUGGER_OUTPUT | |
| 117 | 117 | ||
| 118 | 118 | // Some assertions to make sure out parameters are not invalid | |
| 119 | 119 | #ifdef GPUCA_NOCOMPAT | |
| 120 | 120 | static_assert(GPUCA_MAXN > GPUCA_NEIGHBOURS_FINDER_MAX_NNEIGHUP); | |
| 121 | 121 | #endif | |
| 122 | 122 | ||
| 123 | + // Derived parameters | ||
| 124 | + #ifdef GPUCA_USE_TEXTURES | ||
| 125 | + #define GPUCA_TEXTURE_FETCH_CONSTRUCTOR // Fetch data through texture cache | ||
| 126 | + #define GPUCA_TEXTURE_FETCH_NEIGHBORS // Fetch also in Neighbours Finder | ||
| 127 | + #endif | ||
| 128 | + #if defined(GPUCA_SORT_STARTHITS_GPU) && defined(GPUCA_GPUCODE) | ||
| 129 | + #define GPUCA_SORT_STARTHITS | ||
| 130 | + #endif | ||
| 131 | + | ||
| 123 | 132 | // Error Codes for GPU Tracker | |
| 124 | 133 | #define GPUCA_ERROR_NONE 0 | |
| 125 | 134 | #define GPUCA_ERROR_ROWSTARTHIT_OVERFLOW 1 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1207,9 +1207,11 @@ int GPUChainTracking::RunTPCTrackingSlices_internal() | |||
| 1207 | 1207 | DoDebugAndDump(RecoStep::TPCSliceTracking, 4, trk, &GPUTPCTracker::DumpLinks, mDebugFile); | |
| 1208 | 1208 | ||
| 1209 | 1209 | runKernel<GPUTPCStartHitsFinder>({GPUCA_ROW_COUNT - 6, ThreadCount(), useStream}, {iSlice}); | |
| 1210 | + #ifdef GPUCA_SORT_STARTHITS_GPU | ||
| 1210 | 1211 | if (doGPU) { | |
| 1211 | 1212 | runKernel<GPUTPCStartHitsSorter>({BlockCount(), ThreadCount(), useStream}, {iSlice}); | |
| 1212 | 1213 | } | |
| 1214 | + #endif | ||
| 1213 | 1215 | DoDebugAndDump(RecoStep::TPCSliceTracking, 32, trk, &GPUTPCTracker::DumpStartHits, mDebugFile); | |
| 1214 | 1216 | ||
| 1215 | 1217 | if (GetDeviceProcessingSettings().memoryAllocationStrategy == GPUMemoryResource::ALLOCATION_INDIVIDUAL) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -141,7 +141,7 @@ void GPUTPCTracker::SetMaxData(const GPUTrackingInOutPointers& io) | |||
| 141 | 141 | mNMaxTracklets = mRec->MemoryScalers()->NTPCTracklets(mData.NumberOfHits()); | |
| 142 | 142 | mNMaxTracks = mRec->MemoryScalers()->NTPCSectorTracks(mData.NumberOfHits()); | |
| 143 | 143 | mNMaxTrackHits = mRec->MemoryScalers()->NTPCSectorTrackHits(mData.NumberOfHits()); | |
| 144 | - #ifdef GPUCA_SORT_STARTHITS | ||
| 144 | + #ifdef GPUCA_SORT_STARTHITS_GPU | ||
| 145 | 145 | if (mRec->IsGPU()) { | |
| 146 | 146 | if (mNMaxStartHits > mNMaxRowStartHits * GPUCA_ROW_COUNT) { | |
| 147 | 147 | mNMaxStartHits = mNMaxRowStartHits * GPUCA_ROW_COUNT; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments