summaryrefslogtreecommitdiff
path: root/compute/ncnn/src/srcn/sgemm_pack.h
blob: d64843ebb805de1cdaaf5b90f55b11512729d030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 * 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_SGEMM_PACK_H__
#define __NNFW_SRCN_SGEMM_PACK_H__

#include "ncnn/srcn/conv_type.h"

namespace nnfw
{
namespace srcn
{

void _pack_rowmajor_notrans_lhs(const int mr, const int mb, const int kb, const int stride,
                                const float *lhs_ptr, float *plhs_ptr);
void _pack_rowmajor_notrans_rhs(const int nr, const int nb, const int kb, const int stride,
                                const float *rhs_ptr, float *prhs_ptr);
void _pack_rowmajor_trans_lhs(const int mr, const int mb, const int kb, const int stride,
                              const float *lhs_ptr, float *plhs_ptr);
void _pack_rowmajor_trans_rhs(const int nr, const int nb, const int kb, const int stride,
                              const float *rhs_ptr, float *prhs_ptr);
void _pack_rowmajor_image_rhs(const int nr, const int nb, const int kb, const int k0, const int n0,
                              convMat_t *input, convMat_t *output, convParams_t *params,
                              float *prhs_ptr);
void _pack_rowmajor_image_rhs_batch(const int nr, const int nb, const int kb, const int k0,
                                    const int n0, convMat_t *input, convMat_t *output,
                                    convParams_t *params, float *prhs_ptr);

void _unpack_rowmajor_image_res(const int mb, const int nb, const int m0, const int n0,
                                convMat_t *input, convMat_t *output, convParams_t *params,
                                float *pres_ptr);

void _pack_colmajor_notrans_lhs(const int mr, const int mb, const int kb, const int stride,
                                const float *lhs_ptr, float *plhs_ptr);
void _pack_colmajor_notrans_rhs(const int nr, const int nb, const int kb, const int stride,
                                const float *rhs_ptr, float *prhs_ptr);
void _pack_colmajor_trans_lhs(const int mr, const int mb, const int kb, const int stride,
                              const float *lhs_ptr, float *plhs_ptr);
void _pack_colmajor_trans_rhs(const int nr, const int nb, const int kb, const int stride,
                              const float *rhs_ptr, float *prhs_ptr);

void _pack_colmajor_image_rhs(const int nr, const int nb, const int kb, const int k0, const int n0,
                              convMat_t *input, convMat_t *output, convParams_t *params,
                              float *prhs_ptr);

void _pack_colmajor_image_rhs_batch(const int nr, const int nb, const int kb, const int k0,
                                    const int n0, convMat_t *input, convMat_t *output,
                                    convParams_t *params, float *prhs_ptr);

void _unpack_colmajor_image_res(const int mb, const int nb, const int m0, const int n0,
                                convMat_t *input, convMat_t *output, convParams_t *params,
                                float *pres_ptr);

void _sparse_pack_rowmajor_image(const int nb, const int k0, const int n0, convMat_t *input,
                                 convMat_t *output, convParams_t *params, float *prhs_ptr);

} // namespace srcn
} // namespace nnfw

#endif // __NNFW_SRCN_SGEMM_PACK_H__