23.11
|
Go to the documentation of this file.
44 static const std::vector<CpuGemmMatrixAdditionKernel::GemmMatrixAddKernel> available_kernels = {
45 {
"neon_fp32_gemm_matrix_add", [](
const DataTypeISASelectorData &data) {
return (data.dt ==
DataType::F32); },
47 {
"neon_fp16_gemm_matrix_add",
48 [](
const DataTypeISASelectorData &data) {
return (data.dt ==
DataType::F16) && data.isa.fp16; },
69 ICPPKernel::configure(win);
80 if (
dst->total_size() > 0)
106 return "CpuGemmMatrixAdditionKernel";
109 const std::vector<CpuGemmMatrixAdditionKernel::GemmMatrixAddKernel> &
112 return available_kernels;
Class to describe a number of elements in each dimension.
const char * name() const override
Name of the kernel.
SimpleTensor< float > src
Window calculate_max_window(const ValidRegion &valid_region, const Steps &steps, bool skip_border, BorderSize border_size)
#define ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(k)
void run_op(ITensorPack &tensors, const Window &window, const ThreadInfo &info) override
Execute the kernel on the passed window.
#define ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_SHAPES(...)
void neon_fp16_gemm_matrix_add(const ITensor *src, ITensor *dst, const Window &window, float beta)
static CPUInfo & get()
Access the KernelLibrary singleton.
Interface for CPU tensor.
ITensor * get_tensor(int id)
Get tensor of a given id from the pac.
#define REGISTER_FP16_NEON(func_name)
#define ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_TYPES(...)
#define ARM_COMPUTE_RETURN_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(t, c,...)
#define REGISTER_FP32_NEON(func_name)
bool empty() const
Checks if pack is empty.
#define ARM_COMPUTE_ERROR_ON_NULLPTR(...)
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
const ITensor * get_const_tensor(int id) const
Get constant tensor of a given id.
#define ARM_COMPUTE_ERROR_THROW_ON(status)
static Status validate(const ITensorInfo *src, const ITensorInfo *dst, float beta)
Static function to check if given info will lead to a valid configuration of CpuGemmMatrixAdditionKer...
#define ARM_COMPUTE_RETURN_ERROR_ON_CPU_F16_UNSUPPORTED(tensor)
#define ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(f, s)
void configure(const ITensorInfo *src, ITensorInfo *dst, float beta)
Initialise the kernel's input and output.
#define ARM_COMPUTE_UNUSED(...)
To avoid unused variables warnings.
static const auto * get_implementation(const SelectorType &selector, KernelSelectionType selection_type=KernelSelectionType::Supported)
Micro-kernel selector.
const Window & window() const
The maximum window the kernel can be executed on.
Information about executing thread and CPU.
Describe a multidimensional execution window.
Copyright (c) 2017-2023 Arm Limited.
@ F16
16-bit floating-point number
void neon_fp32_gemm_matrix_add(const ITensor *src, ITensor *dst, const Window &window, float beta)
#define ARM_COMPUTE_RETURN_ERROR_ON_NULLPTR(...)
Store the tensor's metadata.
@ F32
32-bit floating-point number
ScaleKernelInfo info(interpolation_policy, default_border_mode, PixelValue(), sampling_policy, false)
static const std::vector< GemmMatrixAddKernel > & get_available_kernels()