[Openmp-commits] [PATCH] D153837: Synchronize after each GPU action in the nextgen plugin

Kevin Sala via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Jul 17 07:01:37 PDT 2023


kevinsala added inline comments.


================
Comment at: openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp:218
+  // synchronize regardless of the local async info.
+  if (ForceSynchronize || AsyncInfoPtr == &LocalAsyncInfo && AsyncInfoPtr->Queue && !Err)
     Err = Device.synchronize(&LocalAsyncInfo);
----------------
I believe the parenthesis in my snippet above are necessary. As the code is now, it would synchronize inconditionally when the new envar is set. However, when there is no queue (stream) or there was a previous error (`Err`), we shouldn't synchronize. I think the condition should be:

```
if ((ForceSynchronization || AsyncInfoPtr == &LocalAsyncInfo) && AsyncInfoPtr->Queue && !Err)
```

Also, the `sycnhronize` call should be changed to the code below. Otherwise, we will always synchronize with the local async info.

```
Err = Device.synchronize(AsyncInfoPtr);
```


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

https://reviews.llvm.org/D153837



More information about the Openmp-commits mailing list