mirror of
https://github.com/Tencent/ncnn.git
synced 2026-10-19 06:21:39 +08:00
63a7a8a590
* split gemm tests, enable gemm vulkan any packing
72 lines
1.5 KiB
C++
72 lines
1.5 KiB
C++
// Copyright 2023 Tencent
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
#include "test_gemm_1.h"
|
|
|
|
int main()
|
|
{
|
|
SRAND(7767517);
|
|
|
|
int mnk[][3] = {
|
|
{1, 1, 1},
|
|
{2, 2, 2},
|
|
{3, 3, 3},
|
|
{4, 4, 4},
|
|
{5, 5, 5},
|
|
{6, 6, 6},
|
|
{7, 7, 7},
|
|
{8, 8, 8},
|
|
{15, 15, 15},
|
|
{16, 16, 16},
|
|
{24, 24, 24},
|
|
{31, 31, 31},
|
|
{31, 32, 31},
|
|
{32, 31, 32},
|
|
{32, 32, 32},
|
|
{20, 32, 20}
|
|
};
|
|
|
|
int tile_mnk[][3] = {
|
|
{1, 1, 1},
|
|
{2, 2, 2},
|
|
{4, 4, 4},
|
|
{8, 8, 8},
|
|
{12, 12, 12},
|
|
{16, 16, 16},
|
|
{20, 20, 20},
|
|
{24, 24, 24},
|
|
{28, 28, 28}
|
|
};
|
|
|
|
int mnk_count = sizeof(mnk) / sizeof(int) / 3;
|
|
int tile_mnk_count = sizeof(tile_mnk) / sizeof(int) / 3;
|
|
|
|
for (int i = 0; i < mnk_count; i++)
|
|
{
|
|
int M = mnk[i][0];
|
|
int N = mnk[i][1];
|
|
int K = mnk[i][2];
|
|
|
|
for (int j = 0; j < tile_mnk_count; j++)
|
|
{
|
|
int TILE_M = tile_mnk[j][0];
|
|
int TILE_N = tile_mnk[j][1];
|
|
int TILE_K = tile_mnk[j][2];
|
|
|
|
if (TILE_M >= M && TILE_N >= N && TILE_K >= K)
|
|
continue;
|
|
|
|
int ret = test_gemm_0(M, N, K, TILE_M, TILE_N, TILE_K);
|
|
if (ret != 0)
|
|
return ret;
|
|
}
|
|
|
|
// test no tiling
|
|
int ret = test_gemm_0(M, N, K, 100, 100, 100);
|
|
if (ret != 0)
|
|
return ret;
|
|
}
|
|
|
|
return 0;
|
|
}
|