summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcnugteren <web@cedricnugteren.nl>2016-04-13 21:44:49 -0600
committercnugteren <web@cedricnugteren.nl>2016-04-13 21:44:49 -0600
commite0497807e297e38884efae67a0109a160dc693b7 (patch)
treede692ac023bca1b6d75e2251ecce7d7fa771ccbb /src
parenta61724ece50ab895a67bc15ae3a132d0ecbe61bc (diff)
Added prototype for xASUM routines
Diffstat (limited to 'src')
-rw-r--r--src/clblast.cc25
-rw-r--r--src/clblast_c.cc42
2 files changed, 67 insertions, 0 deletions
diff --git a/src/clblast.cc b/src/clblast.cc
index 4f4b6078..4888faed 100644
--- a/src/clblast.cc
+++ b/src/clblast.cc
@@ -396,6 +396,31 @@ template StatusCode PUBLIC_API Nrm2<double2>(const size_t,
const cl_mem, const size_t, const size_t,
cl_command_queue*, cl_event*);
+// Absolute sum of values in a vector: SASUM/DASUM/ScASUM/DzASUM
+template <typename T>
+StatusCode Asum(const size_t,
+ cl_mem, const size_t,
+ const cl_mem, const size_t, const size_t,
+ cl_command_queue*, cl_event*) {
+ return StatusCode::kNotImplemented;
+}
+template StatusCode PUBLIC_API Asum<float>(const size_t,
+ cl_mem, const size_t,
+ const cl_mem, const size_t, const size_t,
+ cl_command_queue*, cl_event*);
+template StatusCode PUBLIC_API Asum<double>(const size_t,
+ cl_mem, const size_t,
+ const cl_mem, const size_t, const size_t,
+ cl_command_queue*, cl_event*);
+template StatusCode PUBLIC_API Asum<float2>(const size_t,
+ cl_mem, const size_t,
+ const cl_mem, const size_t, const size_t,
+ cl_command_queue*, cl_event*);
+template StatusCode PUBLIC_API Asum<double2>(const size_t,
+ cl_mem, const size_t,
+ const cl_mem, const size_t, const size_t,
+ cl_command_queue*, cl_event*);
+
// =================================================================================================
// BLAS level-2 (matrix-vector) routines
// =================================================================================================
diff --git a/src/clblast_c.cc b/src/clblast_c.cc
index 23e97bd5..c36edbca 100644
--- a/src/clblast_c.cc
+++ b/src/clblast_c.cc
@@ -433,6 +433,48 @@ StatusCode CLBlastDznrm2(const size_t n,
return static_cast<StatusCode>(status);
}
+// ASUM
+StatusCode CLBlastSasum(const size_t n,
+ cl_mem asum_buffer, const size_t asum_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event) {
+ auto status = clblast::Asum<float>(n,
+ asum_buffer, asum_offset,
+ x_buffer, x_offset, x_inc,
+ queue, event);
+ return static_cast<StatusCode>(status);
+}
+StatusCode CLBlastDasum(const size_t n,
+ cl_mem asum_buffer, const size_t asum_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event) {
+ auto status = clblast::Asum<double>(n,
+ asum_buffer, asum_offset,
+ x_buffer, x_offset, x_inc,
+ queue, event);
+ return static_cast<StatusCode>(status);
+}
+StatusCode CLBlastScasum(const size_t n,
+ cl_mem asum_buffer, const size_t asum_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event) {
+ auto status = clblast::Asum<float2>(n,
+ asum_buffer, asum_offset,
+ x_buffer, x_offset, x_inc,
+ queue, event);
+ return static_cast<StatusCode>(status);
+}
+StatusCode CLBlastDzasum(const size_t n,
+ cl_mem asum_buffer, const size_t asum_offset,
+ const cl_mem x_buffer, const size_t x_offset, const size_t x_inc,
+ cl_command_queue* queue, cl_event* event) {
+ auto status = clblast::Asum<double2>(n,
+ asum_buffer, asum_offset,
+ x_buffer, x_offset, x_inc,
+ queue, event);
+ return static_cast<StatusCode>(status);
+}
+
// =================================================================================================
// BLAS level-2 (matrix-vector) routines
// =================================================================================================