Skip to content

Commit b7f637b

Browse files
sraikund16facebook-github-bot
authored andcommitted
Add CUPTI/RoCM versions to traces
Summary: Because of the differences that are emerging between different versions, it would be useful in the metadata we could see which third-party library version we are using. We add them to our kineto traces in this diff. Differential Revision: D62538511
1 parent 76f2334 commit b7f637b

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

libkineto/src/CuptiActivityProfiler.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,12 @@ void CuptiActivityProfiler::logGpuVersions() {
248248
"cuda_runtime_version", std::to_string(cudaRuntimeVersion));
249249
LOGGER_OBSERVER_ADD_METADATA(
250250
"cuda_driver_version", std::to_string(cudaDriverVersion));
251+
addVersionMetadata(
252+
"cupti_version", std::to_string(cuptiVersion));
253+
addVersionMetadata(
254+
"cuda_runtime_version", std::to_string(cudaRuntimeVersion));
255+
addVersionMetadata(
256+
"cuda_driver_version", std::to_string(cudaDriverVersion));
251257

252258
#elif defined(HAS_ROCTRACER)
253259
uint32_t majorVersion = roctracer_version_major();
@@ -267,13 +273,24 @@ void CuptiActivityProfiler::logGpuVersions() {
267273
"hip_runtime_version", std::to_string(hipRuntimeVersion));
268274
LOGGER_OBSERVER_ADD_METADATA(
269275
"hip_driver_version", std::to_string(hipDriverVersion));
276+
addVersionMetadata(
277+
"roctracer_version", roctracerVersion);
278+
addVersionMetadata(
279+
"hip_runtime_version", std::to_string(hipRuntimeVersion));
280+
addVersionMetadata(
281+
"hip_driver_version", std::to_string(hipDriverVersion));
282+
270283
#endif
271284
}
272285

273286
void CuptiActivityProfiler::processTraceInternal(ActivityLogger& logger) {
274287
LOG(INFO) << "Processing " << traceBuffers_->cpu.size() << " CPU buffers";
275288
VLOG(0) << "Profile time range: " << captureWindowStartTime_ << " - "
276289
<< captureWindowEndTime_;
290+
for (auto& pair : versionMetadata_) {
291+
// We already own mutex here so don't bother locking
292+
addMetadata(pair.first, pair.second, false);
293+
}
277294
logger.handleTraceStart(metadata_);
278295
setCpuActivityPresent(false);
279296
setGpuActivityPresent(false);

libkineto/src/CuptiActivityProfiler.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,18 @@ class CuptiActivityProfiler {
214214
}
215215
}
216216

217-
void addMetadata(const std::string& key, const std::string& value) {
218-
std::lock_guard<std::mutex> guard(mutex_);
217+
void addMetadata(const std::string& key, const std::string& value, bool lock_mutex=true) {
218+
if (lock_mutex){
219+
std::lock_guard<std::mutex> guard(mutex_);
220+
}
219221
metadata_[key] = value;
220222
}
221223

224+
void addVersionMetadata(const std::string& key, const std::string& value) {
225+
std::lock_guard<std::mutex> guard(mutex_);
226+
versionMetadata_[key] = value;
227+
}
228+
222229
void addChildActivityProfiler(
223230
std::unique_ptr<IActivityProfiler> profiler) {
224231
std::lock_guard<std::mutex> guard(mutex_);
@@ -528,6 +535,9 @@ class CuptiActivityProfiler {
528535
// Trace metadata
529536
std::unordered_map<std::string, std::string> metadata_;
530537

538+
// Version metadata
539+
std::unordered_map<std::string, std::string> versionMetadata_;
540+
531541
// child activity profilers
532542
std::vector<std::unique_ptr<IActivityProfiler>> profilers_;
533543

0 commit comments

Comments
 (0)