diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2016-06-16 18:07:46 +0200 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2016-06-16 18:07:46 +0200 |
commit | 52ccaf5b25e14c9ce032315e5e96b1f27886d481 (patch) | |
tree | 087288b7aebf2a06ffc4e7dcbcd4353f7a3be6a7 /src/tuning | |
parent | 39b7dbc5e37829abfbcfb77852b9138b31540b42 (diff) |
Added XOMATCOPY routines to perform out-of-place matrix scaling, copying, and/or transposing
Diffstat (limited to 'src/tuning')
-rw-r--r-- | src/tuning/copy_fast.cc | 4 | ||||
-rw-r--r-- | src/tuning/copy_pad.cc | 4 | ||||
-rw-r--r-- | src/tuning/transpose_fast.cc | 4 | ||||
-rw-r--r-- | src/tuning/transpose_pad.cc | 4 |
4 files changed, 12 insertions, 4 deletions
diff --git a/src/tuning/copy_fast.cc b/src/tuning/copy_fast.cc index 2da707be..09fdbaba 100644 --- a/src/tuning/copy_fast.cc +++ b/src/tuning/copy_fast.cc @@ -37,7 +37,7 @@ class TuneCopy { } // The list of arguments relevant for this routine - static std::vector<std::string> GetOptions() { return {kArgM, kArgN}; } + static std::vector<std::string> GetOptions() { return {kArgM, kArgN, kArgAlpha}; } // Tests for valid arguments static void TestValidArguments(const Arguments<T> &) { } @@ -86,9 +86,11 @@ class TuneCopy { std::vector<T> &, std::vector<T> &, std::vector<T> &a_mat, std::vector<T> &b_mat, std::vector<T> &, std::vector<T> &) { + auto alpha_buffer = std::vector<T>{args.alpha}; tuner.AddArgumentScalar(static_cast<int>(args.m)); tuner.AddArgumentInput(a_mat); tuner.AddArgumentOutput(b_mat); + tuner.AddArgumentInput(alpha_buffer); } // Describes how to compute the performance metrics diff --git a/src/tuning/copy_pad.cc b/src/tuning/copy_pad.cc index ec392471..7088b3bf 100644 --- a/src/tuning/copy_pad.cc +++ b/src/tuning/copy_pad.cc @@ -37,7 +37,7 @@ class TunePad { } // The list of arguments relevant for this routine - static std::vector<std::string> GetOptions() { return {kArgM, kArgN}; } + static std::vector<std::string> GetOptions() { return {kArgM, kArgN, kArgAlpha}; } // Tests for valid arguments static void TestValidArguments(const Arguments<T> &) { } @@ -86,6 +86,7 @@ class TunePad { std::vector<T> &, std::vector<T> &, std::vector<T> &a_mat, std::vector<T> &b_mat, std::vector<T> &, std::vector<T> &) { + auto alpha_buffer = std::vector<T>{args.alpha}; tuner.AddArgumentScalar(static_cast<int>(args.m)); tuner.AddArgumentScalar(static_cast<int>(args.n)); tuner.AddArgumentScalar(static_cast<int>(args.m)); @@ -96,6 +97,7 @@ class TunePad { tuner.AddArgumentScalar(static_cast<int>(args.m)); tuner.AddArgumentScalar(0); tuner.AddArgumentOutput(b_mat); + tuner.AddArgumentInput(alpha_buffer); tuner.AddArgumentScalar(0); } diff --git a/src/tuning/transpose_fast.cc b/src/tuning/transpose_fast.cc index 1a5260c1..3b0bdeb5 100644 --- a/src/tuning/transpose_fast.cc +++ b/src/tuning/transpose_fast.cc @@ -37,7 +37,7 @@ class TuneTranspose { } // The list of arguments relevant for this routine - static std::vector<std::string> GetOptions() { return {kArgM, kArgN}; } + static std::vector<std::string> GetOptions() { return {kArgM, kArgN, kArgAlpha}; } // Tests for valid arguments static void TestValidArguments(const Arguments<T> &) { } @@ -91,9 +91,11 @@ class TuneTranspose { std::vector<T> &, std::vector<T> &, std::vector<T> &a_mat, std::vector<T> &b_mat, std::vector<T> &, std::vector<T> &) { + auto alpha_buffer = std::vector<T>{args.alpha}; tuner.AddArgumentScalar(static_cast<int>(args.m)); tuner.AddArgumentInput(a_mat); tuner.AddArgumentOutput(b_mat); + tuner.AddArgumentInput(alpha_buffer); } // Describes how to compute the performance metrics diff --git a/src/tuning/transpose_pad.cc b/src/tuning/transpose_pad.cc index 08b52510..b9ab3ffa 100644 --- a/src/tuning/transpose_pad.cc +++ b/src/tuning/transpose_pad.cc @@ -37,7 +37,7 @@ class TunePadTranspose { } // The list of arguments relevant for this routine - static std::vector<std::string> GetOptions() { return {kArgM, kArgN}; } + static std::vector<std::string> GetOptions() { return {kArgM, kArgN, kArgAlpha}; } // Tests for valid arguments static void TestValidArguments(const Arguments<T> &) { } @@ -90,6 +90,7 @@ class TunePadTranspose { std::vector<T> &, std::vector<T> &, std::vector<T> &a_mat, std::vector<T> &b_mat, std::vector<T> &, std::vector<T> &) { + auto alpha_buffer = std::vector<T>{args.alpha}; tuner.AddArgumentScalar(static_cast<int>(args.m)); tuner.AddArgumentScalar(static_cast<int>(args.n)); tuner.AddArgumentScalar(static_cast<int>(args.m)); @@ -100,6 +101,7 @@ class TunePadTranspose { tuner.AddArgumentScalar(static_cast<int>(args.n)); tuner.AddArgumentScalar(0); tuner.AddArgumentOutput(b_mat); + tuner.AddArgumentInput(alpha_buffer); tuner.AddArgumentScalar(0); } |