1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
#pragma once
#include <ATen/record_function.h>
#include <c10/util/Synchronized.h>
#include <map>
#include <set>
#include <string>
namespace torch {
namespace jit {
namespace mobile {
/* The BuildFeatureTracer class handles the attachment and removal of a
* recording callback that traces the invocation of code that handles executing
* generic build features.
*
* You can get the set of used build features using
* getBuildFeatures().
*
* Note: This class is not thread safe or re-entrant, and should not be used
* across multiple threads of execution.
*
*/
struct BuildFeatureTracer final {
at::CallbackHandle handle_;
/* These are the custom class names (constant
* character string) which shows up in code.
*/
typedef std::set<std::string> build_feature_type;
BuildFeatureTracer();
static c10::Synchronized<build_feature_type>& getBuildFeatures();
~BuildFeatureTracer() {
at::removeCallback(handle_);
}
};
} // namespace mobile
} // namespace jit
} // namespace torch
|