5 #ifndef _HEBench_API_Bridge_Types_H_7e5fa8c2415240ea93eff148ed73539b
6 #define _HEBench_API_Bridge_Types_H_7e5fa8c2415240ea93eff148ed73539b
39 #define HEBENCH_ECODE_SUCCESS 0
42 #define HEBENCH_ECODE_INVALID_ARGS 0x7ffffffe
50 #define HEBENCH_ECODE_CRITICAL_ERROR 0x7fffffff
56 #define HEBENCH_MAX_BUFFER_SIZE 256
63 #define HEBENCH_MAX_OP_PARAMS 32
65 #define HEBENCH_MAX_CATEGORY_PARAMS HEBENCH_MAX_OP_PARAMS * 2
68 #define HEBENCH_HE_SCHEME_CKKS 100
69 #define HEBENCH_HE_SCHEME_BFV 101
70 #define HEBENCH_HE_SCHEME_BGV 102
74 #define HEBENCH_HE_PARAM_FLAGS_ALL_CIPHER 0xffffffff
75 #define HEBENCH_HE_PARAM_FLAGS_ALL_PLAIN 0x0
467 std::uint64_t warmup_iterations_count;
572 #define NULL_HANDLE hebench::APIBridge::_FlexibleData({ 0, 0, 0 })
WorkloadParamType
Defines the possible data types for a workload flexible parameter.
@ Float64
64 bits IEEE 754 standard floating point real numbers.
@ Int64
64 bits signed integers.
@ UInt64
64 bits unsigned integers.
Security security
Security for the scheme.
char name[HEBENCH_MAX_BUFFER_SIZE]
Null-terminated string containing the name for the parameter.
WorkloadParamType::WorkloadParamType data_type
Type of the parameter data.
_FlexibleData Handle
Encapsulates an opaque handle to backend data.
DataType
Defines data types for a workload.
@ Float32
32 bits IEEE 754 standard floating point real numbers.
@ Int32
32 bits signed integers.
@ Int64
64 bits signed integers.
@ Float64
64 bits IEEE 754 standard floating point real numbers.
Category
Defines all possible categories for each workload.
std::uint64_t count
Number of workload parameters.
DataPack * p_data_packs
Collection of data packs.
std::uint64_t min_test_time_ms
Specifies the minimum time, in milliseconds, to run the test.
std::uint64_t value_index
Index of parameter value inside the data pack.
std::uint32_t cipher_param_mask
Input mask to define which operation parameters for the computation are plain text or cipher text.
DataType data_type
Data type for the workload.
CategoryParams cat_params
Parameters for the category.
std::int32_t Scheme
Open-ended homomorphic encryption scheme ID.
std::uint64_t pack_count
Number of data packs in the collection.
std::int32_t Security
Open-ended homomorphic encryption scheme security ID.
WorkloadParam * params
Parameters for the workload.
std::uint64_t batch_size
Number of values to use, starting from index.
std::uint64_t size
Size of underlying data.
std::uint64_t param_position
The 0-based position of this parameter in the corresponding function call.
std::int64_t other
Backend specific extra parameter.
void * p
Pointer to underlying data.
Category category
Category for the benchmark.
std::int32_t ErrorCode
Return value for API bridge functions.
std::uint64_t buffer_count
Number of data buffers in p_buffers.
Workload workload
Workload for the benchmark.
Scheme scheme
Scheme for the benchmark.
NativeDataBuffer * p_buffers
Array of data buffers for parameter.
std::int64_t tag
Optional tag.
_FlexibleData NativeDataBuffer
Represents a native data buffer maintained by the Test Harness.
Workload
Defines all possible workloads.
@ LogisticRegression_PolyD3
@ LogisticRegression_PolyD7
@ LogisticRegression_PolyD5
Defines a benchmark test.
Specifies parameters for a category.
Defines a data package for an operation.
Defines a collection of data packs.
Defines a single workload parameter.
Specifies the parameters for a workload.
Structure to contain flexible data.
#define HEBENCH_MAX_CATEGORY_PARAMS
Maximum number of parameters for Category benchmark descriptor.
#define HEBENCH_MAX_BUFFER_SIZE
#define HEBENCH_MAX_OP_PARAMS
Maximum number of parameters supported by an operation.