in libkineto/src/Config.cpp [235:316]
bool Config::handleOption(const std::string& name, std::string& val) {
// Event Profiler
if (!name.compare(kEventsKey)) {
vector<string> event_names = splitAndTrim(val, ',');
eventNames_.insert(event_names.begin(), event_names.end());
} else if (!name.compare(kMetricsKey)) {
vector<string> metric_names = splitAndTrim(val, ',');
metricNames_.insert(metric_names.begin(), metric_names.end());
} else if (!name.compare(kSamplePeriodKey)) {
samplePeriod_ = milliseconds(toInt32(val));
} else if (!name.compare(kMultiplexPeriodKey)) {
multiplexPeriod_ = milliseconds(toInt32(val));
} else if (!name.compare(kReportPeriodKey)) {
setReportPeriod(seconds(toInt32(val)));
} else if (!name.compare(kSamplesPerReportKey)) {
samplesPerReport_ = toInt32(val);
} else if (!name.compare(kEventsLogFileKey)) {
eventLogFile_ = val;
} else if (!name.compare(kEventsEnabledDevicesKey)) {
eventProfilerDeviceMask_ = createDeviceMask(val);
} else if (!name.compare(kOnDemandDurationKey)) {
eventProfilerOnDemandDuration_ = seconds(toInt32(val));
eventProfilerOnDemandTimestamp_ = timestamp();
} else if (!name.compare(kMaxEventProfilersPerGpuKey)) {
eventProfilerMaxInstancesPerGpu_ = toInt32(val);
} else if (!name.compare(kHeartbeatMonitorPeriodKey)) {
eventProfilerHeartbeatMonitorPeriod_ = seconds(toInt32(val));
}
// Activity Profiler
else if (!name.compare(kActivitiesDurationKey)) {
activitiesDuration_ =
duration_cast<milliseconds>(seconds(toInt32(val)));
activitiesOnDemandTimestamp_ = timestamp();
} else if (!name.compare(kActivityTypesKey)) {
vector<string> activity_types = splitAndTrim(toLower(val), ',');
setActivityTypes(activity_types);
} else if (!name.compare(kActivitiesDurationMsecsKey)) {
activitiesDuration_ = milliseconds(toInt32(val));
activitiesOnDemandTimestamp_ = timestamp();
} else if (!name.compare(kActivitiesIterationsKey)) {
activitiesExternalAPIIterations_ = toInt32(val);
activitiesOnDemandTimestamp_ = timestamp();
} else if (!name.compare(kLogVerboseLevelKey)) {
verboseLogLevel_ = toInt32(val);
} else if (!name.compare(kLogVerboseModulesKey)) {
verboseLogModules_ = splitAndTrim(val, ',');
} else if (!name.compare(kActivitiesEnabledKey)) {
activityProfilerEnabled_ = toBool(val);
} else if (!name.compare(kActivitiesLogFileKey)) {
activitiesLogFile_ = val;
activitiesLogUrl_ = fmt::format("file://{}", val);
activitiesOnDemandTimestamp_ = timestamp();
} else if (!name.compare(kActivitiesMaxGpuBufferSizeKey)) {
activitiesMaxGpuBufferSize_ = toInt32(val) * 1024 * 1024;
} else if (!name.compare(kActivitiesWarmupDurationSecsKey)) {
activitiesWarmupDuration_ = seconds(toInt32(val));
}
// Client Interface
else if (!name.compare(kClientInterfaceEnableOpInputsCollection)) {
enableOpInputsCollection_ = toBool(val);
}
// Common
else if (!name.compare(kRequestTimestampKey)) {
LOG(WARNING) << kRequestTimestampKey
<< " has been deprecated - please use "
<< kProfileStartTimeKey;
requestTimestamp_ = handleRequestTimestamp(toInt64(val));
} else if (!name.compare(kProfileStartTimeKey)) {
profileStartTime_ =
time_point<system_clock>(milliseconds(toInt64(val)));
} else if (!name.compare(kEnableSigUsr2Key)) {
enableSigUsr2_ = toBool(val);
} else if (!name.compare(kEnableIpcFabricKey)) {
enableIpcFabric_ = toBool(val);
} else {
return false;
}
return true;
}