User Details
- User Since
- Aug 10 2022, 7:24 AM (58 w, 3 d)
Aug 6 2023
LGTM. Thanks!
Aug 4 2023
I would keep it simple:
Fixing issues
Aug 3 2023
Aug 2 2023
Aug 1 2023
Looks good to me now. Thanks!
Jul 31 2023
Jul 27 2023
Removing unused function
Jul 25 2023
Rebasing
Jul 18 2023
Fixing comments.
Simplifying patch.
Jul 17 2023
Jul 11 2023
Jun 27 2023
Please also document the new envar in openmp/docs/design/Runtimes.rst, in the Libomptarget Environment Variables section.
May 9 2023
Updating patch to initial version. We make sure in libomptarget that the device is initialized (ready) when printing its information. Together with https://reviews.llvm.org/D148178, it should fix the llvm-omp-device-info command.
Apr 21 2023
Fixed format
Fixed reviewers' comments
Apr 20 2023
Fixing review comments and other improvements.
Examples of llvm-omp-device-info in AMDGPU and NVIDIA devices:
Added support for CUDA plugin and improved generic code.
Apr 18 2023
Updated patch removing the error return from AsyncInfoWrapperTy::finalize().
Apr 12 2023
Example of a device info printing for a AMDGPU device:
Apr 11 2023
Apr 4 2023
This patch is to support setting thread_limit clause to -1? Or is it for another case? If I'm not wrong, the OpenMP standard specifies that the value for thread_limit clause should be positive.
Mar 28 2023
Removed unrelated change
Mar 27 2023
Mar 21 2023
Mar 15 2023
There is also the option to auto initialize the devices at the plugin level when GenericPluginTy::getDevice(N) is called and device N is in a uninitialized state. In my opinion, that would be the safest option and would cover all cases. But it will require implementing a similar mechanism from libomptarget level to guarantee the device creation and initialization is tread-safe and serialized (i.e., std::call_once in libomptarget).
The initial patch should fix the crash for the llvm-omp-device-info case, or any other case calling __tgt_print_device_info. I saw lazy initialization of devices in other API calls and tried to reproduced the same behavior. Anyway, initializing them explicitly from the tool seems more clean, so I just updated the patch with it.
Explicitly initializing devices from llvm-omp-device-info tool.
Mar 14 2023
This patch is still missing a test.
Removing most references to NextGen plugins and assuming this is the only plugin implementation available. Now it should be consistent with D142820. Fixing format too.
Mar 13 2023
Mar 2 2023
Already fixed in D145105.
Feb 28 2023
Feb 13 2023
LGTM
Feb 10 2023
LGTM
Feb 6 2023
Feb 3 2023
The locking of mapped host buffers is disabled by default. Can be enabled through the LIBOMPTARGET_LOCK_MAPPED_HOST_BUFFERS envar. The envar accepts boolean values (on/off) and a special option:
- off: Do not lock mapped host buffers (default).
- on: Lock mapped host buffers automatically, but do not report lock failures if the plugin fails to lock them.
- mandatory: Lock mapped host buffers automatically and treat locking failures in the plugins as fatal errors. This option may be useful for debugging purposes.
Feb 2 2023
LGTM
Jan 29 2023
Fix debug print
Jan 28 2023
Fixing bug. Now complex reduction tests work.
Jan 27 2023
Fix format.
Jan 26 2023
Changes:
- Fixing comments.
- Re-writing the PinnedAllocationMapTy functions to be clearer and easier to read.
- Renaming RTL API functions.
- Disable automatic locking of mapped host buffers by default. Can be enabled by setting LIBOMPTARGET_LOCK_MAPPED_HOST_BUFFERS envar.
- Although the previous envar is not set, mapped buffers that were externally locked (e.g, the app allocating HSA memory) are registered into the plugin's map and we use a single-step asynchronous HSA memory transfer. (@ye-luo)