// ================================================================================================= // This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This // project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- // width of 100 characters per line. // // Author(s): // Cedric Nugteren // // This file uses the auto-tuner to tune the convgemm kernels. // // ================================================================================================= #include "tuning/kernels/xconvgemm.hpp" // Shortcuts to the clblast namespace using half = clblast::half; using float2 = clblast::float2; using double2 = clblast::double2; // Function to tune a specific variation V (not within the clblast namespace) template void StartVariation(int argc, char *argv[]) { const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv); switch(clblast::GetPrecision(command_line_args)) { case clblast::Precision::kHalf: clblast::Tuner(argc, argv, V, clblast::XConvGemmGetTunerDefaults, clblast::XConvGemmGetTunerSettings, clblast::XConvGemmTestValidArguments, clblast::XConvGemmSetConstraints, clblast::XConvGemmComputeLocalMemSize, clblast::XConvGemmSetArguments); break; case clblast::Precision::kSingle: clblast::Tuner(argc, argv, V, clblast::XConvGemmGetTunerDefaults, clblast::XConvGemmGetTunerSettings, clblast::XConvGemmTestValidArguments, clblast::XConvGemmSetConstraints, clblast::XConvGemmComputeLocalMemSize, clblast::XConvGemmSetArguments); break; case clblast::Precision::kDouble: clblast::Tuner(argc, argv, V, clblast::XConvGemmGetTunerDefaults, clblast::XConvGemmGetTunerSettings, clblast::XConvGemmTestValidArguments, clblast::XConvGemmSetConstraints, clblast::XConvGemmComputeLocalMemSize, clblast::XConvGemmSetArguments); break; } } // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { try { StartVariation<1>(argc, argv); return 0; } catch (...) { return static_cast(clblast::DispatchException()); } } // =================================================================================================