| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Offload][OMPT] Add callbacks for (dis)associate_ptr (#99046) This adds the OMPT callbacks for the API functions disassociate_ptr and associate_ptr. | 2 年前 | |
[Offload][NFC] Remove 'libomptarget' message helpers (#92581) Summary: This isn't libomptarget anymore, and these messages were always unnecessary because no other project uses these prefixed messages. The effect of this is that no longer will the logs have LIBOMPTARGET -- in front of everything. We have a message stating when we start building the offload project so it'll still be trivial to find. | 2 年前 | |
[Offload] Move /openmp/libomptarget to /offload (#75125) In a nutshell, this moves our libomptarget code to populate the offload subproject. With this commit, users need to enable the new LLVM/Offload subproject as a runtime in their cmake configuration. No further changes are expected for downstream code. Tests and other components still depend on OpenMP and have also not been renamed. The results below are for a build in which OpenMP and Offload are enabled runtimes. In addition to the pure git mv, we needed to adjust some CMake files. Nothing is intended to change semantics. ninja check-offload Works with the X86 and AMDGPU offload tests ninja check-openmp Still works but doesn't build offload tests anymore. ls install/lib Shows all expected libraries, incl. - libomptarget.devicertl.a - libomptarget-nvptx-sm_90.bc - libomptarget.rtl.amdgpu.so -> libomptarget.rtl.amdgpu.so.18git - libomptarget.so -> libomptarget.so.18git Fixes: https://github.com/llvm/llvm-project/issues/75124 --------- Co-authored-by: Saiyedul Islam <Saiyedul.Islam@amd.com> | 2 年前 | |
[Offload][NFC] Fix warning messages in runtime Summary: These are lots of random warnings due to inconsistent initialization or signedness. | 2 年前 | |
[Reland][Libomptarget] Statically link all plugin runtimes (#87009) This patch overhauls the libomptarget and plugin interface. Currently, we define a C API and compile each plugin as a separate shared library. Then, libomptarget loads these API functions and forwards its internal calls to them. This was originally designed to allow multiple implementations of a library to be live. However, since then no one has used this functionality and it prevents us from using much nicer interfaces. If the old behavior is desired it should instead be implemented as a separate plugin. This patch replaces the PluginAdaptorTy interface with the GenericPluginTy that is used by the plugins. Each plugin exports a createPlugin_<name> function that is used to get the specific implementation. This code is now shared with libomptarget. There are some notable improvements to this. 1. Massively improved lifetimes of life runtime objects 2. The plugins can use a C++ interface 3. Global state does not need to be duplicated for each plugin + libomptarget 4. Easier to use and add features and improve error handling 5. Less function call overhead / Improved LTO performance. Additional changes in this plugin are related to contending with the fact that state is now shared. Initialization and deinitialization is now handled correctly and in phase with the underlying runtime, allowing us to actually know when something is getting deallocated. Depends on https://github.com/llvm/llvm-project/pull/86971 https://github.com/llvm/llvm-project/pull/86875 https://github.com/llvm/llvm-project/pull/86868 | 2 年前 | |
[Libomptarget] Rework device initialization and image registration (#93844) Summary: Currently, we register images into a linear table according to the logical OpenMP device identifier. We then initialize all of these images as one block. This logic requires that images are compatible with *all* devices instead of just the one that it can run on. This prevents us from running on systems with heterogeneous devices (i.e. image 1 runs on device 0 image 0 runs on device 1). This patch reworks the logic by instead making the compatibility check a per-device query. We then scan every device to see if it's compatible and do it as they come. | 2 年前 | |
[Libomptarget] Remove requires information from plugin (#80345) Summary: Currently this is only used for the zero-copy handling. However, this can easily be moved into libomptarget so that we do not need to bother setting the requires flags in the plugin. The advantage here is that we no longer need to do this for every device redundently. Additionally, these requires flags are specifically OpenMP related, so they should live in libomptarget. | 2 年前 | |
[Offload] Move /openmp/libomptarget to /offload (#75125) In a nutshell, this moves our libomptarget code to populate the offload subproject. With this commit, users need to enable the new LLVM/Offload subproject as a runtime in their cmake configuration. No further changes are expected for downstream code. Tests and other components still depend on OpenMP and have also not been renamed. The results below are for a build in which OpenMP and Offload are enabled runtimes. In addition to the pure git mv, we needed to adjust some CMake files. Nothing is intended to change semantics. ninja check-offload Works with the X86 and AMDGPU offload tests ninja check-openmp Still works but doesn't build offload tests anymore. ls install/lib Shows all expected libraries, incl. - libomptarget.devicertl.a - libomptarget-nvptx-sm_90.bc - libomptarget.rtl.amdgpu.so -> libomptarget.rtl.amdgpu.so.18git - libomptarget.so -> libomptarget.so.18git Fixes: https://github.com/llvm/llvm-project/issues/75124 --------- Co-authored-by: Saiyedul Islam <Saiyedul.Islam@amd.com> | 2 年前 | |
[Reland][Libomptarget] Statically link all plugin runtimes (#87009) This patch overhauls the libomptarget and plugin interface. Currently, we define a C API and compile each plugin as a separate shared library. Then, libomptarget loads these API functions and forwards its internal calls to them. This was originally designed to allow multiple implementations of a library to be live. However, since then no one has used this functionality and it prevents us from using much nicer interfaces. If the old behavior is desired it should instead be implemented as a separate plugin. This patch replaces the PluginAdaptorTy interface with the GenericPluginTy that is used by the plugins. Each plugin exports a createPlugin_<name> function that is used to get the specific implementation. This code is now shared with libomptarget. There are some notable improvements to this. 1. Massively improved lifetimes of life runtime objects 2. The plugins can use a C++ interface 3. Global state does not need to be duplicated for each plugin + libomptarget 4. Easier to use and add features and improve error handling 5. Less function call overhead / Improved LTO performance. Additional changes in this plugin are related to contending with the fact that state is now shared. Initialization and deinitialization is now handled correctly and in phase with the underlying runtime, allowing us to actually know when something is getting deallocated. Depends on https://github.com/llvm/llvm-project/pull/86971 https://github.com/llvm/llvm-project/pull/86875 https://github.com/llvm/llvm-project/pull/86868 | 2 年前 | |
[Libomptarget] Rework device initialization and image registration (#93844) Summary: Currently, we register images into a linear table according to the logical OpenMP device identifier. We then initialize all of these images as one block. This logic requires that images are compatible with *all* devices instead of just the one that it can run on. This prevents us from running on systems with heterogeneous devices (i.e. image 1 runs on device 0 image 0 runs on device 1). This patch reworks the logic by instead making the compatibility check a per-device query. We then scan every device to see if it's compatible and do it as they come. | 2 年前 | |
[Offload] Move /openmp/libomptarget to /offload (#75125) In a nutshell, this moves our libomptarget code to populate the offload subproject. With this commit, users need to enable the new LLVM/Offload subproject as a runtime in their cmake configuration. No further changes are expected for downstream code. Tests and other components still depend on OpenMP and have also not been renamed. The results below are for a build in which OpenMP and Offload are enabled runtimes. In addition to the pure git mv, we needed to adjust some CMake files. Nothing is intended to change semantics. ninja check-offload Works with the X86 and AMDGPU offload tests ninja check-openmp Still works but doesn't build offload tests anymore. ls install/lib Shows all expected libraries, incl. - libomptarget.devicertl.a - libomptarget-nvptx-sm_90.bc - libomptarget.rtl.amdgpu.so -> libomptarget.rtl.amdgpu.so.18git - libomptarget.so -> libomptarget.so.18git Fixes: https://github.com/llvm/llvm-project/issues/75124 --------- Co-authored-by: Saiyedul Islam <Saiyedul.Islam@amd.com> | 2 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 |