Skip to content

Commit a34e1be

Browse files
chaekitfacebook-github-bot
authored andcommitted
Deprecate ClientTraceActivity and merge it with GenericTraceActivity (#56743)
Summary: Pull Request resolved: pytorch/pytorch#56743 Pull Request resolved: #184 as part of the migration to ClientTraceActivity -> GenericTraceActivity, now that all CTA mirrors GTA's data structure, we can safely swap out the symbol name. Reviewed By: gdankel Differential Revision: D27353973 fbshipit-source-id: f965c979ae4562d437ac57200c6ecb58a231fde2
1 parent f60aa9d commit a34e1be

File tree

11 files changed

+45
-111
lines changed

11 files changed

+45
-111
lines changed

libkineto/include/ClientTraceActivity.h renamed to libkineto/include/GenericTraceActivity.h

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@
1616

1717
namespace libkineto {
1818

19-
struct ClientTraceActivity : TraceActivity {
20-
ClientTraceActivity() = default;
21-
ClientTraceActivity(ClientTraceActivity&&) = default;
22-
ClientTraceActivity& operator=(ClientTraceActivity&&) = default;
23-
~ClientTraceActivity() override {}
19+
// @lint-ignore-every CLANGTIDY cppcoreguidelines-non-private-member-variables-in-classes
20+
// @lint-ignore-every CLANGTIDY cppcoreguidelines-pro-type-member-init
21+
struct GenericTraceActivity : TraceActivity {
2422

2523
int64_t deviceId() const override {
2624
return cachedPid();
@@ -43,28 +41,26 @@ struct ClientTraceActivity : TraceActivity {
4341
}
4442

4543
ActivityType type() const override {
46-
return ActivityType::CPU_OP;
44+
return activityType;
4745
}
4846

4947
const std::string name() const override {
50-
return opType;
48+
return activityName;
5149
}
5250

5351
const TraceActivity* linkedActivity() const override {
5452
return nullptr;
5553
}
5654

57-
void log(ActivityLogger& logger) const override {
58-
// Unimplemented by default
59-
}
55+
void log(ActivityLogger& logger) const override;
6056

61-
// Encode client side metadata as a key/value string.
57+
//Encode client side metadata as a key/value string.
6258
void addMetadata(const std::string& key, const std::string& value) {
6359
auto kv = fmt::format("\"{}\": {}", key, value);
6460
metadata_.push_back(std::move(kv));
6561
}
6662

67-
const std::string getMetadata() const {
63+
const std::string getMetadata() const {
6864
return fmt::format("{}", fmt::join(metadata_, ", "));
6965
}
7066

@@ -74,7 +70,8 @@ struct ClientTraceActivity : TraceActivity {
7470
int device{-1};
7571
// TODO: Add OS abstraction
7672
int32_t sysThreadId{0};
77-
std::string opType;
73+
std::string activityName;
74+
ActivityType activityType;
7875

7976
private:
8077
std::vector<std::string> metadata_;

libkineto/include/libkineto.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include "ActivityTraceInterface.h"
2525
#include "ActivityType.h"
2626
#include "ClientInterface.h"
27-
#include "ClientTraceActivity.h"
27+
#include "GenericTraceActivity.h"
2828
#include "TraceSpan.h"
2929

3030
extern "C" {
@@ -39,7 +39,7 @@ class Config;
3939
struct CpuTraceBuffer {
4040
TraceSpan span;
4141
int gpuOpCount;
42-
std::vector<ClientTraceActivity> activities;
42+
std::vector<GenericTraceActivity> activities;
4343
};
4444

4545
class LibkinetoApi {

libkineto/src/ActivityProfiler.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ void ActivityProfiler::processCpuTrace(
184184
CpuGpuSpanPair& span_pair = recordTraceSpan(cpuTrace.span, cpuTrace.gpuOpCount);
185185
TraceSpan& cpu_span = span_pair.first;
186186
for (auto const& act : cpuTrace.activities) {
187-
VLOG(2) << act.correlationId() << ": OP " << act.opType;
187+
VLOG(2) << act.correlationId() << ": OP " << act.activityName;
188188
if (logTrace) {
189189
logger.handleCpuActivity(act, cpu_span);
190190
}
@@ -228,10 +228,10 @@ inline void ActivityProfiler::handleCorrelationActivity(
228228
}
229229
#endif // HAS_CUPTI
230230

231-
const libkineto::ClientTraceActivity&
232-
ActivityProfiler::ExternalEventMap::getClientTraceActivity(
231+
const libkineto::GenericTraceActivity&
232+
ActivityProfiler::ExternalEventMap::getGenericTraceActivity(
233233
uint32_t id, CorrelationFlowType flowType) {
234-
static const libkineto::ClientTraceActivity nullOp_{};
234+
static const libkineto::GenericTraceActivity nullOp_{};
235235

236236
auto& correlationMap = getCorrelationMap(flowType);
237237

@@ -246,7 +246,7 @@ ActivityProfiler::ExternalEventMap::getClientTraceActivity(
246246
}
247247

248248
void ActivityProfiler::ExternalEventMap::insertEvent(
249-
const libkineto::ClientTraceActivity* op) {
249+
const libkineto::GenericTraceActivity* op) {
250250
if (events_[op->correlationId()] != nullptr) {
251251
LOG_EVERY_N(WARNING, 100)
252252
<< "Events processed out of order - link will be missing";
@@ -270,8 +270,8 @@ static void initUserGpuSpan(GenericTraceActivity& userTraceActivity,
270270
const libkineto::TraceActivity& cpuTraceActivity,
271271
const libkineto::TraceActivity& gpuTraceActivity) {
272272
userTraceActivity.device = gpuTraceActivity.deviceId();
273-
userTraceActivity.resource = gpuTraceActivity.resourceId();
274273
userTraceActivity.startTime = gpuTraceActivity.timestamp();
274+
userTraceActivity.sysThreadId = gpuTraceActivity.resourceId();
275275
userTraceActivity.endTime = gpuTraceActivity.timestamp() + gpuTraceActivity.duration();
276276
userTraceActivity.correlation = cpuTraceActivity.correlationId();
277277
userTraceActivity.activityType = cpuTraceActivity.type();
@@ -331,8 +331,8 @@ inline void ActivityProfiler::handleRuntimeActivity(
331331
VLOG(2) << activity->correlationId
332332
<< ": CUPTI_ACTIVITY_KIND_RUNTIME, cbid=" << activity->cbid
333333
<< " tid=" << activity->threadId;
334-
const ClientTraceActivity& ext =
335-
externalEvents_.getClientTraceActivity(activity->correlationId,
334+
const GenericTraceActivity& ext =
335+
externalEvents_.getGenericTraceActivity(activity->correlationId,
336336
ExternalEventMap::CorrelationFlowType::Default);
337337
int32_t tid = activity->threadId;
338338
const auto& it = threadInfo_.find(tid);
@@ -397,8 +397,8 @@ inline void ActivityProfiler::handleGpuActivity(
397397
if (!loggingDisabled(ext)) {
398398
act.log(*logger);
399399
updateGpuNetSpan(act);
400-
const ClientTraceActivity& extUser =
401-
externalEvents_.getClientTraceActivity(act.correlationId(),
400+
const GenericTraceActivity& extUser =
401+
externalEvents_.getGenericTraceActivity(act.correlationId(),
402402
ExternalEventMap::CorrelationFlowType::User);
403403
// Correlated CPU activity cannot have timestamp greater than the GPU activity's
404404
if (!timestampsInCorrectOrder(extUser, act)) {
@@ -415,7 +415,7 @@ inline void ActivityProfiler::handleGpuActivity(
415415

416416
template <class T>
417417
inline void ActivityProfiler::handleGpuActivity(const T* act, ActivityLogger* logger) {
418-
const ClientTraceActivity& extDefault = externalEvents_.getClientTraceActivity(act->correlationId,
418+
const GenericTraceActivity& extDefault = externalEvents_.getGenericTraceActivity(act->correlationId,
419419
ExternalEventMap::CorrelationFlowType::Default);
420420
handleGpuActivity(GpuActivity<T>(act, extDefault), logger);
421421
}

libkineto/src/ActivityProfiler.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,9 @@ class ActivityProfiler {
127127
};
128128

129129
// The correlation id of the GPU activity
130-
const libkineto::ClientTraceActivity& getClientTraceActivity(
130+
const libkineto::GenericTraceActivity& getGenericTraceActivity(
131131
uint32_t correlation_id, CorrelationFlowType flowType);
132-
void insertEvent(const libkineto::ClientTraceActivity* op);
132+
void insertEvent(const libkineto::GenericTraceActivity* op);
133133

134134
void addCorrelation(uint64_t external_id, uint32_t cuda_id, CorrelationFlowType flowType);
135135

@@ -145,7 +145,7 @@ class ActivityProfiler {
145145
// but this class also fully owns the objects it is pointing to so
146146
// it's not so bad. This is done for performance reasons and is an
147147
// implementation detail of this class that might change.
148-
std::unordered_map<uint64_t, const libkineto::ClientTraceActivity*>
148+
std::unordered_map<uint64_t, const libkineto::GenericTraceActivity*>
149149
events_;
150150

151151
// Cuda correlation id -> external correlation id for default events

libkineto/src/GenericTraceActivity.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88
#include "GenericTraceActivity.h"
99
#include "output_base.h"
1010

11-
using namespace libkineto;
12-
13-
namespace KINETO_NAMESPACE {
11+
namespace libkineto {
1412
void GenericTraceActivity::log(ActivityLogger& logger) const {
13+
// TODO(T89833634): Merge handleGenericTraceActivity and handleCpuActivity
14+
if (activityType == ActivityType::CPU_OP) {
15+
return;
16+
}
17+
1518
logger.handleGenericActivity(*this);
1619
}
17-
} // namespace KINETO_NAMESPACE
20+
} // namespace libkineto

libkineto/src/GenericTraceActivity.h

Lines changed: 0 additions & 66 deletions
This file was deleted.

libkineto/src/output_base.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,14 @@
1818
#include "CuptiActivity.h"
1919
#endif // HAS_CUPTI
2020
#include "ActivityBuffers.h"
21-
#include "ClientTraceActivity.h"
2221
#include "GenericTraceActivity.h"
2322
#include "ProcessInfo.h"
2423
#include "TraceSpan.h"
2524

2625
namespace KINETO_NAMESPACE {
2726
class Config;
28-
class RuntimeActivity;
2927
class GpuKernelActivity;
28+
struct RuntimeActivity;
3029
}
3130

3231
namespace libkineto {
@@ -48,7 +47,7 @@ class ActivityLogger {
4847
virtual void handleIterationStart(const TraceSpan& span) = 0;
4948

5049
virtual void handleCpuActivity(
51-
const libkineto::ClientTraceActivity& activity,
50+
const libkineto::GenericTraceActivity& activity,
5251
const TraceSpan& span) = 0;
5352

5453
virtual void handleGenericActivity(

libkineto/src/output_json.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ static std::string traceActivityJson(const TraceActivity& activity, std::string
185185
}
186186

187187
void ChromeTraceLogger::handleCpuActivity(
188-
const libkineto::ClientTraceActivity& op,
188+
const libkineto::GenericTraceActivity& op,
189189
const TraceSpan& span) {
190190
if (!traceOf_) {
191191
return;

libkineto/src/output_json.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#ifdef HAS_CUPTI
1717
#include <cupti.h>
1818
#endif
19-
#include "ClientTraceActivity.h"
19+
#include "GenericTraceActivity.h"
2020
#include "output_base.h"
2121

2222
namespace libkineto {
@@ -44,7 +44,7 @@ class ChromeTraceLogger : public libkineto::ActivityLogger {
4444
void handleIterationStart(const TraceSpan& span) override;
4545

4646
void handleCpuActivity(
47-
const libkineto::ClientTraceActivity& activity,
47+
const libkineto::GenericTraceActivity& activity,
4848
const TraceSpan& span) override;
4949

5050
void handleGenericActivity(

libkineto/src/output_membuf.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#endif
1818

1919
#include "Config.h"
20-
#include "ClientTraceActivity.h"
20+
#include "GenericTraceActivity.h"
2121
#ifdef HAS_CUPTI
2222
#include "CuptiActivity.h"
2323
#include "CuptiActivity.tpp"
@@ -55,7 +55,7 @@ class MemoryTraceLogger : public ActivityLogger {
5555
}
5656

5757
void handleCpuActivity(
58-
const libkineto::ClientTraceActivity& activity,
58+
const libkineto::GenericTraceActivity& activity,
5959
const TraceSpan& span) override {
6060
activities_.push_back(
6161
std::make_unique<CpuActivityDecorator>(activity, span));
@@ -129,7 +129,7 @@ class MemoryTraceLogger : public ActivityLogger {
129129

130130
struct CpuActivityDecorator : public libkineto::TraceActivity {
131131
CpuActivityDecorator(
132-
const libkineto::ClientTraceActivity& activity,
132+
const libkineto::GenericTraceActivity& activity,
133133
const TraceSpan& span)
134134
: wrappee_(activity), span_(span) {}
135135
int64_t deviceId() const override {return wrappee_.deviceId();}
@@ -145,7 +145,7 @@ class MemoryTraceLogger : public ActivityLogger {
145145
void log(ActivityLogger& logger) const override {
146146
logger.handleCpuActivity(wrappee_, span_);
147147
}
148-
const libkineto::ClientTraceActivity& wrappee_;
148+
const libkineto::GenericTraceActivity& wrappee_;
149149
const TraceSpan span_;
150150
};
151151

0 commit comments

Comments
 (0)