[all-commits] [llvm/llvm-project] a697a0: [OpenMP][Plugin] Introduce generic resource pool
Shilei Tian via All-commits
all-commits at lists.llvm.org
Mon Dec 27 08:32:25 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: a697a0a4b669a2b99cc973fe5f5164df309d285c
https://github.com/llvm/llvm-project/commit/a697a0a4b669a2b99cc973fe5f5164df309d285c
Author: Shilei Tian <i at tianshilei.me>
Date: 2021-12-27 (Mon, 27 Dec 2021)
Changed paths:
M openmp/libomptarget/plugins/cuda/src/rtl.cpp
Log Message:
-----------
[OpenMP][Plugin] Introduce generic resource pool
Currently CUDA streams are managed by `StreamManagerTy`. It works very well. Now
we have the need that some resources, such as CUDA stream and event, will be
hold by `libomptarget`. It is always good to buffer those resources. What's more
important, given the way that `libomptarget` and plugins are connected, we cannot
make sure whether plugins are still alive when `libomptarget` is destroyed. That
leads to an issue that those resouces hold by `libomptarget` might not be
released correctly. As a result, we need an unified management of all the resources
that can be shared between `libomptarget` and plugins.
`ResourcePoolTy` is designed to manage the type of resource for one device.
It has to work with an allocator which is supposed to provide `create` and
`destroy`. In this way, when the plugin is destroyed, we can make sure that
all resources allocated from native runtime library will be released correctly,
no matter whether `libomptarget` starts its destroy.
Reviewed By: ye-luo
Differential Revision: https://reviews.llvm.org/D111954
More information about the All-commits
mailing list