Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions libkineto/include/ActivityType.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@
namespace libkineto {

enum class ActivityType {
CPU_OP,
CPU_OP = 0, // cpu side ops
GPU_MEMCPY,
GPU_MEMSET,
CONCURRENT_KERNEL,
CONCURRENT_KERNEL, // on-device kernels
EXTERNAL_CORRELATION,
CUDA_RUNTIME
CUDA_RUNTIME, // host side cuda runtime events
CPU_INSTANT_EVENT, // host side point-like events
};

} // namespace libkineto
2 changes: 2 additions & 0 deletions libkineto/include/GenericTraceActivity.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ struct GenericTraceActivity : TraceActivity {
return fmt::format("{}", fmt::join(metadata_, ", "));
}

virtual ~GenericTraceActivity() {};

int64_t startTime{0};
int64_t endTime{0};
int64_t correlation{0};
Expand Down
2 changes: 1 addition & 1 deletion libkineto/src/ActivityTrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class ActivityTrace : public ActivityTraceInterface {

void save(const std::string& path) override {
ChromeTraceLogger chrome_logger(path, cuptiActivities_.smCount());
return logger_->log(chrome_logger);
logger_->log(chrome_logger);
};

private:
Expand Down
34 changes: 29 additions & 5 deletions libkineto/src/output_json.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,37 @@ static std::string traceActivityJson(const TraceActivity& activity, std::string
// clang-format on
}

void ChromeTraceLogger::handleGenericInstantEvent(
const libkineto::GenericTraceActivity& op) {
if (!traceOf_) {
return;
}

traceOf_ << fmt::format(R"JSON(
{{
"ph": "i", "s": "t", "name": "{}",
"pid": {}, "tid": {},
"ts": {},
"args": {{
{}
}}
}},)JSON",
op.name(), op.deviceId(), op.resourceId(),
op.timestamp(), op.getMetadata());
}

void ChromeTraceLogger::handleCpuActivity(
const libkineto::GenericTraceActivity& op,
const TraceSpan& span) {
if (!traceOf_) {
return;
}

if (op.activityType == ActivityType::CPU_INSTANT_EVENT) {
handleGenericInstantEvent(op);
return;
}

auto op_metadata = op.getMetadata();
std::string separator = "";
if (op_metadata.find_first_not_of(" \t\n") != std::string::npos) {
Expand All @@ -201,9 +225,9 @@ void ChromeTraceLogger::handleCpuActivity(
{{
"ph": "X", "cat": "Operator", {},
"args": {{
"Device": {}, "External id": {},
"Trace name": "{}", "Trace iteration": {} {}
{}
"Device": {}, "External id": {},
"Trace name": "{}", "Trace iteration": {} {}
{}
}}
}},)JSON",
traceActivityJson(op, ""),
Expand All @@ -216,8 +240,8 @@ void ChromeTraceLogger::handleCpuActivity(
}

void ChromeTraceLogger::handleGenericActivity(
const GenericTraceActivity& op) {
if (!traceOf_) {
const GenericTraceActivity& op) {
if (!traceOf_) {
return;
}

Expand Down
2 changes: 2 additions & 0 deletions libkineto/src/output_json.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ class ChromeTraceLogger : public libkineto::ActivityLogger {

void openTraceFile();

void handleGenericInstantEvent(const GenericTraceActivity& op);

std::string fileName_;
std::ofstream traceOf_;

Expand Down