HEBench
|
#include <hebench_eltwisemult.h>
Public Member Functions | |
BenchmarkDescriptorCategory ()=default | |
~BenchmarkDescriptorCategory () override=default | |
Public Member Functions inherited from hebench::TestHarness::PartialBenchmarkDescriptor | |
PartialBenchmarkDescriptor () | |
~PartialBenchmarkDescriptor () override | |
DescriptionToken::Ptr | matchDescriptor (const Engine &engine, const BenchmarkDescription::Backend &backend_desc, const BenchmarkDescription::Configuration &config) const override final |
Implementation of IBenchmarkDescriptor::matchDescriptor(). More... | |
Public Member Functions inherited from hebench::TestHarness::IBenchmarkDescriptor | |
IBenchmarkDescriptor ()=default | |
virtual | ~IBenchmarkDescriptor ()=default |
virtual PartialBenchmark * | createBenchmark (std::shared_ptr< Engine > p_engine, const DescriptionToken &description_token)=0 |
Creates the represented IBenchmark object that can perform the workload specified by the HEBench benchmark descriptor. More... | |
virtual void | destroyBenchmark (PartialBenchmark *p_bench)=0 |
Destroys an object returned by createBenchmark() . More... | |
Static Public Member Functions | |
static std::uint64_t | fetchVectorSize (const std::vector< hebench::APIBridge::WorkloadParam > &w_params) |
Static Public Member Functions inherited from hebench::TestHarness::PartialBenchmarkDescriptor | |
static bool | getForceConfigValues () |
Specifies whether frontend will override backend descriptors using configuration data or not. More... | |
static void | setForceConfigValues (bool value) |
Sets whether frontend will override backend descriptors using configuration data or not. More... | |
static std::uint64_t | computeSampleSizes (std::uint64_t *sample_sizes, std::size_t param_count, const std::vector< std::uint64_t > &config_sample_sizes, const hebench::APIBridge::BenchmarkDescriptor &bench_desc, std::uint64_t default_sample_size_fallback, bool force_config) |
Extracts the batch sizes for a workload from a specified HEBench API benchmark descriptor. More... | |
Static Public Attributes | |
static constexpr const char * | BaseWorkloadName = "Element-wise Multiplication" |
static constexpr std::uint64_t | WorkloadParameterCount = 1 |
static constexpr std::uint64_t | OpParameterCount = 2 |
static constexpr std::uint64_t | OpResultCount = 1 |
static hebench::APIBridge::WorkloadParamType::WorkloadParamType | WorkloadParameterType [WorkloadParameterCount] |
Protected Member Functions | |
bool | matchBenchmarkDescriptor (const hebench::APIBridge::BenchmarkDescriptor &bench_desc, const std::vector< hebench::APIBridge::WorkloadParam > &w_params) const override |
Determines if the represented benchmark can perform the workload described by a specified HEBench benchmark descriptor and workload parameters. More... | |
void | completeWorkloadDescription (WorkloadDescriptionOutput &output, const Engine &engine, const BenchmarkDescription::Backend &backend_desc, const BenchmarkDescription::Configuration &config) const override |
Completes the description for the matched benchmark. More... | |
Protected Member Functions inherited from hebench::TestHarness::IBenchmarkDescriptor | |
DescriptionToken::Ptr | createToken (const BenchmarkDescription::Backend &backend_desc, const BenchmarkDescription::Configuration &config, const BenchmarkDescription::Description &text_desc) const |
Creates a DescriptionToken object associated to this IBenchmarkDescription object using the specified benchmark description. More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from hebench::TestHarness::PartialBenchmarkDescriptor | |
static std::unordered_set< std::size_t > | getCipherParamPositions (std::uint32_t cipher_param_mask) |
static std::string | getCategoryName (hebench::APIBridge::Category category) |
static std::string | getDataTypeName (hebench::APIBridge::DataType data_type) |
static void | completeCategoryParams (hebench::APIBridge::BenchmarkDescriptor &out_descriptor, const hebench::APIBridge::BenchmarkDescriptor &in_descriptor, const BenchmarkDescription::Configuration &config, bool force_config) |
Completes common elements of category parameters in a descriptor using the specified configuration. More... | |
Definition at line 26 of file hebench_eltwisemult.h.
|
default |
|
overridedefault |
|
overrideprotectedvirtual |
Completes the description for the matched benchmark.
[out] | output | Structure to receive the completed description. |
[in] | engine | Engine that requested the matching. |
[in] | backend_desc | Backend descriptor to be described. |
[in] | config | Configuration for the benchmark being described. |
std::invalid_argument | if fields in backend_desc or config are not supported or invalid. |
This method will only be called if PartialBenchmarkDescriptor::matchBenchmarkDescriptor(const hebench::APIBridge::BenchmarkDescriptor &, const std::vector<hebench::APIBridge::WorkloadParam> &)
returns true
.
All fields in config
are valid. In backend_desc:
field operation_params_count
is expected to be returned by this method; field descriptor
is the original returned from the backend, and it is expected that this method returns the final, concrete version. All other input parameters are valid. Use these values to complete all fields in output
.
This method must fill out all fields in the output
structure. Field workload_header
may be set to empty string, but workload_name
and operation_params_count
must be set to the correct values. Field concrete_descriptor
must be set to the completed benchmark descriptor, where all configurable values are replaced by the concrete, final values. See WorkloadDescriptionOutput
for more details.
If extra header information returned in workload_header
is not empty, it will be appended in the report to a pre-generated header in CSV format. The following is an example of a pre-generated header:
output
.workload_header
will be appended at the next line immediately after this.
WorkloadDescriptionOutput
Implements hebench::TestHarness::PartialBenchmarkDescriptor.
Reimplemented in hebench::TestHarness::EltwiseMult::Offline::BenchmarkDescriptor, and hebench::TestHarness::EltwiseMult::Latency::BenchmarkDescriptor.
Definition at line 60 of file hebench_eltwisemult.cpp.
|
static |
Definition at line 23 of file hebench_eltwisemult.cpp.
|
overrideprotectedvirtual |
Determines if the represented benchmark can perform the workload described by a specified HEBench benchmark descriptor and workload parameters.
[in] | bench_desc | Descriptor to which compare. |
[in] | w_params | Arguments for the workload parameters. |
This method is used by BenchmarkFactory::createBenchmark()
to select the appropriate benchmark to create based on the descriptor.
Implements hebench::TestHarness::PartialBenchmarkDescriptor.
Reimplemented in hebench::TestHarness::EltwiseMult::Offline::BenchmarkDescriptor, and hebench::TestHarness::EltwiseMult::Latency::BenchmarkDescriptor.
Definition at line 84 of file hebench_eltwisemult.cpp.
|
staticconstexpr |
Definition at line 34 of file hebench_eltwisemult.h.
|
staticconstexpr |
Definition at line 36 of file hebench_eltwisemult.h.
|
staticconstexpr |
Definition at line 37 of file hebench_eltwisemult.h.
|
staticconstexpr |
Definition at line 35 of file hebench_eltwisemult.h.
|
static |
Definition at line 38 of file hebench_eltwisemult.h.