| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Offload] Make olLaunchKernel test thread safe (#149497) This sprinkles a few mutexes around the plugin interface so that the olLaunchKernel CTS test now passes when ran on multiple threads. Part of this also involved changing the interface for device synchronise so that it can optionally not free the underlying queue (which introduced a race condition in liboffload). | 11 个月前 | |
[OFFLOAD] Add support for more fine grained debug messages control (#165416) This PR introduces new debug macros that allow a more fined control of which debug message to output and introduce C++ stream style for debug messages. Changing existing messages (except a few that I changed for testing) will come in subsequent PRs. I also think that we should make debug enabling OpenMP agnostic but, for now, I prioritized maintaing the current libomptarget behavior for now, and we might need more changes further down the line as we we decouple libomptarget. | 8 个月前 | |
[Offload] Remove handling for device memory pool (#163629) Summary: This was a lot of code that was only used for upstream LLVM builds of AMDGPU offloading. We have a generic and fast malloc in libc now so just use that. Simplifies code, can be added back if we start providing alternate forms but I don't think there's a single use-case that would justify it yet. | 8 个月前 | |
[Offload] Allow to record kernel launch stack traces (#100472) Similar to (de)allocation traces, we can record kernel launch stack traces and display them in case of an error. However, the AMD GPU plugin signal handler, which is invoked on memroy faults, cannot pinpoint the offending kernel. Insteade print <NUM>, set via OFFLOAD_TRACK_NUM_KERNEL_LAUNCH_TRACES=<NUM>, many traces. The recoding/record uses a ring buffer of fixed size (for now 8). For trap errors, we print the actual kernel name, and trace if recorded. | 1 年前 | |
[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 年前 | |
[OpenMP] Unconditionally provide an RPC client interface for OpenMP (#117933) Summary: This patch adds an RPC interface that lives directly in the OpenMP device runtime. This allows OpenMP to implement custom opcodes. Currently this is only providing the host call interface, which is the raw version of reverse offloading. Previously this lived in libc/ as an extension which is not the correct place. The interface here uses a weak symbol for the RPC client by the same name that the libc interface uses. This means that it will defer to the libc one if both are present so we don't need to set up multiple instances. The presense of this symbol is what controls whether or not we set up the RPC server. Because this is an external symbol it normally won't be optimized out, so there's a special pass in OpenMPOpt that deletes this symbol if it is unused during linking. That means at O0 the RPC server will always be present now, but will be removed trivially if it's not used at O1 and higher. | 1 年前 | |
[Offload][NFC] Reorganize utils:: and make Device/Host/Shared clearer (#100280) We had three utils:: namespaces, all with different "meaning" (host, device, hsa_utils). We should, when we can, keep "include/Shared" accessible from host and device, thus RefCountTy has been moved to a separate header. hsa_utils was introduced to make utils:: less overloaded. And common functionality was de-duplicated, e.g., utils::advance and utils::advanceVoidPtr -> utils:advancePtr. Type punning now checks for the size of the result to make sure it matches the source type. No functional change was intended. | 1 年前 | |
[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] 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 年前 | |
[Libomptarget] Rework interface for enabling plugins (#86875) Summary: Previously we would build all of the plugins by default and then only load some using the LIBOMPTARGET_PLUGINS_TO_LOAD variable. This patch renamed this to LIBOMPTARGET_PLUGINS_TO_BUILD and changes whether or not it will include the plugin in CMake. Additionally this patch creates a new Targets.def file that allows us to enumerate all of the enabled plugins. This is somewhat different from the old method, and it's done this way for future use that will need to be shared. This follows the same method that LLVM uses for its targets, however it does require adding an extra include path. Depends on https://github.com/llvm/llvm-project/pull/86868 | 2 年前 | |
[openmp][nfc] Use builtin align in the devicertl (#131918) Noticed while extracting the smartstack as a test case | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 11 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 |