1
2 // =================================================================================================
3 // This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
4 // project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
5 // width of 100 characters per line.
6 //
7 // Author(s):
8 // Cedric Nugteren <www.cedricnugteren.nl>
9 //
10 // =================================================================================================
11
12 #include "test/performance/client.hpp"
13 #include "test/routines/level3/xgemm.hpp"
14
15 // Main function (not within the clblast namespace)
main(int argc,char * argv[])16 int main(int argc, char *argv[]) {
17 const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv);
18 switch(clblast::GetPrecision(command_line_args, clblast::Precision::kSingle)) {
19 case clblast::Precision::kHalf:
20 clblast::RunClient<clblast::TestXgemm<clblast::half>, clblast::half, clblast::half>(argc, argv); break;
21 case clblast::Precision::kSingle:
22 clblast::RunClient<clblast::TestXgemm<float>, float, float>(argc, argv); break;
23 case clblast::Precision::kDouble:
24 clblast::RunClient<clblast::TestXgemm<double>, double, double>(argc, argv); break;
25 case clblast::Precision::kComplexSingle:
26 clblast::RunClient<clblast::TestXgemm<clblast::float2>, clblast::float2, clblast::float2>(argc, argv); break;
27 case clblast::Precision::kComplexDouble:
28 clblast::RunClient<clblast::TestXgemm<clblast::double2>, clblast::double2, clblast::double2>(argc, argv); break;
29 }
30 return 0;
31 }
32
33 // =================================================================================================
34