diff --git a/libkineto/include/Config.h b/libkineto/include/Config.h index b7a06e792..d06a18403 100644 --- a/libkineto/include/Config.h +++ b/libkineto/include/Config.h @@ -236,6 +236,10 @@ class Config : public AbstractConfig { activitiesCudaSyncWaitEvents_ = enable; } + [[nodiscard]] bool activitiesEnableCudaSyncEvents() const { + return activitiesEnableCudaSyncEvents_; + } + // Timestamp at which the profiling to start, requested by the user. [[nodiscard]] std::chrono::time_point requestTimestamp() const { @@ -471,6 +475,7 @@ class Config : public AbstractConfig { std::chrono::seconds activitiesWarmupDuration_; int activitiesWarmupIterations_; bool activitiesCudaSyncWaitEvents_; + bool activitiesEnableCudaSyncEvents_; // Enable Profiler Config Options // Temporarily disable shape collection until we re-roll out the feature for diff --git a/libkineto/src/Config.cpp b/libkineto/src/Config.cpp index 03f4e99cb..30aca8df8 100644 --- a/libkineto/src/Config.cpp +++ b/libkineto/src/Config.cpp @@ -80,6 +80,9 @@ constexpr char kActivitiesMaxGpuBufferSizeKey[] = "ACTIVITIES_MAX_GPU_BUFFER_SIZE_MB"; constexpr char kActivitiesDisplayCudaSyncWaitEvents[] = "ACTIVITIES_DISPLAY_CUDA_SYNC_WAIT_EVENTS"; +// Enable all events of type CUpti_ActivitySynchronizationType. +constexpr char kActivitiesEnableCudaSyncEvents[] = + "ACTIVITIES_ENABLE_CUDA_SYNC_EVENTS"; // Client Interface // TODO: keep supporting these older config options, deprecate in the future @@ -245,6 +248,7 @@ Config::Config() activitiesWarmupDuration_(kDefaultActivitiesWarmupDurationSecs), activitiesWarmupIterations_(0), activitiesCudaSyncWaitEvents_(true), + activitiesEnableCudaSyncEvents_(true), activitiesDuration_(kDefaultActivitiesProfileDurationMSecs), activitiesRunIterations_(0), activitiesOnDemandTimestamp_(milliseconds(0)), @@ -440,6 +444,8 @@ bool Config::handleOption(const std::string& name, std::string& val) { activitiesWarmupIterations_ = toInt32(val); } else if (!name.compare(kActivitiesDisplayCudaSyncWaitEvents)) { activitiesCudaSyncWaitEvents_ = toBool(val); + } else if (!name.compare(kActivitiesEnableCudaSyncEvents)) { + activitiesEnableCudaSyncEvents_ = toBool(val); } else if (!name.compare(kRequestTraceID)) { requestTraceID_ = val; } else if (!name.compare(kRequestGroupTraceID)) { @@ -576,6 +582,10 @@ void Config::validate( selectDefaultActivityTypes(); } setActivityDependentConfig(); + + if (!activitiesEnableCudaSyncEvents()) { + selectedActivityTypes_.erase(ActivityType::CUDA_SYNC); + } } void Config::setReportPeriod(milliseconds msecs) {