mini_jit::benchmarks

class EinsumTreeBench : public mini_jit::Benchmark

Public Functions

EinsumTreeBench(double run_time, std::string const &einsum_expression, std::vector<int64_t> &dimension_sizes, mini_jit::dtype_t dtype, int64_t thread_target, int64_t max_kernel_size, int64_t min_kernel_size, std::map<std::string, void const*> &tensor_inputs)
inline ~EinsumTreeBench() override

Destructor.

virtual void run() override

Runs the benchmark.

class FastSigmoidPrimitiveBench : public mini_jit::Benchmark

Public Functions

FastSigmoidPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the fast sigmoid primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~FastSigmoidPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class IdentityPrimitiveBench : public mini_jit::Benchmark

Public Functions

IdentityPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for identity primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~IdentityPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class IdentityTransPrimitiveBench : public mini_jit::Benchmark

Public Functions

IdentityTransPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for identity transposition primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~IdentityTransPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class MatmulBrMNKBench : public mini_jit::Benchmark
#include <Matmul_br_m_n_k.bench.h>

Benchmark for matrix multiplication using BRGEMM.

Public Functions

MatmulBrMNKBench(double run_time, int m, int n, int k, int br_size)

Constructor for the benchmark for matrix multiplication using BRGEMM.

Parameters:
  • run_time – The time to run the benchmark in seconds.

  • m – number of rows in A and C.

  • n – number of columns in B and C.

  • k – number of columns in A and rows in B.

  • br_size – The size of the batch-reduce.

~MatmulBrMNKBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class MatmulMNKBench : public mini_jit::Benchmark

Public Functions

MatmulMNKBench(double run_time, int m, int n, int k)

Constructor for the benchmark for matrix multiplication using GEMM.

Parameters:
  • run_time – The time to run the benchmark in seconds.

  • m – number of rows in A and C.

  • n – number of columns in B and C.

  • k – number of columns in A and rows in B.

~MatmulMNKBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class ReciprocalPrimitiveBench : public mini_jit::Benchmark

Public Functions

ReciprocalPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the reciprocal primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~ReciprocalPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class ReLUPrimitiveBench : public mini_jit::Benchmark

Public Functions

ReLUPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the ReLU primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~ReLUPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class ReLUTransPrimitiveBench : public mini_jit::Benchmark

Public Functions

ReLUTransPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the transposition ReLU primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~ReLUTransPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class SigmoidInterpolationPrimitiveBench : public mini_jit::Benchmark

Public Functions

SigmoidInterpolationPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the sigmoid interpolation primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~SigmoidInterpolationPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class SigmoidTaylorPrimitiveBench : public mini_jit::Benchmark

Public Functions

SigmoidTaylorPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the sigmoid taylor approxmiation primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~SigmoidTaylorPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class SquarePrimitiveBench : public mini_jit::Benchmark

Public Functions

SquarePrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for square primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~SquarePrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class SquareTransPrimitiveBench : public mini_jit::Benchmark

Public Functions

SquareTransPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the transposition square primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~SquareTransPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class TensorOperationBench : public mini_jit::Benchmark

Public Functions

TensorOperationBench(double run_time, dtype_t dtype, ptype_t prim_first_touch, ptype_t prim_main, ptype_t prim_last_touch, std::span<const dim_t> dim_types, std::span<const exec_t> exec_types, std::span<const int64_t> dim_sizes, std::span<const int64_t> strides_in0, std::span<const int64_t> strides_in1, std::span<const int64_t> strides_out)

Constructor for the benchmark for tensor operations.

Parameters:
  • run_time – The time to run the benchmark in seconds.

  • dtype – Datatype of all tensor elements.

  • prim_first_touch – Type of the first touch primitive.

  • prim_main – Type of the main primitive.

  • prim_last_touch – Type of the last touch primitive.

  • dim_types – Dimension type of the loops (c, m, n, or k).

  • exec_types – Execution type of the loops (seq, shared, or prim).

  • dim_sizes – Sizes of the dimensions.

  • strides_in0 – Strides of the first input tensor.

  • strides_in1 – Strides of the second input tensor (ignored if unary).

  • strides_out – Strides of the output tensor.

~TensorOperationBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class ZeroEorPrimitiveBench : public mini_jit::Benchmark

Public Functions

ZeroEorPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the EOR Zero primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~ZeroEorPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.

class ZeroXZRPrimitiveBench : public mini_jit::Benchmark

Public Functions

ZeroXZRPrimitiveBench(double runTime, uint32_t m, uint32_t n)

Constructor for the benchmark for the XZR Zero primitive.

Parameters:
  • runTime – The time to run the benchmark in seconds.

  • m – number of rows in A and B.

  • n – number of columns in A and B.

~ZeroXZRPrimitiveBench() override = default

Destructor.

virtual void run() override

Runs the benchmark.