// ================================================================================================= // 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 xger OpenCL kernels. // // ================================================================================================= #include "tuning/kernels/xger.hpp" // Shortcuts to the clblast namespace using half = clblast::half; using float2 = clblast::float2; using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { try { const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv); switch(clblast::GetPrecision(command_line_args)) { case clblast::Precision::kHalf: clblast::Tuner(argc, argv, 0, clblast::XgerGetTunerDefaults, clblast::XgerGetTunerSettings, clblast::XgerTestValidArguments, clblast::XgerSetConstraints, clblast::XgerComputeLocalMemSize, clblast::XgerSetArguments); break; case clblast::Precision::kSingle: clblast::Tuner(argc, argv, 0, clblast::XgerGetTunerDefaults, clblast::XgerGetTunerSettings, clblast::XgerTestValidArguments, clblast::XgerSetConstraints, clblast::XgerComputeLocalMemSize, clblast::XgerSetArguments); break; case clblast::Precision::kDouble: clblast::Tuner(argc, argv, 0, clblast::XgerGetTunerDefaults, clblast::XgerGetTunerSettings, clblast::XgerTestValidArguments, clblast::XgerSetConstraints, clblast::XgerComputeLocalMemSize, clblast::XgerSetArguments); break; case clblast::Precision::kComplexSingle: clblast::Tuner(argc, argv, 0, clblast::XgerGetTunerDefaults, clblast::XgerGetTunerSettings, clblast::XgerTestValidArguments, clblast::XgerSetConstraints, clblast::XgerComputeLocalMemSize, clblast::XgerSetArguments); break; case clblast::Precision::kComplexDouble: clblast::Tuner(argc, argv, 0, clblast::XgerGetTunerDefaults, clblast::XgerGetTunerSettings, clblast::XgerTestValidArguments, clblast::XgerSetConstraints, clblast::XgerComputeLocalMemSize, clblast::XgerSetArguments); break; } return 0; } catch (...) { return static_cast(clblast::DispatchException()); } } // =================================================================================================