// ================================================================================================= // 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 copy OpenCL kernels. // // ================================================================================================= #include "tuning/kernels/copy_fast.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[]) { 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::CopyGetTunerDefaults, clblast::CopyGetTunerSettings, clblast::CopyTestValidArguments, clblast::CopySetConstraints, clblast::CopyComputeLocalMemSize, clblast::CopySetArguments); break; case clblast::Precision::kSingle: clblast::Tuner(argc, argv, 0, clblast::CopyGetTunerDefaults, clblast::CopyGetTunerSettings, clblast::CopyTestValidArguments, clblast::CopySetConstraints, clblast::CopyComputeLocalMemSize, clblast::CopySetArguments); break; case clblast::Precision::kDouble: clblast::Tuner(argc, argv, 0, clblast::CopyGetTunerDefaults, clblast::CopyGetTunerSettings, clblast::CopyTestValidArguments, clblast::CopySetConstraints, clblast::CopyComputeLocalMemSize, clblast::CopySetArguments); break; case clblast::Precision::kComplexSingle: clblast::Tuner(argc, argv, 0, clblast::CopyGetTunerDefaults, clblast::CopyGetTunerSettings, clblast::CopyTestValidArguments, clblast::CopySetConstraints, clblast::CopyComputeLocalMemSize, clblast::CopySetArguments); break; case clblast::Precision::kComplexDouble: clblast::Tuner(argc, argv, 0, clblast::CopyGetTunerDefaults, clblast::CopyGetTunerSettings, clblast::CopyTestValidArguments, clblast::CopySetConstraints, clblast::CopyComputeLocalMemSize, clblast::CopySetArguments); break; } return 0; } // =================================================================================================