HEBench
|
#include <datagen_helper.h>
Public Member Functions | |
~DataLoaderCompute () override | |
ResultDataPtr | getResultFor (const std::uint64_t *param_data_pack_indices) override |
getResultFor More... | |
Public Member Functions inherited from hebench::TestHarness::PartialDataLoader | |
~PartialDataLoader () override | |
std::uint64_t | getParameterCount () const override |
Number of parameter components (operands) for the represented operation. More... | |
const hebench::APIBridge::DataPack & | getParameterData (std::uint64_t param_position) const override |
Data pack for specified operation parameter (operand). More... | |
std::uint64_t | getResultCount () const override |
Number of components in a result for the represented operation. More... | |
const hebench::APIBridge::DataPack & | getResultData (std::uint64_t param_position) const override |
Data pack corresponding to the specified component of the result. More... | |
ResultDataPtr | getResultFor (const std::uint64_t *param_data_pack_indices) override |
getResultFor More... | |
std::uint64_t | getResultIndex (const std::uint64_t *param_data_pack_indices) const override |
Computes the index of the result NativeDataBuffer given the indices of the input data. More... | |
std::uint64_t | getTotalDataLoaded () const override |
Total data loaded by this loader in bytes. More... | |
bool | hasResults () const |
Retrieves whether buffers to contain output data have been allocated or not. More... | |
bool | isInitialized () const |
hebench::APIBridge::DataType | getDataType () const |
Public Member Functions inherited from hebench::TestHarness::IDataLoader | |
virtual | ~IDataLoader () |
Protected Member Functions | |
DataLoaderCompute () | |
virtual void | computeResult (std::vector< hebench::APIBridge::NativeDataBuffer * > &result, const std::uint64_t *param_data_pack_indices, hebench::APIBridge::DataType data_type)=0 |
Computes result of the operation on the input data given the of the input sample. More... | |
Protected Member Functions inherited from hebench::TestHarness::PartialDataLoader | |
PartialDataLoader () | |
void | init (hebench::APIBridge::DataType data_type, std::size_t input_dim, const std::size_t *input_sample_count_per_dim, const std::uint64_t *input_count_per_dim, std::size_t output_dim, const std::uint64_t *output_count_per_dim, bool allocate_output) |
Initializes dimensions of inputs and outputs. No allocation is performed. More... | |
void | init (const std::string &filename, hebench::APIBridge::DataType data_type, std::size_t expected_input_dim, const std::size_t *max_input_sample_count_per_dim, const std::uint64_t *expected_input_count_per_dim, std::size_t expected_output_dim, const std::uint64_t *expected_output_count_per_dim) |
Loads a dataset from a file. More... | |
std::vector< std::shared_ptr< hebench::APIBridge::DataPack > > | getResultTempDataPacks (std::uint64_t result_index) const |
Retrieves a pre-allocated result providing memory space to store a single operation result sample. More... | |
std::vector< std::shared_ptr< hebench::APIBridge::DataPack > > | getResultTempDataPacks (const std::uint64_t *param_data_pack_indices) const |
Retrieves a pre-allocated result providing memory space to store a single operation result sample. More... | |
std::vector< std::shared_ptr< hebench::APIBridge::DataPack > > | getResultTempDataPacks () const |
Retrieves a pre-allocated result providing memory space to store a single operation result sample. More... | |
Protected Member Functions inherited from hebench::TestHarness::IDataLoader | |
IDataLoader () | |
Additional Inherited Members | |
Public Types inherited from hebench::TestHarness::PartialDataLoader | |
typedef std::shared_ptr< PartialDataLoader > | Ptr |
Public Types inherited from hebench::TestHarness::IDataLoader | |
template<typename T > | |
using | unique_ptr_custom_deleter = hebench::TestHarness::unique_ptr_custom_deleter< T > |
typedef std::shared_ptr< ResultData > | ResultDataPtr |
typedef std::shared_ptr< IDataLoader > | Ptr |
Static Public Member Functions inherited from hebench::TestHarness::IDataLoader | |
static std::size_t | sizeOf (hebench::APIBridge::DataType data_type) |
static unique_ptr_custom_deleter< hebench::APIBridge::DataPackCollection > | createDataPackCollection (std::uint64_t data_pack_count) |
Creates shallow packed data that self cleans up. More... | |
static unique_ptr_custom_deleter< hebench::APIBridge::DataPack > | createDataPack (std::uint64_t buffer_count, std::uint64_t param_position) |
Creates shallow data pack that self cleans up. More... | |
static unique_ptr_custom_deleter< hebench::APIBridge::NativeDataBuffer > | createDataBuffer (std::uint64_t size, std::int64_t tag) |
Definition at line 22 of file datagen_helper.h.
|
inlineoverride |
Definition at line 30 of file datagen_helper.h.
|
inlineprotected |
Definition at line 34 of file datagen_helper.h.
|
protectedpure virtual |
Computes result of the operation on the input data given the of the input sample.
result | Vector where to store the result. Vector comes pre-initialized. This method's task is to fill up the data buffers with the result values. | |
[in] | param_data_pack_indices | For each operation parameter, this array indicates the sample index to use for the operation. Must contain, at least, getParameterCount() elements. |
[in] | data_type | Data type of the data pointed by the inputs and result. |
Implemented in hebench::TestHarness::SimpleSetIntersection::DataLoader, hebench::TestHarness::MatrixMultiply::DataLoader, hebench::TestHarness::LogisticRegression::DataLoader, hebench::TestHarness::GenericWL::DataLoader, hebench::TestHarness::EltwiseMult::DataLoader, hebench::TestHarness::EltwiseAdd::DataLoader, and hebench::TestHarness::DotProduct::DataLoader.
|
overridevirtual |
getResultFor
[in] | param_data_pack_indices | Collection of indices for data sample to use inside each parameter pack. Number of elements pointed must be, at least, getParameterCount() . |
std::out_of_range | if any index is out of range. |
std::invalid_argument | if param_data_pack_indices is null. |
instance | of std::exception on any other error. |
The shape of result is always 2D: [n = getResultCount(), ?], so, the result for an operation is
where r_i is the index of the NativeDataBuffer
s for the result in the second dimension.
Implements hebench::TestHarness::IDataLoader.
Definition at line 23 of file datagen_helper.cpp.