Description
Hi all,
first of all, congrats on a great library!
I am implementing a power method, and I would need to perform iterative calls to matrix vector multiplication (cgemv).
Currently, each call defines an event to notify when computation is finished, and I need to wait for that event, before I can issue the next multiplication.
I am just a newbie, and this might be an extremely stupid question... but:
Would it be possible to call CLBlast methods, defining an event that they need to wait for. What I would like to do is the following:
- call cgemv(M, V1, V2, event1); [wait for no events]
- call my normalization kernell [waits for event1, generates event2 when finished]
- call cgemv(M, V1, V2, event3); [waits for event2, notifies event3 when finished]
- call my normalization kernell again [waits for event3, generates event4 when finished]
- Keep iterating
I might be wrong, but I believe this could result in much better performance (issue all the commands from the CPU at once, let the events trigger other kernells from within OpenCL).
Anyways, I understand this might not be interesting for anyone, but I just wanted to share this thought...
Cheers!
Diego