mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/11135 This diff does not have any logic change; it simply move files/functions/classes around. Open source (almost all) necessary dependency for multithreaded predictor bench. The benchmark itself can be open sourced once the predictor is open sourced. Reviewed By: salexspb Differential Revision: D9602006 fbshipit-source-id: 386c9483e2c64c8b7d36e4600189c4e0b7e159ff
45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
#pragma once
|
|
#include "caffe2/core/logging.h"
|
|
#include "caffe2/predictor/emulator/emulator.h"
|
|
#include "caffe2/predictor/emulator/output_formatter.h"
|
|
#include "caffe2/predictor/emulator/profiler.h"
|
|
|
|
C10_DECLARE_int(warmup);
|
|
C10_DECLARE_int(iter);
|
|
C10_DECLARE_int(threads);
|
|
C10_DECLARE_int(runs);
|
|
C10_DECLARE_string(run_net);
|
|
C10_DECLARE_string(init_net);
|
|
C10_DECLARE_string(data_net);
|
|
C10_DECLARE_string(input_dims);
|
|
C10_DECLARE_string(input_types);
|
|
|
|
namespace caffe2 {
|
|
namespace emulator {
|
|
|
|
struct BenchmarkParam {
|
|
std::unique_ptr<Profiler> profiler;
|
|
std::unique_ptr<Emulator> emulator;
|
|
std::unique_ptr<OutputFormatter> formatter;
|
|
};
|
|
|
|
/*
|
|
* benchmark runner takes an @emulator to run nets.
|
|
* The runtime will be measured by @profiler.
|
|
* The output will be formatted by @formatter
|
|
*/
|
|
class BenchmarkRunner {
|
|
public:
|
|
void benchmark(const BenchmarkParam& param);
|
|
|
|
virtual ~BenchmarkRunner() noexcept {}
|
|
|
|
protected:
|
|
virtual void pre_benchmark_setup() {}
|
|
|
|
virtual void post_benchmark_cleanup() {}
|
|
};
|
|
|
|
} // namespace emulator
|
|
} // namespace caffe2
|