diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2018-03-10 14:35:11 +0100 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2018-03-10 14:35:11 +0100 |
commit | 3d2ef9331bd01bfc31d6725576c8ccb4eadbbc1c (patch) | |
tree | 8835c9dc1f02c58e8a9485a94d27fd2af123dc82 /src/tuning/tuning_api.cpp | |
parent | 0bdc51e47c97ef8c810d89cc8b2307bea4cbe852 (diff) |
Fixed a few things for the new tuning API
Diffstat (limited to 'src/tuning/tuning_api.cpp')
-rw-r--r-- | src/tuning/tuning_api.cpp | 67 |
1 files changed, 38 insertions, 29 deletions
diff --git a/src/tuning/tuning_api.cpp b/src/tuning/tuning_api.cpp index 4ffb46c2..5900378a 100644 --- a/src/tuning/tuning_api.cpp +++ b/src/tuning/tuning_api.cpp @@ -17,10 +17,19 @@ #include <random> #include <utility> #include <algorithm> -#include <cstdio> #include "tuning/tuning.hpp" +#include "tuning/kernels/xaxpy.hpp" +#include "tuning/kernels/xdot.hpp" +#include "tuning/kernels/xgemv.hpp" +#include "tuning/kernels/xger.hpp" +#include "tuning/kernels/xgemm.hpp" +#include "tuning/kernels/xgemm_direct.hpp" #include "tuning/kernels/copy_fast.hpp" +#include "tuning/kernels/copy_pad.hpp" +#include "tuning/kernels/transpose_fast.hpp" +#include "tuning/kernels/transpose_pad.hpp" +#include "tuning/kernels/invert.hpp" namespace clblast { // ================================================================================================= @@ -30,8 +39,8 @@ StatusCode TuneXaxpy(RawCommandQueue * queue, const size_t n, const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.n = n; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 0, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 0, XaxpyGetTunerDefaults, XaxpyGetTunerSettings<T>, + XaxpyTestValidArguments<T>, XaxpySetConstraints, XaxpySetArguments<T>, parameters); } template StatusCode TuneXaxpy<half>(RawCommandQueue*, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneXaxpy<float>(RawCommandQueue*, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -44,11 +53,11 @@ StatusCode TuneXdot(RawCommandQueue * queue, const size_t n, const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.n = n; auto queue_cpp = Queue(*queue); - auto status = TunerAPI<T>(queue_cpp, args, 1, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + auto status = TunerAPI<T>(queue_cpp, args, 1, XdotGetTunerDefaults, XdotGetTunerSettings<T>, + XdotTestValidArguments<T>, XdotSetConstraints, XdotSetArguments<T>, parameters); if (status != StatusCode::kSuccess) { return status; } - return TunerAPI<T>(queue_cpp, args, 2, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 2, XdotGetTunerDefaults, XdotGetTunerSettings<T>, + XdotTestValidArguments<T>, XdotSetConstraints, XdotSetArguments<T>, parameters); } template StatusCode TuneXdot<half>(RawCommandQueue*, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneXdot<float>(RawCommandQueue*, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -61,14 +70,14 @@ StatusCode TuneXgemv(RawCommandQueue * queue, const size_t m, const size_t n, const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; auto queue_cpp = Queue(*queue); - auto status = TunerAPI<T>(queue_cpp, args, 1, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + auto status = TunerAPI<T>(queue_cpp, args, 1, XgemvGetTunerDefaults, XgemvGetTunerSettings<T>, + XgemvTestValidArguments<T>, XgemvSetConstraints, XgemvSetArguments<T>, parameters); if (status != StatusCode::kSuccess) { return status; } - status = TunerAPI<T>(queue_cpp, args, 2, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + status = TunerAPI<T>(queue_cpp, args, 2, XgemvGetTunerDefaults, XgemvGetTunerSettings<T>, + XgemvTestValidArguments<T>, XgemvSetConstraints, XgemvSetArguments<T>, parameters); if (status != StatusCode::kSuccess) { return status; } - return TunerAPI<T>(queue_cpp, args, 3, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 3, XgemvGetTunerDefaults, XgemvGetTunerSettings<T>, + XgemvTestValidArguments<T>, XgemvSetConstraints, XgemvSetArguments<T>, parameters); } template StatusCode TuneXgemv<half>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneXgemv<float>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -81,8 +90,8 @@ StatusCode TuneXger(RawCommandQueue * queue, const size_t m, const size_t n, const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 0, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 0, XgerGetTunerDefaults, XgerGetTunerSettings<T>, + XgerTestValidArguments<T>, XgerSetConstraints, XgerSetArguments<T>, parameters); } template StatusCode TuneXger<half>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneXger<float>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -95,8 +104,8 @@ StatusCode TuneXgemm(RawCommandQueue * queue, const size_t m, const size_t n, co const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; args.k = k; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 2, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 2, XgemmGetTunerDefaults, XgemmGetTunerSettings<T>, + XgemmTestValidArguments<T>, XgemmSetConstraints, XgemmSetArguments<T>, parameters); } template StatusCode TuneXgemm<half>(RawCommandQueue*, const size_t, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneXgemm<float>(RawCommandQueue*, const size_t, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -109,8 +118,8 @@ StatusCode TuneXgemmDirect(RawCommandQueue * queue, const size_t m, const size_t const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; args.k = k; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 2, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 2, XgemmDirectGetTunerDefaults, XgemmDirectGetTunerSettings<T>, + XgemmDirectTestValidArguments<T>, XgemmDirectSetConstraints, XgemmDirectSetArguments<T>, parameters); } template StatusCode TuneXgemmDirect<half>(RawCommandQueue*, const size_t, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneXgemmDirect<float>(RawCommandQueue*, const size_t, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -123,8 +132,8 @@ StatusCode TuneCopy(RawCommandQueue * queue, const size_t m, const size_t n, const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 0, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 0, CopyGetTunerDefaults, CopyGetTunerSettings<T>, + CopyTestValidArguments<T>, CopySetConstraints, CopySetArguments<T>, parameters); } template StatusCode TuneCopy<half>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneCopy<float>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -137,8 +146,8 @@ StatusCode TunePad(RawCommandQueue * queue, const size_t m, const size_t n, const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 0, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 0, PadGetTunerDefaults, PadGetTunerSettings<T>, + PadTestValidArguments<T>, PadSetConstraints, PadSetArguments<T>, parameters); } template StatusCode TunePad<half>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TunePad<float>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -151,8 +160,8 @@ StatusCode TuneTranspose(RawCommandQueue * queue, const size_t m, const size_t n const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 0, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 0, TransposeGetTunerDefaults, TransposeGetTunerSettings<T>, + TransposeTestValidArguments<T>, TransposeSetConstraints, TransposeSetArguments<T>, parameters); } template StatusCode TuneTranspose<half>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneTranspose<float>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -165,8 +174,8 @@ StatusCode TunePadtranspose(RawCommandQueue * queue, const size_t m, const size_ const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 0, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 0, PadtransposeGetTunerDefaults, PadtransposeGetTunerSettings<T>, + PadtransposeTestValidArguments<T>, PadtransposeSetConstraints, PadtransposeSetArguments<T>, parameters); } template StatusCode TunePadtranspose<half>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TunePadtranspose<float>(RawCommandQueue*, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); @@ -179,8 +188,8 @@ StatusCode TuneInvert(RawCommandQueue * queue, const size_t m, const size_t n, c const double fraction, std::unordered_map<std::string,size_t> ¶meters) { auto args = Arguments<T>(); args.fraction = fraction; args.m = m; args.n = n; args.k = k; auto queue_cpp = Queue(*queue); - return TunerAPI<T>(queue_cpp, args, 0, GetTunerDefaults, GetTunerSettings<T>, - TestValidArguments<T>, SetConstraints, SetArguments<T>, parameters); + return TunerAPI<T>(queue_cpp, args, 0, InvertGetTunerDefaults, InvertGetTunerSettings<T>, + InvertTestValidArguments<T>, InvertSetConstraints, InvertSetArguments<T>, parameters); } template StatusCode TuneInvert<half>(RawCommandQueue*, const size_t, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); template StatusCode TuneInvert<float>(RawCommandQueue*, const size_t, const size_t, const size_t, const double, std::unordered_map<std::string,size_t>&); |