Skip to content

Enqueue several calls  #337

Open
Open
@cabezabuque

Description

@cabezabuque

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:

  1. call cgemv(M, V1, V2, event1); [wait for no events]
  2. call my normalization kernell [waits for event1, generates event2 when finished]
  3. call cgemv(M, V1, V2, event3); [waits for event2, notifies event3 when finished]
  4. call my normalization kernell again [waits for event3, generates event4 when finished]
  5. 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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions