Skip to content

Commit ac19d82

Browse files
committed
GPU: Rename some continuousMaxTimeBin to avoid confusion, improve defaults, and cleanup
1 parent 56ccb8b commit ac19d82

File tree

13 files changed

+40
-38
lines changed

13 files changed

+40
-38
lines changed

Detectors/TPC/qc/src/Tracking.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void Tracking::initialize(outputModes outputMode, bool postprocessOnly)
5151
const auto grp = o2::parameters::GRPObject::loadFrom();
5252
if (grp) {
5353
mQAConfig->configGRP.solenoidBzNominalGPU = GPUO2InterfaceUtils::getNominalGPUBz(*grp);
54-
mQAConfig->configGRP.continuousMaxTimeBin = grp->isDetContinuousReadOut(o2::detectors::DetID::TPC) ? -1 : 0;
54+
mQAConfig->configGRP.grpContinuousMaxTimeBin = grp->isDetContinuousReadOut(o2::detectors::DetID::TPC) ? -1 : 0;
5555
} else {
5656
throw std::runtime_error("Failed to initialize run parameters from GRP");
5757
}

Detectors/TPC/reconstruction/src/TPCTrackingDigitsPreCheck.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ TPCTrackingDigitsPreCheck::precheckModifiedData TPCTrackingDigitsPreCheck::runPr
5353
std::unique_ptr<precheckModifiedDataInternal> retVal = std::make_unique<precheckModifiedDataInternal>();
5454
retVal->tpcDigitsMap = *ptrs->tpcPackedDigits;
5555
const float zsThreshold = config->configReconstruction.tpc.zsThreshold;
56-
const int maxContTimeBin = config->configGRP.continuousMaxTimeBin;
56+
const int maxContTimeBin = config->configGRP.grpContinuousMaxTimeBin;
5757
static bool filterOutOfTF = getenv("TPC_WORKFLOW_FILTER_DIGITS_OUTSIDE_OF_TF") && atoi(getenv("TPC_WORKFLOW_FILTER_DIGITS_OUTSIDE_OF_TF"));
5858
bool updateDigits = (zsThreshold > 0 || filterOutOfTF) && ptrs->tpcZS == nullptr;
5959
const auto& d = ptrs->tpcPackedDigits;

Detectors/TPC/reconstruction/test/testGPUCATracking.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ BOOST_AUTO_TEST_CASE(CATracking_test1)
6363
config.configProcessing.eventDisplay = nullptr; //Ptr to event display backend, for running standalone OpenGL event display
6464

6565
config.configGRP.solenoidBzNominalGPU = solenoidBz;
66-
config.configGRP.continuousMaxTimeBin = continuous ? GPUSettings::TPC_MAX_TF_TIME_BIN : 0; //Number of timebins in timeframe if continuous, 0 otherwise
66+
config.configGRP.grpContinuousMaxTimeBin = continuous ? GPUSettings::TPC_MAX_TF_TIME_BIN : 0; // Number of timebins in timeframe if continuous, 0 otherwise
6767

6868
config.configReconstruction.tpc.nWays = 3; //Should always be 3!
6969
config.configReconstruction.tpc.nWaysOuter = true; //Will create outer param for TRD

Detectors/TPC/workflow/src/EntropyEncoderSpec.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void EntropyEncoderSpec::run(ProcessingContext& pc)
9292
LOG(fatal) << "configKeyValue tpcTriggeredMode does not match GRP isDetContinuousReadOut(TPC) setting";
9393
}
9494

95-
mConfig->configGRP.continuousMaxTimeBin = (GRPGeomHelper::instance().getGRPECS()->getNHBFPerTF() * o2::constants::lhc::LHCMaxBunches + 2 * o2::tpc::constants::LHCBCPERTIMEBIN - 2) / o2::tpc::constants::LHCBCPERTIMEBIN;
95+
mConfig->configGRP.grpContinuousMaxTimeBin = (GRPGeomHelper::instance().getGRPECS()->getNHBFPerTF() * o2::constants::lhc::LHCMaxBunches + 2 * o2::tpc::constants::LHCBCPERTIMEBIN - 2) / o2::tpc::constants::LHCBCPERTIMEBIN;
9696
mConfig->configGRP.solenoidBzNominalGPU = GPUO2InterfaceUtils::getNominalGPUBz(*GRPGeomHelper::instance().getGRPMagField());
9797
mParam->UpdateSettings(&mConfig->configGRP);
9898

GPU/GPUTracking/Base/GPUParam.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ void GPUParam::UpdateSettings(const GPUSettingsGRP* g, const GPUSettingsProcessi
130130
UpdateBzOnly(g->solenoidBzNominalGPU);
131131
par.assumeConstantBz = g->constBz;
132132
par.toyMCEventsFlag = g->homemadeEvents;
133-
par.continuousTracking = g->continuousMaxTimeBin != 0;
134-
continuousMaxTimeBin = g->continuousMaxTimeBin == -1 ? GPUSettings::TPC_MAX_TF_TIME_BIN : g->continuousMaxTimeBin;
133+
par.continuousTracking = g->grpContinuousMaxTimeBin != 0;
134+
continuousMaxTimeBin = g->grpContinuousMaxTimeBin == -1 ? GPUSettings::TPC_MAX_TF_TIME_BIN : g->grpContinuousMaxTimeBin;
135135
}
136136
par.earlyTpcTransform = rec.tpc.forceEarlyTransform == -1 ? (!par.continuousTracking) : rec.tpc.forceEarlyTransform;
137137
qptB5Scaler = CAMath::Abs(bzkG) > 0.1f ? CAMath::Abs(bzkG) / 5.006680f : 1.f; // Repeat here, since passing in g is optional

GPU/GPUTracking/DataTypes/GPUSettings.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ struct GPUSettingsGRP {
5757
float solenoidBzNominalGPU = -5.00668f; // solenoid field strength
5858
int32_t constBz = 0; // for test-MC events with constant Bz
5959
int32_t homemadeEvents = 0; // Toy-MC events
60-
int32_t continuousMaxTimeBin = 0; // 0 for triggered events, -1 for default TF length
60+
int32_t grpContinuousMaxTimeBin = -2; // 0 for triggered events, -1 for automatic setting, -2 invalid default
6161
int32_t needsClusterer = 0; // Set to true if the data requires the clusterizer
6262
int32_t doCompClusterDecode = 0; // Set to true if the data contains compressed TPC clusters
6363
};

GPU/GPUTracking/Definitions/GPUSettingsList.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ AddOption(eventsDir, const char*, "pp", "events", 'e', "Directory with events to
478478
AddOption(noEvents, bool, false, "", 0, "Run without data (e.g. for field visualization)")
479479
AddOption(eventDisplay, int32_t, 0, "display", 'd', "Show standalone event display", def(1))
480480
AddOption(eventGenerator, bool, false, "", 0, "Run event generator")
481-
AddOption(cont, bool, false, "", 0, "Process continuous timeframe data")
481+
AddOption(cont, bool, false, "", 0, "Process continuous timeframe data, even if input is triggered")
482482
AddOption(outputcontrolmem, uint64_t, 0, "outputMemory", 0, "Use predefined output buffer of this size", min(0ul), message("Using %s bytes as output memory"))
483483
AddOption(inputcontrolmem, uint64_t, 0, "inputMemory", 0, "Use predefined input buffer of this size", min(0ul), message("Using %s bytes as input memory"))
484484
AddOption(cpuAffinity, int32_t, -1, "", 0, "Pin CPU affinity to this CPU core", min(-1))
@@ -525,7 +525,7 @@ EndConfig()
525525
BeginSubConfig(GPUSettingsO2, global, configStandalone, "O2", 0, "O2 workflow settings", global)
526526
AddOption(solenoidBzNominalGPU, float, -1e6f, "", 0, "Field strength of solenoid Bz in kGaus")
527527
AddOption(constBz, bool, false, "", 0, "force constant Bz for tests")
528-
AddOption(continuousMaxTimeBin, int32_t, 0, "", 0, "maximum time bin of continuous data, 0 for triggered events, -1 for default of 23ms")
528+
AddOption(setMaxTimeBin, int32_t, -2, "", 0, "maximum time bin of continuous data, 0 for triggered events, -1 for automatic continuous mode, -2 for automatic continuous / triggered")
529529
AddOption(overrideNHbfPerTF, int32_t, 0, "", 0, "Overrides the number of HBF per TF if != 0")
530530
AddOption(deviceType, std::string, "CPU", "", 0, "Device type, CPU | CUDA | HIP | OCL1 | OCL2")
531531
AddOption(forceDeviceType, bool, true, "", 0, "force device type, otherwise allows fall-back to CPU")

GPU/GPUTracking/Global/GPUChainTracking.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ int32_t GPUChainTracking::DoQueuedUpdates(int32_t stream, bool updateSlave)
639639
grp->solenoidBzNominalGPU = mNewCalibValues->solenoidField;
640640
}
641641
if (mNewCalibValues->newContinuousMaxTimeBin) {
642-
grp->continuousMaxTimeBin = mNewCalibValues->continuousMaxTimeBin;
642+
grp->grpContinuousMaxTimeBin = mNewCalibValues->continuousMaxTimeBin;
643643
}
644644
}
645645
}

GPU/GPUTracking/Interface/GPUO2InterfaceConfigurableParam.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,11 @@ GPUSettingsO2 GPUO2InterfaceConfiguration::ReadConfigurableParam(GPUO2InterfaceC
103103
obj.configReconstruction = rec;
104104
obj.configDisplay = display;
105105
obj.configQA = QA;
106-
if (obj.configGRP.continuousMaxTimeBin == 0 || obj.configGRP.continuousMaxTimeBin == -1) {
107-
if (global.continuousMaxTimeBin) {
108-
obj.configGRP.continuousMaxTimeBin = global.continuousMaxTimeBin;
106+
if (obj.configGRP.grpContinuousMaxTimeBin < 0) {
107+
if (global.setMaxTimeBin != -2) {
108+
obj.configGRP.grpContinuousMaxTimeBin = global.setMaxTimeBin;
109109
} else {
110-
obj.configGRP.continuousMaxTimeBin = global.tpcTriggeredMode ? 0 : -1;
110+
obj.configGRP.grpContinuousMaxTimeBin = global.tpcTriggeredMode ? 0 : -1;
111111
}
112112
}
113113
if (global.solenoidBzNominalGPU > -1e6f) {

GPU/GPUTracking/Interface/GPUO2InterfaceUtils.cxx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,30 +83,32 @@ std::unique_ptr<GPUParam> GPUO2InterfaceUtils::getFullParam(float solenoidBz, ui
8383
{
8484
std::unique_ptr<GPUParam> retVal = std::make_unique<GPUParam>();
8585
std::unique_ptr<GPUO2InterfaceConfiguration> tmpConfig;
86+
std::unique_ptr<GPUSettingsO2> tmpSettingsO2;
8687
if (!pConfiguration) {
8788
tmpConfig = std::make_unique<GPUO2InterfaceConfiguration>();
8889
pConfiguration = &tmpConfig;
89-
(*pConfiguration)->configGRP.continuousMaxTimeBin = -1;
90+
(*pConfiguration)->configGRP.grpContinuousMaxTimeBin = -1;
9091
} else if (!*pConfiguration) {
9192
*pConfiguration = std::make_unique<GPUO2InterfaceConfiguration>();
92-
(*pConfiguration)->configGRP.continuousMaxTimeBin = -1;
93+
(*pConfiguration)->configGRP.grpContinuousMaxTimeBin = -1;
9394
}
9495
(*pConfiguration)->configGRP.solenoidBzNominalGPU = solenoidBz;
9596
if (pO2Settings && *pO2Settings) {
9697
**pO2Settings = (*pConfiguration)->ReadConfigurableParam();
97-
} else if (pO2Settings) {
98-
*pO2Settings = std::make_unique<GPUSettingsO2>((*pConfiguration)->ReadConfigurableParam());
9998
} else {
100-
(*pConfiguration)->ReadConfigurableParam();
99+
if (!pO2Settings) {
100+
pO2Settings = &tmpSettingsO2;
101+
}
102+
*pO2Settings = std::make_unique<GPUSettingsO2>((*pConfiguration)->ReadConfigurableParam());
101103
}
102104
if (nHbfPerTf == 0) {
103-
nHbfPerTf = 256;
105+
nHbfPerTf = (*pO2Settings)->overrideNHbfPerTF ? (*pO2Settings)->overrideNHbfPerTF : 256;
104106
}
105107
if (autoMaxTimeBin) {
106-
*autoMaxTimeBin = (*pConfiguration)->configGRP.continuousMaxTimeBin == -1;
108+
*autoMaxTimeBin = (*pConfiguration)->configGRP.grpContinuousMaxTimeBin == -1;
107109
}
108-
if ((*pConfiguration)->configGRP.continuousMaxTimeBin == -1) {
109-
(*pConfiguration)->configGRP.continuousMaxTimeBin = (nHbfPerTf * o2::constants::lhc::LHCMaxBunches + 2 * o2::tpc::constants::LHCBCPERTIMEBIN - 2) / o2::tpc::constants::LHCBCPERTIMEBIN;
110+
if ((*pConfiguration)->configGRP.grpContinuousMaxTimeBin == -1) {
111+
(*pConfiguration)->configGRP.grpContinuousMaxTimeBin = (nHbfPerTf * o2::constants::lhc::LHCMaxBunches + 2 * o2::tpc::constants::LHCBCPERTIMEBIN - 2) / o2::tpc::constants::LHCBCPERTIMEBIN;
110112
}
111113
retVal->SetDefaults(&(*pConfiguration)->configGRP, &(*pConfiguration)->configReconstruction, &(*pConfiguration)->configProcessing, nullptr);
112114
return retVal;

0 commit comments

Comments
 (0)