HEBench
|
Top level opaque benchmark class. More...
#include <benchmark.hpp>
Public Member Functions | |
BaseBenchmark (BaseEngine &engine, const hebench::APIBridge::BenchmarkDescriptor &bench_desc, const hebench::APIBridge::WorkloadParams &bench_params) | |
Constructs a new BaseBenchmark object for benchmarking a workload with flexible parameters. More... | |
BaseBenchmark (BaseEngine &engine, const hebench::APIBridge::BenchmarkDescriptor &bench_desc) | |
Constructs a new BaseBenchmark object for benchmarking a workload that does not have any flexible parameters. More... | |
virtual | ~BaseBenchmark ()=default |
virtual void | initialize (const hebench::APIBridge::BenchmarkDescriptor &bench_desc_concrete) |
Called by Test Harness with the concrete values for the benchmark description. More... | |
virtual hebench::APIBridge::Handle | encode (const hebench::APIBridge::DataPackCollection *p_parameters)=0 |
virtual void | decode (hebench::APIBridge::Handle encoded_data, hebench::APIBridge::DataPackCollection *p_native)=0 |
virtual hebench::APIBridge::Handle | encrypt (hebench::APIBridge::Handle encoded_data)=0 |
virtual hebench::APIBridge::Handle | decrypt (hebench::APIBridge::Handle encrypted_data)=0 |
virtual hebench::APIBridge::Handle | load (const hebench::APIBridge::Handle *p_local_data, std::uint64_t count)=0 |
virtual void | store (hebench::APIBridge::Handle remote_data, hebench::APIBridge::Handle *p_local_data, std::uint64_t count)=0 |
virtual hebench::APIBridge::Handle | operate (hebench::APIBridge::Handle h_remote_packed, const hebench::APIBridge::ParameterIndexer *p_param_indexers, std::uint64_t indexers_count)=0 |
BaseEngine & | getEngine () |
const BaseEngine & | getEngine () const |
std::int64_t | classTag () const override |
Retrieves the tag of the class to which this object belongs. More... | |
const hebench::APIBridge::BenchmarkDescriptor & | getDescriptor () const |
const std::vector< hebench::APIBridge::WorkloadParam > & | getWorkloadParameters () const |
Public Member Functions inherited from hebench::cpp::ITaggedObject | |
ITaggedObject () | |
virtual | ~ITaggedObject () |
Static Public Attributes | |
static constexpr std::int64_t | tag = 0x4000000000000000 |
Used to identify this class when returned as a handle to Test Harness. More... | |
Static Public Attributes inherited from hebench::cpp::ITaggedObject | |
static constexpr std::int64_t | MaskByteSet = 0xFF |
static constexpr std::int64_t | MaskReservedBits = MaskByteSet << 56 |
Mask representing all bits reserved by C++ wrapper. More... | |
Protected Member Functions | |
void | setDescriptor (const hebench::APIBridge::BenchmarkDescriptor &value) |
Static Protected Member Functions | |
static std::uint64_t | findDataPackIndex (const hebench::APIBridge::DataPackCollection ¶meters, std::uint64_t param_position) |
Searches the specified DataPackCollection for the DataPack in the corresponding position. More... | |
static const hebench::APIBridge::DataPack & | findDataPack (const hebench::APIBridge::DataPackCollection ¶meters, std::uint64_t param_position) |
Searches the specified DataPackCollection for the DataPack in the corresponding position. More... | |
static hebench::APIBridge::DataPack & | findDataPack (hebench::APIBridge::DataPackCollection ¶meters, std::uint64_t param_position) |
Searches the specified DataPackCollection for the DataPack in the corresponding position. More... | |
Top level opaque benchmark class.
This class hides the internal complexities of the backend operations from the API Bridge.
Definition at line 142 of file benchmark.hpp.
hebench::cpp::BaseBenchmark::BaseBenchmark | ( | BaseEngine & | engine, |
const hebench::APIBridge::BenchmarkDescriptor & | bench_desc, | ||
const hebench::APIBridge::WorkloadParams & | bench_params | ||
) |
Constructs a new BaseBenchmark object for benchmarking a workload with flexible parameters.
engine | Calling engine. | |
[in] | bench_desc | Calling description. |
[in] | bench_params | Parameters for this benchmark's workload. |
Definition at line 59 of file benchmark.cpp.
hebench::cpp::BaseBenchmark::BaseBenchmark | ( | BaseEngine & | engine, |
const hebench::APIBridge::BenchmarkDescriptor & | bench_desc | ||
) |
Constructs a new BaseBenchmark object for benchmarking a workload that does not have any flexible parameters.
engine | Calling engine. | |
[in] | bench_desc | Calling description. |
Definition at line 52 of file benchmark.cpp.
|
virtualdefault |
|
inlineoverridevirtual |
Retrieves the tag of the class to which this object belongs.
Most significant 8 bits of the 64-bit tag are reserved by C++ wrapper. See ITaggedObject
for more details.
Implements hebench::cpp::ITaggedObject.
Definition at line 199 of file benchmark.hpp.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
staticprotected |
Searches the specified DataPackCollection for the DataPack in the corresponding position.
[in] | parameters | DataPackCollection to search. |
[in] | param_position | Component position of the DataPack to find inside parameters . |
parameters
corresponding to the specified param_position
. hebench::cpp::HEBenchError | if no DataPack for the specified param_position is found. |
Definition at line 94 of file benchmark.cpp.
|
staticprotected |
Searches the specified DataPackCollection for the DataPack in the corresponding position.
[in] | parameters | DataPackCollection to search. |
[in] | param_position | Component position of the DataPack to find inside parameters . |
parameters
corresponding to the specified param_position
. hebench::cpp::HEBenchError | if no DataPack for the specified param_position is found. |
Definition at line 104 of file benchmark.cpp.
|
staticprotected |
Searches the specified DataPackCollection for the DataPack in the corresponding position.
[in] | parameters | DataPackCollection to search. |
[in] | param_position | Component position of the DataPack to find inside parameters . |
parameters
corresponding to the specified param_position
or parameters.pack_count if no DataPack for the specified param_position
is found. Definition at line 73 of file benchmark.cpp.
|
inline |
Definition at line 201 of file benchmark.hpp.
|
inline |
Definition at line 196 of file benchmark.hpp.
|
inline |
Definition at line 197 of file benchmark.hpp.
|
inline |
Definition at line 202 of file benchmark.hpp.
|
virtual |
Called by Test Harness with the concrete values for the benchmark description.
[in] | bench_desc_concrete | Benchmark description with user-specified values properly assigned. |
Functionally equivalent to hebench::APIBridge::initBenchmark()
.
Default implementation performs no operations and returns immediately. Override this method to add different behavior.
Definition at line 68 of file benchmark.cpp.
|
pure virtual |
|
pure virtual |
|
inlineprotected |
Definition at line 237 of file benchmark.hpp.
|
pure virtual |
|
staticconstexpr |
Used to identify this class when returned as a handle to Test Harness.
Definition at line 152 of file benchmark.hpp.