HEBench
hebench::TestHarness::DataLoaderCompute Class Referenceabstract

#include <datagen_helper.h>

Inheritance diagram for hebench::TestHarness::DataLoaderCompute:
Collaboration diagram for hebench::TestHarness::DataLoaderCompute:

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::DataPackgetParameterData (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::DataPackgetResultData (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< PartialDataLoaderPtr
 
- 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< ResultDataResultDataPtr
 
typedef std::shared_ptr< IDataLoaderPtr
 
- 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::DataPackCollectioncreateDataPackCollection (std::uint64_t data_pack_count)
 Creates shallow packed data that self cleans up. More...
 
static unique_ptr_custom_deleter< hebench::APIBridge::DataPackcreateDataPack (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::NativeDataBuffercreateDataBuffer (std::uint64_t size, std::int64_t tag)
 

Detailed Description

Definition at line 22 of file datagen_helper.h.

Constructor & Destructor Documentation

◆ ~DataLoaderCompute()

hebench::TestHarness::DataLoaderCompute::~DataLoaderCompute ( )
inlineoverride

Definition at line 30 of file datagen_helper.h.

◆ DataLoaderCompute()

hebench::TestHarness::DataLoaderCompute::DataLoaderCompute ( )
inlineprotected

Definition at line 34 of file datagen_helper.h.

Member Function Documentation

◆ computeResult()

virtual void hebench::TestHarness::DataLoaderCompute::computeResult ( std::vector< hebench::APIBridge::NativeDataBuffer * > &  result,
const std::uint64_t *  param_data_pack_indices,
hebench::APIBridge::DataType  data_type 
)
protectedpure virtual

Computes result of the operation on the input data given the of the input sample.

Parameters
resultVector 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_indicesFor each operation parameter, this array indicates the sample index to use for the operation. Must contain, at least, getParameterCount() elements.
[in]data_typeData 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.

◆ getResultFor()

IDataLoader::ResultDataPtr hebench::TestHarness::DataLoaderCompute::getResultFor ( const std::uint64_t *  param_data_pack_indices)
overridevirtual

getResultFor

Parameters
[in]param_data_pack_indicesCollection of indices for data sample to use inside each parameter pack. Number of elements pointed must be, at least, getParameterCount().
Returns
Returns a non-null pointer ResultData containing the ground-truth result corresponding to the specified parameter indices.
Exceptions
std::out_of_rangeif any index is out of range.
std::invalid_argumentif param_data_pack_indices is null.
instanceof std::exception on any other error.

The shape of result is always 2D: [n = getResultCount(), ?], so, the result for an operation is

(result[0][r_i], result[1][r_i], ..., result[n-1][r_i])

where r_i is the index of the NativeDataBuffers for the result in the second dimension.

See also
getResultIndex()

Implements hebench::TestHarness::IDataLoader.

Definition at line 23 of file datagen_helper.cpp.


The documentation for this class was generated from the following files: