tianshilei1992 added a comment.

> If I remember correctly, you may yield the thread inside a target region 
> after enqueuing kernels and transfers. So even with 1 thread, there is chance 
> to run other tasks without finishing this target. Isn't that possible?

I assume you were referring to `taskyield` because thread yield doesn't make 
sense here. I don't think it can help. Where should we insert the task yield? 
What's more, yielding current task means "blocking" the encountering thread, so 
it has no difference from executing it immediately. Besides, we do 
synchronization at the end of wrapped task.

The only way to make things right w/o using unshackled task when we only have 
one regular OpenMP thread, or say user-visible thread, is to use detached task. 
However, like we talked in the paper, it has some drawbacks so that we decided 
to use unshackled tasks.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D78075/new/

https://reviews.llvm.org/D78075

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to