Skip to content

Commit f55847c

Browse files
committed
cov++
1 parent a5697eb commit f55847c

File tree

3 files changed

+198
-58
lines changed

3 files changed

+198
-58
lines changed

tests/test_gemm_2.h

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -91,33 +91,33 @@ static int test_gemm_0(int M, int N, int K)
9191
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 0, 0, 0)
9292
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 0, 0, 0)
9393

94-
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 1, 0, 0)
95-
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 1, 0, 0)
96-
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 1, 0, 0)
97-
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 1, 0, 0)
98-
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 1, 0, 0)
99-
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 1, 0, 0)
100-
101-
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 0, 1, 0)
102-
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 0, 1, 0)
103-
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 0, 1, 0)
104-
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 0, 1, 0)
105-
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 0, 1, 0)
106-
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 0, 1, 0)
107-
108-
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 1, 1, 0)
109-
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 1, 1, 0)
110-
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 1, 1, 0)
111-
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 1, 1, 0)
112-
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 1, 1, 0)
113-
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 1, 1, 0)
114-
115-
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 0, 0, 1)
116-
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 0, 0, 1)
117-
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 0, 0, 1)
118-
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 0, 0, 1)
119-
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 0, 0, 1)
120-
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 0, 0, 1)
94+
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 0, 0, 1, 0, 0)
95+
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 1, 0, 1, 0, 0)
96+
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 0, 1, 1, 0, 0)
97+
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 1, 1, 1, 0, 0)
98+
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 0, 0, 1, 0, 0)
99+
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 1, 0, 1, 0, 0)
100+
101+
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 1, 0, 0, 1, 0)
102+
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 0, 0, 0, 1, 0)
103+
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 1, 1, 0, 1, 0)
104+
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 0, 1, 0, 1, 0)
105+
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 1, 0, 0, 1, 0)
106+
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 0, 0, 0, 1, 0)
107+
108+
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 1, 0, 1, 1, 0)
109+
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 0, 0, 1, 1, 0)
110+
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 1, 1, 1, 1, 0)
111+
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 0, 1, 1, 1, 0)
112+
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 1, 0, 1, 1, 0)
113+
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 0, 0, 1, 1, 0)
114+
115+
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 0, 0, 0, 0, 1)
116+
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 1, 0, 0, 0, 1)
117+
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 0, 1, 0, 0, 1)
118+
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 1, 1, 0, 0, 1)
119+
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 0, 0, 0, 0, 1)
120+
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 1, 0, 0, 0, 1)
121121

122122
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 1, 0, 1)
123123
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 1, 0, 1)
@@ -126,17 +126,17 @@ static int test_gemm_0(int M, int N, int K)
126126
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 1, 0, 1)
127127
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 1, 0, 1)
128128

129-
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 0, 1, 1)
130-
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 0, 1, 1)
131-
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 0, 1, 1)
132-
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 0, 1, 1)
133-
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 0, 1, 1)
134-
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 0, 1, 1)
135-
136-
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 1, 1, 1)
137-
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 1, 1, 1)
138-
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 1, 1, 1)
139-
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 1, 1, 1)
140-
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 1, 1, 1)
141-
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 1, 1, 1);
129+
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 1, 0, 0, 1, 1)
130+
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 0, 0, 0, 1, 1)
131+
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 1, 1, 0, 1, 1)
132+
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 0, 1, 0, 1, 1)
133+
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 1, 0, 0, 1, 1)
134+
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 0, 0, 0, 1, 1)
135+
136+
|| test_gemm_bias(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 1, 0, 1, 1, 1)
137+
|| test_gemm_bias(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 0, 0, 1, 1, 1)
138+
|| test_gemm_bias(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 1, 1, 1, 1, 1)
139+
|| test_gemm_bias(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 0, 1, 1, 1, 1)
140+
|| test_gemm_bias(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 1, 0, 1, 1, 1)
141+
|| test_gemm_bias(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 0, 0, 1, 1, 1);
142142
}

tests/test_gemm_3.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -380,23 +380,23 @@ static int test_gemm_0(int M, int N, int K)
380380

381381
|| test_gemm_int8(M, N, K, 1.2f, 0, 1, 0, 0, 1, 1, 0)
382382
|| test_gemm_int8(M, N, K, 1.3f, 1, 1, 0, 0, 1, 1, 1)
383-
|| test_gemm_int8(M, N, K, 1.4f, 0, 0, 0, 0, 1, 1, 0)
384-
|| test_gemm_int8(M, N, K, 1.5f, 1, 0, 0, 0, 1, 1, 1)
385-
386-
|| test_gemm_int8(M, N, K, -1.2f, 0, 1, 0, 1, 0, 0, 0)
387-
|| test_gemm_int8(M, N, K, -1.3f, 1, 1, 0, 1, 0, 0, 0)
388-
|| test_gemm_int8(M, N, K, -1.4f, 0, 0, 0, 1, 0, 0, 1)
389-
|| test_gemm_int8(M, N, K, -1.5f, 1, 0, 0, 1, 0, 0, 1)
390-
391-
|| test_gemm_int8(M, N, K, -2.0f, 0, 1, 0, 1, 1, 0, 1)
392-
|| test_gemm_int8(M, N, K, -3.0f, 1, 1, 0, 1, 1, 0, 1)
393-
|| test_gemm_int8(M, N, K, -4.0f, 0, 0, 0, 1, 0, 1, 0)
394-
|| test_gemm_int8(M, N, K, -5.0f, 0, 1, 0, 1, 0, 1, 0)
395-
396-
|| test_gemm_int8(M, N, K, -2.1f, 0, 1, 0, 1, 1, 1, 0)
397-
|| test_gemm_int8(M, N, K, -3.1f, 1, 1, 0, 1, 1, 1, 1)
398-
|| test_gemm_int8(M, N, K, -4.1f, 0, 0, 0, 1, 1, 1, 0)
399-
|| test_gemm_int8(M, N, K, -5.1f, 1, 0, 0, 1, 1, 1, 1)
383+
|| test_gemm_int8(M, N, K, 1.4f, 0, 0, 0, 0, 1, 0, 0)
384+
|| test_gemm_int8(M, N, K, 1.5f, 1, 0, 0, 0, 1, 0, 1)
385+
386+
|| test_gemm_int8(M, N, K, -1.2f, 0, 1, 0, 1, 1, 1, 0)
387+
|| test_gemm_int8(M, N, K, -1.3f, 1, 1, 0, 1, 1, 1, 0)
388+
|| test_gemm_int8(M, N, K, -1.4f, 0, 0, 0, 1, 1, 1, 1)
389+
|| test_gemm_int8(M, N, K, -1.5f, 1, 0, 0, 1, 1, 1, 1)
390+
391+
|| test_gemm_int8(M, N, K, -2.0f, 0, 1, 0, 1, 0, 1, 1)
392+
|| test_gemm_int8(M, N, K, -3.0f, 1, 1, 0, 1, 0, 1, 1)
393+
|| test_gemm_int8(M, N, K, -4.0f, 0, 0, 0, 1, 1, 0, 0)
394+
|| test_gemm_int8(M, N, K, -5.0f, 0, 1, 0, 1, 1, 0, 0)
395+
396+
|| test_gemm_int8(M, N, K, -2.1f, 0, 1, 0, 1, 0, 0, 0)
397+
|| test_gemm_int8(M, N, K, -3.1f, 1, 1, 0, 1, 0, 0, 1)
398+
|| test_gemm_int8(M, N, K, -4.1f, 0, 0, 0, 1, 0, 1, 0)
399+
|| test_gemm_int8(M, N, K, -5.1f, 1, 0, 0, 1, 0, 1, 1)
400400

401401
|| test_gemm_int8_fp16s(M, N, K, 1.f, 0, 1, 0, 0, 0, 0, 0)
402402
|| test_gemm_int8_fp16s(M, N, K, 1.f, 1, 0, 0, 1, 0, 0, 0);

tests/test_gemm_nt.cpp

Lines changed: 141 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,146 @@ static int test_gemm_0(int M, int N, int K)
7070
|| test_gemm_nt(M, N, K, 1, 1, 0, 1, 1);
7171
}
7272

73+
static int test_gemm_bias_nt(int M, int N, int K, const ncnn::Mat& C, float alpha, float beta, int transA, int transB, int output_transpose, int constantA, int constantB, int constantC)
74+
{
75+
int broadcast_type_C = 0;
76+
if (C.dims == 1 && C.w == 1)
77+
{
78+
// scalar
79+
broadcast_type_C = 0;
80+
}
81+
if (C.dims == 1 && C.w == M)
82+
{
83+
// M
84+
// auto broadcast from h to w is the ncnn-style convention
85+
broadcast_type_C = 1;
86+
}
87+
if (C.dims == 1 && C.w == N)
88+
{
89+
// N
90+
broadcast_type_C = 4;
91+
}
92+
if (C.dims == 2 && C.w == 1 && C.h == M)
93+
{
94+
// Mx1
95+
broadcast_type_C = 2;
96+
}
97+
if (C.dims == 2 && C.w == N && C.h == M)
98+
{
99+
// MxN
100+
broadcast_type_C = 3;
101+
}
102+
if (C.dims == 2 && C.w == N && C.h == 1)
103+
{
104+
// 1xN
105+
broadcast_type_C = 4;
106+
}
107+
108+
ncnn::ParamDict pd;
109+
pd.set(0, alpha);
110+
pd.set(1, beta);
111+
pd.set(2, transA);
112+
pd.set(3, transB);
113+
pd.set(4, constantA);
114+
pd.set(5, constantB);
115+
pd.set(6, constantC);
116+
pd.set(7, M);
117+
pd.set(8, N);
118+
pd.set(9, K);
119+
pd.set(10, broadcast_type_C);
120+
pd.set(14, output_transpose);
121+
122+
std::vector<ncnn::Mat> weights;
123+
if (constantA) weights.push_back(transA ? ncnn::Mat(M, K) : ncnn::Mat(K, M));
124+
if (constantB) weights.push_back(transB ? ncnn::Mat(K, N) : ncnn::Mat(N, K));
125+
if (constantC) weights.push_back(C);
126+
127+
std::vector<ncnn::Mat> a;
128+
if (!constantA) a.push_back(transA ? ncnn::Mat(M, K) : ncnn::Mat(K, M));
129+
if (!constantB) a.push_back(transB ? ncnn::Mat(K, N) : ncnn::Mat(N, K));
130+
if (!constantC) a.push_back(C);
131+
132+
for (size_t i = 0; i < weights.size(); i++)
133+
{
134+
Randomize(weights[i]);
135+
}
136+
137+
for (size_t i = 0; i < a.size(); i++)
138+
{
139+
Randomize(a[i]);
140+
}
141+
142+
float epsilon = 0.001;
143+
144+
int ret = test_layer("Gemm", pd, weights, a, 1, epsilon, TEST_LAYER_ENABLE_THREADING);
145+
if (ret != 0)
146+
{
147+
fprintf(stderr, "test_gemm_bias_nt failed M=%d N=%d K=%d C.dims=%d C=(%d %d %d) alpha=%f beta=%f transA=%d transB=%d output_transpose=%d constantA=%d constantB=%d constantC=%d\n", M, N, K, C.dims, C.w, C.h, C.c, alpha, beta, transA, transB, output_transpose, constantA, constantB, constantC);
148+
}
149+
150+
return ret;
151+
}
152+
153+
static int test_gemm_1(int M, int N, int K)
154+
{
155+
return 0
156+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 0, 0, 0)
157+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 0, 0, 0)
158+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 0, 0, 0)
159+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 0, 0, 0)
160+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 0, 0, 0)
161+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 0, 0, 0)
162+
163+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 0, 0, 1, 0, 0)
164+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 1, 0, 1, 0, 0)
165+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 0, 1, 1, 0, 0)
166+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 1, 1, 1, 0, 0)
167+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 0, 0, 1, 0, 0)
168+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 1, 0, 1, 0, 0)
169+
170+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 1, 0, 0, 1, 0)
171+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 0, 0, 0, 1, 0)
172+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 1, 1, 0, 1, 0)
173+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 0, 1, 0, 1, 0)
174+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 1, 0, 0, 1, 0)
175+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 0, 0, 0, 1, 0)
176+
177+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 1, 0, 1, 1, 0)
178+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 0, 0, 1, 1, 0)
179+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 1, 1, 1, 1, 0)
180+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 0, 1, 1, 1, 0)
181+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 1, 0, 1, 1, 0)
182+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 0, 0, 1, 1, 0)
183+
184+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 0, 0, 0, 0, 1)
185+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 1, 0, 0, 0, 1)
186+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 0, 1, 0, 0, 1)
187+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 1, 1, 0, 0, 1)
188+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 0, 0, 0, 0, 1)
189+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 1, 0, 0, 0, 1)
190+
191+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 0, 0, 1, 0, 1)
192+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 1, 0, 1, 0, 1)
193+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 0, 1, 1, 0, 1)
194+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 1, 1, 1, 0, 1)
195+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 0, 0, 1, 0, 1)
196+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 1, 0, 1, 0, 1)
197+
198+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 1, 1, 0, 0, 1, 1)
199+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 0, 0, 0, 0, 1, 1)
200+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 0, 1, 1, 0, 1, 1)
201+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 1, 0, 1, 0, 1, 1)
202+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 1, 1, 0, 0, 1, 1)
203+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 0, 0, 0, 0, 1, 1)
204+
205+
|| test_gemm_bias_nt(M, N, K, RandomMat(1), 2.1f, 0.5f, 0, 1, 0, 1, 1, 1)
206+
|| test_gemm_bias_nt(M, N, K, RandomMat(M), 3.1f, 0.6f, 1, 0, 0, 1, 1, 1)
207+
|| test_gemm_bias_nt(M, N, K, RandomMat(1, M), 4.1f, 0.7f, 1, 1, 1, 1, 1, 1)
208+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, M), 5.1f, 0.8f, 0, 0, 1, 1, 1, 1)
209+
|| test_gemm_bias_nt(M, N, K, RandomMat(N, 1), 2.1f, 0.5f, 0, 1, 0, 1, 1, 1)
210+
|| test_gemm_bias_nt(M, N, K, RandomMat(N), 3.1f, 0.6f, 1, 0, 0, 1, 1, 1);
211+
}
212+
73213
int main()
74214
{
75215
SRAND(7767517);
@@ -89,7 +229,7 @@ int main()
89229
int N = mnk[i][1];
90230
int K = mnk[i][2];
91231

92-
int ret = test_gemm_0(M, N, K);
232+
int ret = test_gemm_0(M, N, K) || test_gemm_1(M, N, K);
93233

94234
if (ret != 0)
95235
return ret;

0 commit comments

Comments
 (0)