Skip to content

Commit 241f977

Browse files
chaekitfacebook-github-bot
authored andcommitted
Deprecate ClientTraceActivity and merge it with GenericTraceActivity
Summary: 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. Differential Revision: D27353973 fbshipit-source-id: 7830f89a7c6ebb431f7f4e6e70c2ef679d8858db
1 parent b4e71c3 commit 241f977

File tree

11 files changed

+51
-116
lines changed

11 files changed

+51
-116
lines changed

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

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,55 +16,51 @@
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

25-
int64_t deviceId() const override {
23+
[[nodiscard]] int64_t deviceId() const override {
2624
return cachedPid();
2725
}
2826

29-
int64_t resourceId() const override {
27+
[[nodiscard]] int64_t resourceId() const override {
3028
return sysThreadId;
3129
}
3230

33-
int64_t timestamp() const override {
31+
[[nodiscard]] int64_t timestamp() const override {
3432
return startTime;
3533
}
3634

37-
int64_t duration() const override {
35+
[[nodiscard]] int64_t duration() const override {
3836
return endTime - startTime;
3937
}
4038

41-
int64_t correlationId() const override {
39+
[[nodiscard]] int64_t correlationId() const override {
4240
return correlation;
4341
}
4442

45-
ActivityType type() const override {
46-
return ActivityType::CPU_OP;
43+
[[nodiscard]] ActivityType type() const override {
44+
return activityType;
4745
}
4846

49-
const std::string name() const override {
47+
[[nodiscard]] const std::string name() const override {
5048
return opType;
5149
}
5250

53-
const TraceActivity* linkedActivity() const override {
51+
[[nodiscard]] 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) {
63-
auto kv = fmt::format("\"{}\": {}", key, value);
59+
auto kv = fmt::format("{}: {}", key, value);
6460
metadata_.push_back(std::move(kv));
6561
}
6662

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

@@ -75,6 +71,7 @@ struct ClientTraceActivity : TraceActivity {
7571
// TODO: Add OS abstraction
7672
int32_t sysThreadId{0};
7773
std::string opType;
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/output_base.h renamed to libkineto/include/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/ActivityProfiler.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,10 @@ inline void ActivityProfiler::handleCorrelationActivity(
227227
}
228228
#endif // HAS_CUPTI
229229

230-
const libkineto::ClientTraceActivity&
231-
ActivityProfiler::ExternalEventMap::getClientTraceActivity(
230+
const libkineto::GenericTraceActivity&
231+
ActivityProfiler::ExternalEventMap::getGenericTraceActivity(
232232
uint32_t id, CorrelationFlowType flowType) {
233-
static const libkineto::ClientTraceActivity nullOp_{};
233+
static const libkineto::GenericTraceActivity nullOp_{};
234234

235235
auto& correlationMap = getCorrelationMap(flowType);
236236

@@ -245,7 +245,7 @@ ActivityProfiler::ExternalEventMap::getClientTraceActivity(
245245
}
246246

247247
void ActivityProfiler::ExternalEventMap::insertEvent(
248-
const libkineto::ClientTraceActivity* op) {
248+
const libkineto::GenericTraceActivity* op) {
249249
if (events_[op->correlationId()] != nullptr) {
250250
LOG_EVERY_N(WARNING, 100)
251251
<< "Events processed out of order - link will be missing";
@@ -269,12 +269,12 @@ static void initUserGpuSpan(GenericTraceActivity& userTraceActivity,
269269
const libkineto::TraceActivity& cpuTraceActivity,
270270
const libkineto::TraceActivity& gpuTraceActivity) {
271271
userTraceActivity.device = gpuTraceActivity.deviceId();
272-
userTraceActivity.resource = gpuTraceActivity.resourceId();
273272
userTraceActivity.startTime = gpuTraceActivity.timestamp();
273+
userTraceActivity.sysThreadId = gpuTraceActivity.timestamp();
274274
userTraceActivity.endTime = gpuTraceActivity.timestamp() + gpuTraceActivity.duration();
275275
userTraceActivity.correlation = cpuTraceActivity.correlationId();
276276
userTraceActivity.activityType = cpuTraceActivity.type();
277-
userTraceActivity.activityName = cpuTraceActivity.name();
277+
userTraceActivity.opType = cpuTraceActivity.name();
278278
}
279279

280280
void ActivityProfiler::GpuUserEventMap::insertOrExtendEvent(
@@ -330,8 +330,8 @@ inline void ActivityProfiler::handleRuntimeActivity(
330330
VLOG(2) << activity->correlationId
331331
<< ": CUPTI_ACTIVITY_KIND_RUNTIME, cbid=" << activity->cbid
332332
<< " tid=" << activity->threadId;
333-
const ClientTraceActivity& ext =
334-
externalEvents_.getClientTraceActivity(activity->correlationId,
333+
const GenericTraceActivity& ext =
334+
externalEvents_.getGenericTraceActivity(activity->correlationId,
335335
ExternalEventMap::CorrelationFlowType::Default);
336336
int32_t tid = activity->threadId;
337337
const auto& it = threadInfo_.find(tid);
@@ -396,8 +396,8 @@ inline void ActivityProfiler::handleGpuActivity(
396396
if (!loggingDisabled(ext)) {
397397
act.log(*logger);
398398
updateGpuNetSpan(act);
399-
const ClientTraceActivity& extUser =
400-
externalEvents_.getClientTraceActivity(act.correlationId(),
399+
const GenericTraceActivity& extUser =
400+
externalEvents_.getGenericTraceActivity(act.correlationId(),
401401
ExternalEventMap::CorrelationFlowType::User);
402402
// Correlated CPU activity cannot have timestamp greater than the GPU activity's
403403
if (!timestampsInCorrectOrder(extUser, act)) {
@@ -414,7 +414,7 @@ inline void ActivityProfiler::handleGpuActivity(
414414

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

libkineto/src/ActivityProfiler.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ class ActivityProfiler {
122122
};
123123

124124
// The correlation id of the GPU activity
125-
const libkineto::ClientTraceActivity& getClientTraceActivity(
125+
const libkineto::GenericTraceActivity& getGenericTraceActivity(
126126
uint32_t correlation_id, CorrelationFlowType flowType);
127-
void insertEvent(const libkineto::ClientTraceActivity* op);
127+
void insertEvent(const libkineto::GenericTraceActivity* op);
128128

129129
void addCorrelation(uint64_t external_id, uint32_t cuda_id, CorrelationFlowType flowType);
130130

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

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

libkineto/src/GenericTraceActivity.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010

1111
using namespace libkineto;
1212

13-
namespace KINETO_NAMESPACE {
13+
namespace libkineto {
1414
void GenericTraceActivity::log(ActivityLogger& logger) const {
15+
if (activityType == ActivityType::CPU_OP) {
16+
return;
17+
}
18+
1519
logger.handleGenericActivity(*this);
1620
}
17-
} // namespace KINETO_NAMESPACE
21+
} // namespace libkineto

libkineto/src/GenericTraceActivity.h

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

libkineto/src/output_json.cpp

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

167167
void ChromeTraceLogger::handleCpuActivity(
168-
const libkineto::ClientTraceActivity& op,
168+
const libkineto::GenericTraceActivity& op,
169169
const TraceSpan& span) {
170170
if (!traceOf_) {
171171
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));
@@ -123,7 +123,7 @@ class MemoryTraceLogger : public ActivityLogger {
123123

124124
struct CpuActivityDecorator : public libkineto::TraceActivity {
125125
CpuActivityDecorator(
126-
const libkineto::ClientTraceActivity& activity,
126+
const libkineto::GenericTraceActivity& activity,
127127
const TraceSpan& span)
128128
: wrappee_(activity), span_(span) {}
129129
int64_t deviceId() const override {return wrappee_.deviceId();}
@@ -139,7 +139,7 @@ class MemoryTraceLogger : public ActivityLogger {
139139
void log(ActivityLogger& logger) const override {
140140
logger.handleCpuActivity(wrappee_, span_);
141141
}
142-
const libkineto::ClientTraceActivity& wrappee_;
142+
const libkineto::GenericTraceActivity& wrappee_;
143143
const TraceSpan span_;
144144
};
145145

0 commit comments

Comments
 (0)