Implement event based CUDA profiling. Continue to use CUPTI callback API to generate events, but avoid activity API.

PiperOrigin-RevId: 238427551
This commit is contained in:
A. Unique TensorFlower 2019-03-14 06:06:05 -07:00 committed by TensorFlower Gardener
parent 66df637441
commit 5f071f2eb2
4 changed files with 552 additions and 525 deletions

View File

@ -577,7 +577,14 @@ def tf_protos_grappler():
)
def tf_additional_cupti_wrapper_deps():
return ["//tensorflow/core/platform/default/gpu:cupti_wrapper"]
return [
"//tensorflow/core/platform/default/gpu:cupti_wrapper",
"@com_google_absl//absl/base",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:str_format",
"@com_google_absl//absl/container:node_hash_map",
"@com_google_absl//absl/container:flat_hash_map",
]
def tf_additional_device_tracer_srcs():
return ["platform/default/device_tracer.cc"]

File diff suppressed because it is too large Load Diff

View File

@ -61,6 +61,7 @@ LIBCUPTI_WRAP(cuptiEnableCallback);
LIBCUPTI_WRAP(cuptiEnableDomain);
LIBCUPTI_WRAP(cuptiSubscribe);
LIBCUPTI_WRAP(cuptiUnsubscribe);
LIBCUPTI_WRAP(cuptiGetResultString);
} // namespace dynload
@ -124,6 +125,11 @@ CUptiResult CuptiWrapper::Unsubscribe(CUpti_SubscriberHandle subscriber) {
return dynload::cuptiUnsubscribe(subscriber);
}
CUptiResult CuptiWrapper::GetResultString(CUptiResult result,
const char** str) {
return dynload::cuptiGetResultString(result, str);
}
} // namespace profiler
} // namespace gputools
} // namespace perftools

View File

@ -68,6 +68,8 @@ class CuptiWrapper {
CUpti_CallbackFunc callback, void* userdata);
CUptiResult Unsubscribe(CUpti_SubscriberHandle subscriber);
CUptiResult GetResultString(CUptiResult result, const char** str);
};
} // namespace profiler