mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 00:21:07 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23821 Reviewed By: hl475 Differential Revision: D16654854 fbshipit-source-id: f057023e890cbcbd9145ef2ecb449df2fbba592b
39 lines
927 B
C++
39 lines
927 B
C++
#pragma once
|
|
|
|
#include <map>
|
|
|
|
#include "caffe2/core/common.h"
|
|
#include "caffe2/core/net.h"
|
|
#include "observers/macros.h"
|
|
|
|
namespace caffe2 {
|
|
|
|
struct PerformanceInformation {
|
|
// Analytic
|
|
int64_t flops = 0;
|
|
int64_t bytes_written = 0;
|
|
int64_t bytes_read = 0;
|
|
std::vector<TensorShape> tensor_shapes = {};
|
|
std::vector<Argument> args = {};
|
|
std::string engine = ""; // the engine used
|
|
std::string type = ""; // the type of the operator
|
|
// Measured
|
|
double latency = 0;
|
|
double cpuMilliseconds = 0;
|
|
};
|
|
|
|
class CAFFE2_OBSERVER_API NetObserverReporter {
|
|
public:
|
|
virtual ~NetObserverReporter() = default;
|
|
|
|
/*
|
|
Report the delay metric collected by the observer.
|
|
The delays are saved in a map. The key is an identifier associated
|
|
with the reported delay. The value is the delay value in float
|
|
*/
|
|
virtual void report(
|
|
NetBase* net,
|
|
std::map<std::string, PerformanceInformation>&) = 0;
|
|
};
|
|
}
|