diff options
Diffstat (limited to 'runtimes/libs/srcn/include/srcn/srcn_conv.h')
-rw-r--r-- | runtimes/libs/srcn/include/srcn/srcn_conv.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/runtimes/libs/srcn/include/srcn/srcn_conv.h b/runtimes/libs/srcn/include/srcn/srcn_conv.h new file mode 100644 index 000000000..11130c0db --- /dev/null +++ b/runtimes/libs/srcn/include/srcn/srcn_conv.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __NNFW_SRCN_CONV_H__ +#define __NNFW_SRCN_CONV_H__ + +#include "conv_type.h" + +namespace nnfw +{ +namespace srcn +{ + +int check_winograd(winogradParams_t ¶ms); + +float *trans_weight2winograd(winogradParams_t ¶ms, unsigned int *size = NULL); + +void winograd_release(float *winograd_weight); + +void srcn_convolution2D(const convMat_t &in_mat, const convMat_t &weights_mat, convMat_t &out_mat, + const convParams_t &in_param, const float *winograd_weight, int num_threads, + convType_t conv_type); + +void srcn_deconvolution2D(const convMat_t &in_mat, const convMat_t &weights_mat, convMat_t &out_mat, + const convParams_t &in_param, int num_threads, convType_t conv_type); + +void *trans_weight2sparse(const convMat_t &weights_mat); + +void sparse_release(const int outch, void *ptr); + +void srcn_sparse_convolution2D(const convMat_t &in_mat, convMat_t &out_mat, + const convParams_t &in_param, const void *sparse_weight, + int number_threas, convType_t conv_type); + +void srcn_batch_convolution2D(const convMat_t &in_mat, const convMat_t &weights_mat, + convMat_t &out_mat, const convParams_t &in_param, + const float *winograd_weight, int num_threads, convType_t conv_type); + +void srcn_convolution2D_gpu(const convMat_t &in_mat, const convMat_t &weights_mat, + convMat_t &out_mat, const convParams_t &in_param, convType_t conv_type); + +void srcn_convolution2D_dpu(const convMat_t &in_mat, const convMat_t &weights_mat, + convMat_t &out_mat, const convParams_t &in_param, convType_t conv_type); + +void srcn_depthwise_conv(const convMat_t &in_mat, const convMat_t &weights_mat, convMat_t &out_mat, + const convMat_t &bias, const convParams_t &in_param, int num_threads, + convType_t conv_type); + +} // namespace srcn +} // namespace nnfw + +#endif // __NNFW_SRCN_CONV_H__ |