ONE - On-device Neural Engine
Loading...
Searching...
No Matches
DepthwiseConvUint8.h File Reference
#include "cker/Shape.h"
#include "cker/Types.h"
#include "cker/Utils.h"
#include "cker/neon/neon_check.h"
#include <fixedpoint/fixedpoint.h>
#include <public/gemmlowp.h>

Go to the source code of this file.

Data Structures

struct  nnfw::cker::optimized::depthwise_conv::QuantizedDepthwiseConvKernel< kAllowStrided, kFixedInputDepth, kFixedDepthMultiplier >
 

Namespaces

namespace  nnfw
 
namespace  nnfw::cker
 
namespace  nnfw::cker::optimized
 
namespace  nnfw::cker::optimized::depthwise_conv
 

Macros

#define TFMINI_USE_DEPTHWISECONV_KERNEL(ALLOW_STRIDED, FIXED_INPUT_DEPTH, FIXED_DEPTH_MULTIPLIER)
 

Functions

template<bool kAllowStrided, int kFixedInputDepth, int kFixedDepthMultiplier>
void nnfw::cker::optimized::depthwise_conv::QuantizedDepthwiseConvAccumRow (int stride, int dilation_factor, int input_depth, int input_width, const uint8_t *input_data, int16_t input_offset, int pad_width, int depth_multiplier, int filter_width, const uint8_t *filter_data, int16_t filter_offset, int out_x_buffer_start, int out_x_buffer_end, int output_depth, int32_t *acc_buffer)
 
void nnfw::cker::optimized::depthwise_conv::QuantizedDepthwiseConvAccumRowGeneric (int stride, int dilation_factor, int input_depth, int input_width, const uint8_t *input_data, int16_t input_offset, int pad_width, int depth_multiplier, int filter_width, const uint8_t *filter_data, int16_t filter_offset, int out_x_buffer_start, int out_x_buffer_end, int output_depth, int32_t *acc_buffer)
 
void nnfw::cker::optimized::depthwise_conv::DepthwiseConvInitAccBuffer (int num_output_pixels, int output_depth, const int32_t *bias_data, int32_t *acc_buffer)
 
void nnfw::cker::optimized::depthwise_conv::DepthwiseConvGeneral (const DepthwiseConvParams &params, const Shape &input_shape, const uint8_t *input_data, const Shape &filter_shape, const uint8_t *filter_data, const Shape &bias_shape, const int32_t *bias_data, const Shape &output_shape, uint8_t *output_data, int thread_start, int thread_end, int thread_dim)
 
void nnfw::cker::optimized::DepthwiseConvWithRounding (const DepthwiseConvParams &params, const Shape &input_shape, const uint8_t *input_data, const Shape &filter_shape, const uint8_t *filter_data, const Shape &bias_shape, const int32_t *bias_data, const Shape &output_shape, uint8_t *output_data, int thread_start, int thread_end, int thread_dim)
 
void nnfw::cker::optimized::DepthwiseConvImpl (const DepthwiseConvParams &params, const Shape &input_shape, const uint8_t *input_data, const Shape &filter_shape, const uint8_t *filter_data, const Shape &bias_shape, const int32_t *bias_data, const Shape &output_shape, uint8_t *output_data, int thread_start, int thread_end, int thread_dim)
 

Macro Definition Documentation

◆ TFMINI_USE_DEPTHWISECONV_KERNEL

#define TFMINI_USE_DEPTHWISECONV_KERNEL (   ALLOW_STRIDED,
  FIXED_INPUT_DEPTH,
  FIXED_DEPTH_MULTIPLIER 
)
Value:
if (!row_accum_func && (stride_width == 1 || ALLOW_STRIDED) && \
(input_depth == FIXED_INPUT_DEPTH || FIXED_INPUT_DEPTH == 0) && \
depth_multiplier == FIXED_DEPTH_MULTIPLIER) \
{ \
row_accum_func = \
QuantizedDepthwiseConvAccumRow<ALLOW_STRIDED, FIXED_INPUT_DEPTH, FIXED_DEPTH_MULTIPLIER>; \
}