From 3115c15db5a3b8fae0e9788cbcadaba91920af3c Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Mon, 13 Aug 2018 22:57:10 +0200 Subject: Small refactoring of events in TRSV substitution routine --- src/routines/level2/xtrsv.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/routines/level2/xtrsv.cpp') diff --git a/src/routines/level2/xtrsv.cpp b/src/routines/level2/xtrsv.cpp index 76401753..a87c5410 100644 --- a/src/routines/level2/xtrsv.cpp +++ b/src/routines/level2/xtrsv.cpp @@ -33,7 +33,8 @@ void Xtrsv::Substitution(const Layout layout, const Triangle triangle, const size_t n, const Buffer &a_buffer, const size_t a_offset, const size_t a_ld, const Buffer &b_buffer, const size_t b_offset, const size_t b_inc, - const Buffer &x_buffer, const size_t x_offset, const size_t x_inc) { + const Buffer &x_buffer, const size_t x_offset, const size_t x_inc, + EventPointer event) { if (n > db_["TRSV_BLOCK_SIZE"]) { throw BLASError(StatusCode::kUnexpectedError); }; @@ -69,9 +70,7 @@ void Xtrsv::Substitution(const Layout layout, const Triangle triangle, // Launches the kernel const auto local = std::vector{db_["TRSV_BLOCK_SIZE"]}; const auto global = std::vector{Ceil(n, db_["TRSV_BLOCK_SIZE"])}; - auto event = Event(); - RunKernel(kernel, queue_, device_, global, local, event.pointer()); - event.WaitForCompletion(); + RunKernel(kernel, queue_, device_, global, local, event); } // ================================================================================================= @@ -146,10 +145,12 @@ void Xtrsv::DoTrsv(const Layout layout, const Triangle triangle, } // Runs the triangular substitution for the block size + auto sub_event = Event(); Substitution(layout, triangle, a_transpose, diagonal, block_size, a_buffer, a_offset + col + col*a_ld, a_ld, b_buffer, b_offset + col*b_inc, b_inc, - x_buffer, x_offset + col*x_inc, x_inc); + x_buffer, x_offset + col*x_inc, x_inc, sub_event.pointer()); + sub_event.WaitForCompletion(); } // Retrieves the results -- cgit v1.2.3