[all-commits] [llvm/llvm-project] 5b19f4: [OpenMP][AMDGPU] Single eager resource init + HSA ...

Michael Halkenhäuser via All-commits all-commits at lists.llvm.org
Wed Aug 2 05:24:19 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5b19f42b631dddf2bc69b667e560fd903b9ef689
      https://github.com/llvm/llvm-project/commit/5b19f42b631dddf2bc69b667e560fd903b9ef689
  Author: Michael Halkenhaeuser <MichaelGerald.Halkenhauser at amd.com>
  Date:   2023-08-02 (Wed, 02 Aug 2023)

  Changed paths:
    M openmp/docs/design/Runtimes.rst
    M openmp/libomptarget/include/Utilities.h
    M openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp
    M openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp
    M openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.h

  Log Message:
  -----------
  [OpenMP][AMDGPU] Single eager resource init + HSA queue utilization tracking

This patch lazily initializes queues/streams/events since their initialization
might come at a cost even if we do not use them.

To further benefit from this, AMDGPU/HSA queue management is moved into the
AMDGPUStreamManager of an AMDGPUDevice. Streams may now use different HSA queues
during their lifetime and identify busy queues.

When a Stream is requested from the resource manager, it will search for and
try to assign an idle queue. During the search for an idle queue the manager
may initialize more queues, up to the set maximum (default: 4).
When no idle queue could be found: resort to round robin selection.

With contributions from Johannes Doerfert <johannes at jdoerfert.de>

Depends on D156245

Reviewed By: kevinsala

Differential Revision: https://reviews.llvm.org/D154523




More information about the All-commits mailing list