@@ -1113,6 +1113,22 @@ void CuptiActivityProfiler::toggleCollectionDynamic(const bool enable){
1113
1113
#endif
1114
1114
}
1115
1115
1116
+ void CuptiActivityProfiler::ensureCollectTraceDone () {
1117
+ if (collectTraceThread && collectTraceThread->joinable ()) {
1118
+ std::lock_guard<std::mutex> guard (mutex_);
1119
+ collectTraceThread->join ();
1120
+ collectTraceThread.reset (nullptr );
1121
+ }
1122
+ #endif
1123
+ #ifdef HAS_ROCTRACER
1124
+ if (enable) {
1125
+ cupti_.enableActivities (derivedConfig_->profileActivityTypes ());
1126
+ } else {
1127
+ cupti_.disableActivities (derivedConfig_->profileActivityTypes ());
1128
+ }
1129
+ #endif
1130
+ }
1131
+
1116
1132
void CuptiActivityProfiler::ensureCollectTraceDone () {
1117
1133
if (collectTraceThread && collectTraceThread->joinable ()) {
1118
1134
std::lock_guard<std::mutex> guard (mutex_);
@@ -1204,6 +1220,8 @@ const time_point<system_clock> CuptiActivityProfiler::performRunLoopStep(
1204
1220
std::lock_guard<std::mutex> guard (mutex_);
1205
1221
stopTraceInternal (now);
1206
1222
resetInternal ();
1223
+ LOG (ERROR) << " State: Warmup stopped by CUPTI. (Buffer size configured is " << config_->activitiesMaxGpuBufferSize () / 1024 / 1024 << " MB)" ;
1224
+ UST_LOGGER_MARK_COMPLETED (kWarmUpStage );
1207
1225
VLOG (0 ) << " Warmup -> WaitForRequest" ;
1208
1226
break ;
1209
1227
}
@@ -1298,6 +1316,12 @@ const time_point<system_clock> CuptiActivityProfiler::performRunLoopStep(
1298
1316
return new_wakeup_time;
1299
1317
}
1300
1318
1319
+ // Before processing, we should wait for collectTrace thread to be done.
1320
+ if (collectTraceThread && collectTraceThread->joinable ()) {
1321
+ std::lock_guard<std::mutex> guard (mutex_);
1322
+ collectTraceThread->join ();
1323
+ collectTraceThread.reset (nullptr );
1324
+ }
1301
1325
// Before processing, we should wait for collectTrace thread to be done.
1302
1326
if (collectTraceThread && collectTraceThread->joinable ()) {
1303
1327
std::lock_guard<std::mutex> guard (mutex_);
0 commit comments