summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2018-08-13 22:58:44 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2018-08-13 22:58:44 +0200
commitbf43dbb4ee076ad74ea330fe87e457d20e297735 (patch)
tree515498d33951368cf997c5bf1790e6bea458b5cf /src
parent3115c15db5a3b8fae0e9788cbcadaba91920af3c (diff)
Made last operation in TRSV and TRSM asynchronous, making the events not null
Diffstat (limited to 'src')
-rw-r--r--src/clpp11.hpp5
-rw-r--r--src/routines/level2/xtrsv.cpp2
-rw-r--r--src/routines/level2/xtrsv.hpp1
-rw-r--r--src/routines/level3/xtrsm.cpp2
-rw-r--r--src/routines/level3/xtrsm.hpp1
5 files changed, 7 insertions, 4 deletions
diff --git a/src/clpp11.hpp b/src/clpp11.hpp
index 70da2329..94464990 100644
--- a/src/clpp11.hpp
+++ b/src/clpp11.hpp
@@ -729,9 +729,10 @@ class Buffer {
}
// Copies the contents of this buffer into another device buffer
- void CopyToAsync(const Queue &queue, const size_t size, const Buffer<T> &destination) const {
+ void CopyToAsync(const Queue &queue, const size_t size, const Buffer<T> &destination,
+ EventPointer event = nullptr) const {
CheckError(clEnqueueCopyBuffer(queue(), *buffer_, destination(), 0, 0, size*sizeof(T), 0,
- nullptr, nullptr));
+ nullptr, event));
}
void CopyTo(const Queue &queue, const size_t size, const Buffer<T> &destination) const {
CopyToAsync(queue, size, destination);
diff --git a/src/routines/level2/xtrsv.cpp b/src/routines/level2/xtrsv.cpp
index a87c5410..2a5a5664 100644
--- a/src/routines/level2/xtrsv.cpp
+++ b/src/routines/level2/xtrsv.cpp
@@ -154,7 +154,7 @@ void Xtrsv<T>::DoTrsv(const Layout layout, const Triangle triangle,
}
// Retrieves the results
- x_buffer.CopyTo(queue_, x_size, b_buffer);
+ x_buffer.CopyToAsync(queue_, x_size, b_buffer, event_);
}
// =================================================================================================
diff --git a/src/routines/level2/xtrsv.hpp b/src/routines/level2/xtrsv.hpp
index 798df792..8a900a35 100644
--- a/src/routines/level2/xtrsv.hpp
+++ b/src/routines/level2/xtrsv.hpp
@@ -32,6 +32,7 @@ class Xtrsv: public Xgemv<T> {
using Xgemv<T>::device_;
using Xgemv<T>::db_;
using Xgemv<T>::program_;
+ using Xgemv<T>::event_;
using Xgemv<T>::DoGemv;
// Constructor
diff --git a/src/routines/level3/xtrsm.cpp b/src/routines/level3/xtrsm.cpp
index 905660ff..fe5d1e14 100644
--- a/src/routines/level3/xtrsm.cpp
+++ b/src/routines/level3/xtrsm.cpp
@@ -246,7 +246,7 @@ void Xtrsm<T>::TrsmColMajor(const Side side, const Triangle triangle,
}
// Retrieves the results
- x_buffer.CopyTo(queue_, b_size, b_buffer);
+ x_buffer.CopyToAsync(queue_, b_size, b_buffer, event_);
}
// =================================================================================================
diff --git a/src/routines/level3/xtrsm.hpp b/src/routines/level3/xtrsm.hpp
index 5b42398e..871d7253 100644
--- a/src/routines/level3/xtrsm.hpp
+++ b/src/routines/level3/xtrsm.hpp
@@ -31,6 +31,7 @@ class Xtrsm: public Xgemm<T> {
using Xgemm<T>::device_;
using Xgemm<T>::db_;
using Xgemm<T>::program_;
+ using Xgemm<T>::event_;
using Xgemm<T>::DoGemm;
// Constructor