diff options
author | cnugteren <web@cedricnugteren.nl> | 2016-04-09 22:22:24 -0600 |
---|---|---|
committer | cnugteren <web@cedricnugteren.nl> | 2016-04-09 22:22:24 -0600 |
commit | 1d3d38a2618c5663bf1549b08805137fd85f2efa (patch) | |
tree | 5de200346fc3d87c6e353d84744c59b2c703c16d /src/routines/level3/xhemm.cc | |
parent | c2cfee76c4d8f7486d5b62b3e0a878867a32a070 (diff) |
Events are now properly implemented using event waiting list and asking the user to wait for event completion
Diffstat (limited to 'src/routines/level3/xhemm.cc')
-rw-r--r-- | src/routines/level3/xhemm.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/routines/level3/xhemm.cc b/src/routines/level3/xhemm.cc index bcc60dee..c0a4306a 100644 --- a/src/routines/level3/xhemm.cc +++ b/src/routines/level3/xhemm.cc @@ -21,7 +21,7 @@ namespace clblast { // Constructor: forwards to base class constructor template <typename T> -Xhemm<T>::Xhemm(Queue &queue, Event &event, const std::string &name): +Xhemm<T>::Xhemm(Queue &queue, EventPointer event, const std::string &name): Xgemm<T>(queue, event, name) { } @@ -79,9 +79,13 @@ StatusCode Xhemm<T>::DoHemm(const Layout layout, const Side side, const Triangle auto global = std::vector<size_t>{Ceil(CeilDiv(k, db_["PAD_WPTX"]), db_["PAD_DIMX"]), Ceil(CeilDiv(k, db_["PAD_WPTY"]), db_["PAD_DIMY"])}; auto local = std::vector<size_t>{db_["PAD_DIMX"], db_["PAD_DIMY"]}; - status = RunKernel(kernel, global, local); + auto kernelEvent = Event(); + status = RunKernel(kernel, global, local, kernelEvent.pointer()); if (ErrorIn(status)) { return status; } + // Synchronize now: 'DoGemm' does not accept a list of events to wait for + kernelEvent.WaitForCompletion(); + // Runs the regular Xgemm code with either "C := AB+C" or ... if (side == Side::kLeft) { status = DoGemm(layout, Transpose::kNo, Transpose::kNo, |