summaryrefslogtreecommitdiff
path: root/src/routines
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2016-03-06 16:43:28 +0100
committerCedric Nugteren <web@cedricnugteren.nl>2016-03-06 16:43:28 +0100
commitf4c09220c196f09a5494378d39e8d7c626e6d377 (patch)
tree8319bf9498fd88d1ebbd1daff941ee99bdc88786 /src/routines
parentfb58129afbbb4ff758924b9187cac4c954cafd0f (diff)
Fixed a bug in the GER-family of routines due to incorrect division of the workgroup size
Diffstat (limited to 'src/routines')
-rw-r--r--src/routines/level2/xger.cc4
-rw-r--r--src/routines/level2/xher.cc4
-rw-r--r--src/routines/level2/xher2.cc4
3 files changed, 6 insertions, 6 deletions
diff --git a/src/routines/level2/xger.cc b/src/routines/level2/xger.cc
index 0953c8bb..d8fb6b03 100644
--- a/src/routines/level2/xger.cc
+++ b/src/routines/level2/xger.cc
@@ -85,8 +85,8 @@ StatusCode Xger<T>::DoGer(const Layout layout,
kernel.SetArgument(12, static_cast<int>(a_is_rowmajor));
// Launches the kernel
- auto a_one_ceiled = CeilDiv(Ceil(a_one, db_["WGS1"]), db_["WPT"]);
- auto a_two_ceiled = CeilDiv(Ceil(a_two, db_["WGS2"]), db_["WPT"]);
+ auto a_one_ceiled = Ceil(CeilDiv(a_one, db_["WPT"]), db_["WGS1"]);
+ auto a_two_ceiled = Ceil(CeilDiv(a_two, db_["WPT"]), db_["WGS2"]);
auto global = std::vector<size_t>{a_one_ceiled, a_two_ceiled};
auto local = std::vector<size_t>{db_["WGS1"], db_["WGS2"]};
status = RunKernel(kernel, global, local);
diff --git a/src/routines/level2/xher.cc b/src/routines/level2/xher.cc
index 5eca44b0..c025117b 100644
--- a/src/routines/level2/xher.cc
+++ b/src/routines/level2/xher.cc
@@ -95,8 +95,8 @@ StatusCode Xher<T,U>::DoHer(const Layout layout, const Triangle triangle,
kernel.SetArgument(9, static_cast<int>(is_rowmajor));
// Launches the kernel
- auto global_one = CeilDiv(Ceil(n, db_["WGS1"]), db_["WPT"]);
- auto global_two = CeilDiv(Ceil(n, db_["WGS2"]), db_["WPT"]);
+ auto global_one = Ceil(CeilDiv(n, db_["WPT"]), db_["WGS1"]);
+ auto global_two = Ceil(CeilDiv(n, db_["WPT"]), db_["WGS2"]);
auto global = std::vector<size_t>{global_one, global_two};
auto local = std::vector<size_t>{db_["WGS1"], db_["WGS2"]};
status = RunKernel(kernel, global, local);
diff --git a/src/routines/level2/xher2.cc b/src/routines/level2/xher2.cc
index 63144f77..bfa84d18 100644
--- a/src/routines/level2/xher2.cc
+++ b/src/routines/level2/xher2.cc
@@ -87,8 +87,8 @@ StatusCode Xher2<T>::DoHer2(const Layout layout, const Triangle triangle,
kernel.SetArgument(12, static_cast<int>(is_rowmajor));
// Launches the kernel
- auto global_one = CeilDiv(Ceil(n, db_["WGS1"]), db_["WPT"]);
- auto global_two = CeilDiv(Ceil(n, db_["WGS2"]), db_["WPT"]);
+ auto global_one = Ceil(CeilDiv(n, db_["WPT"]), db_["WGS1"]);
+ auto global_two = Ceil(CeilDiv(n, db_["WPT"]), db_["WGS2"]);
auto global = std::vector<size_t>{global_one, global_two};
auto local = std::vector<size_t>{db_["WGS1"], db_["WGS2"]};
status = RunKernel(kernel, global, local);