mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-05-05 14:11:29 +00:00
* revert ckprofiler change * temp save * Add test and test pass * test pass * Fix bug inside rotating buffer when tensor is not packed * bug fix * clang format --------- Co-authored-by: Illia Silin <98187287+illsilin@users.noreply.github.com>
242 lines
4.9 KiB
C++
242 lines
4.9 KiB
C++
#pragma once
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_KN, SmallM)
|
|
{
|
|
std::vector<int> Ms{1, 2, 3, 4, 5, 6};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_NK, SmallM)
|
|
{
|
|
std::vector<int> Ms{1, 2, 3, 4, 5, 6};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = K;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_KN, SmallM)
|
|
{
|
|
std::vector<int> Ms{1, 2, 3, 4, 5, 6};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_NK, SmallM)
|
|
{
|
|
std::vector<int> Ms{1, 2, 3, 4, 5, 6};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_KN, MidLargeM)
|
|
{
|
|
std::vector<int> Ms{127, 255, 312, 799, 1573};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_NK, MidLargeM)
|
|
{
|
|
std::vector<int> Ms{127, 255, 312, 799, 1573};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = K;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_KN, MidLargeM)
|
|
{
|
|
std::vector<int> Ms{127, 255, 312, 799, 1573};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_NK, MidLargeM)
|
|
{
|
|
std::vector<int> Ms{127, 255, 312, 799, 1573};
|
|
constexpr int N = 512;
|
|
constexpr int K = 320;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_KN, PaddK)
|
|
{
|
|
std::vector<int> Ms{127};
|
|
constexpr int N = 512;
|
|
constexpr int K = 437;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_NK, PaddK)
|
|
{
|
|
std::vector<int> Ms{127};
|
|
constexpr int N = 512;
|
|
constexpr int K = 437;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = K;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_KN, PaddK)
|
|
{
|
|
std::vector<int> Ms{127};
|
|
constexpr int N = 512;
|
|
constexpr int K = 437;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_NK, PaddK)
|
|
{
|
|
std::vector<int> Ms{127};
|
|
constexpr int N = 512;
|
|
constexpr int K = 437;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_KN, Regular)
|
|
{
|
|
std::vector<int> Ms{512};
|
|
constexpr int N = 512;
|
|
constexpr int K = 512;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_MK_NK, Regular)
|
|
{
|
|
std::vector<int> Ms{512};
|
|
constexpr int N = 512;
|
|
constexpr int K = 512;
|
|
|
|
constexpr int StrideA = K;
|
|
constexpr int StrideB = K;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_KN, Regular)
|
|
{
|
|
std::vector<int> Ms{512};
|
|
constexpr int N = 512;
|
|
constexpr int K = 512;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|
|
|
|
TYPED_TEST(TestGemmUniversal_KM_NK, Regular)
|
|
{
|
|
std::vector<int> Ms{512};
|
|
constexpr int N = 512;
|
|
constexpr int K = 512;
|
|
|
|
constexpr int StrideB = N;
|
|
constexpr int StrideC = N;
|
|
|
|
for(int M : Ms)
|
|
{
|
|
int StrideA = M;
|
|
this->Run(M, N, K, StrideA, StrideB, StrideC);
|
|
}
|
|
}
|