diff options
Diffstat (limited to 'src/routines/level2')
-rw-r--r-- | src/routines/level2/xgemv.cc | 13 | ||||
-rw-r--r-- | src/routines/level2/xger.cc | 13 | ||||
-rw-r--r-- | src/routines/level2/xher.cc | 13 | ||||
-rw-r--r-- | src/routines/level2/xher2.cc | 13 |
4 files changed, 8 insertions, 44 deletions
diff --git a/src/routines/level2/xgemv.cc b/src/routines/level2/xgemv.cc index b997673b..ea3b245d 100644 --- a/src/routines/level2/xgemv.cc +++ b/src/routines/level2/xgemv.cc @@ -19,19 +19,10 @@ namespace clblast { // ================================================================================================= -// Specific implementations to get the memory-type based on a template argument -template <> const Precision Xgemv<half>::precision_ = Precision::kHalf; -template <> const Precision Xgemv<float>::precision_ = Precision::kSingle; -template <> const Precision Xgemv<double>::precision_ = Precision::kDouble; -template <> const Precision Xgemv<float2>::precision_ = Precision::kComplexSingle; -template <> const Precision Xgemv<double2>::precision_ = Precision::kComplexDouble; - -// ================================================================================================= - // Constructor: forwards to base class constructor template <typename T> Xgemv<T>::Xgemv(Queue &queue, EventPointer event, const std::string &name): - Routine<T>(queue, event, name, {"Pad", "Xgemv"}, precision_) { + Routine<T>(queue, event, name, {"Pad", "Xgemv"}, PrecisionValue<T>()) { source_string_ = #include "../../kernels/level2/xgemv.opencl" #include "../../kernels/level2/xgemv_fast.opencl" @@ -143,7 +134,7 @@ StatusCode Xgemv<T>::MatVec(const Layout layout, const Transpose a_transpose, // Retrieves the Xgemv kernel from the compiled binary try { - const auto program = GetProgramFromCache(context_, precision_, routine_name_); + const auto program = GetProgramFromCache(context_, PrecisionValue<T>(), routine_name_); auto kernel = Kernel(program, kernel_name); // Sets the kernel arguments diff --git a/src/routines/level2/xger.cc b/src/routines/level2/xger.cc index e2f7397a..e487d41b 100644 --- a/src/routines/level2/xger.cc +++ b/src/routines/level2/xger.cc @@ -19,19 +19,10 @@ namespace clblast { // ================================================================================================= -// Specific implementations to get the memory-type based on a template argument -template <> const Precision Xger<half>::precision_ = Precision::kHalf; -template <> const Precision Xger<float>::precision_ = Precision::kSingle; -template <> const Precision Xger<double>::precision_ = Precision::kDouble; -template <> const Precision Xger<float2>::precision_ = Precision::kComplexSingle; -template <> const Precision Xger<double2>::precision_ = Precision::kComplexDouble; - -// ================================================================================================= - // Constructor: forwards to base class constructor template <typename T> Xger<T>::Xger(Queue &queue, EventPointer event, const std::string &name): - Routine<T>(queue, event, name, {"Xger"}, precision_) { + Routine<T>(queue, event, name, {"Xger"}, PrecisionValue<T>()) { source_string_ = #include "../../kernels/level2/level2.opencl" #include "../../kernels/level2/xger.opencl" @@ -71,7 +62,7 @@ StatusCode Xger<T>::DoGer(const Layout layout, // Retrieves the kernel from the compiled binary try { - const auto program = GetProgramFromCache(context_, precision_, routine_name_); + const auto program = GetProgramFromCache(context_, PrecisionValue<T>(), routine_name_); auto kernel = Kernel(program, "Xger"); // Sets the kernel arguments diff --git a/src/routines/level2/xher.cc b/src/routines/level2/xher.cc index 3ee3911a..08ff5a2e 100644 --- a/src/routines/level2/xher.cc +++ b/src/routines/level2/xher.cc @@ -18,19 +18,10 @@ namespace clblast { // ================================================================================================= -// Specific implementations to get the memory-type based on a template argument -template <> const Precision Xher<half, half>::precision_ = Precision::kHalf; -template <> const Precision Xher<float, float>::precision_ = Precision::kSingle; -template <> const Precision Xher<double, double>::precision_ = Precision::kDouble; -template <> const Precision Xher<float2, float>::precision_ = Precision::kComplexSingle; -template <> const Precision Xher<double2, double>::precision_ = Precision::kComplexDouble; - -// ================================================================================================= - // Constructor: forwards to base class constructor template <typename T, typename U> Xher<T,U>::Xher(Queue &queue, EventPointer event, const std::string &name): - Routine<T>(queue, event, name, {"Xger"}, precision_) { + Routine<T>(queue, event, name, {"Xger"}, PrecisionValue<T>()) { source_string_ = #include "../../kernels/level2/level2.opencl" #include "../../kernels/level2/xher.opencl" @@ -85,7 +76,7 @@ StatusCode Xher<T,U>::DoHer(const Layout layout, const Triangle triangle, // Retrieves the kernel from the compiled binary try { - const auto program = GetProgramFromCache(context_, precision_, routine_name_); + const auto program = GetProgramFromCache(context_, PrecisionValue<T>(), routine_name_); auto kernel = Kernel(program, "Xher"); // Sets the kernel arguments diff --git a/src/routines/level2/xher2.cc b/src/routines/level2/xher2.cc index 9edc1dd9..d5d4323b 100644 --- a/src/routines/level2/xher2.cc +++ b/src/routines/level2/xher2.cc @@ -18,19 +18,10 @@ namespace clblast { // ================================================================================================= -// Specific implementations to get the memory-type based on a template argument -template <> const Precision Xher2<half>::precision_ = Precision::kHalf; -template <> const Precision Xher2<float>::precision_ = Precision::kSingle; -template <> const Precision Xher2<double>::precision_ = Precision::kDouble; -template <> const Precision Xher2<float2>::precision_ = Precision::kComplexSingle; -template <> const Precision Xher2<double2>::precision_ = Precision::kComplexDouble; - -// ================================================================================================= - // Constructor: forwards to base class constructor template <typename T> Xher2<T>::Xher2(Queue &queue, EventPointer event, const std::string &name): - Routine<T>(queue, event, name, {"Xger"}, precision_) { + Routine<T>(queue, event, name, {"Xger"}, PrecisionValue<T>()) { source_string_ = #include "../../kernels/level2/level2.opencl" #include "../../kernels/level2/xher2.opencl" @@ -73,7 +64,7 @@ StatusCode Xher2<T>::DoHer2(const Layout layout, const Triangle triangle, // Retrieves the kernel from the compiled binary try { - const auto program = GetProgramFromCache(context_, precision_, routine_name_); + const auto program = GetProgramFromCache(context_, PrecisionValue<T>(), routine_name_); auto kernel = Kernel(program, "Xher2"); // Sets the kernel arguments |