User Details
- User Since
- Oct 25 2022, 7:16 AM (30 w, 5 d)
Mon, May 15
Thanks @jhuber6
I would love to hear @gkistanova opinion on the patch before I land it.
Thu, May 11
This appears to have broken the AMDGPU buildbot https://lab.llvm.org/staging/#/builders/247/builds/360
Tue, May 9
Thanks for moving this forward.
Fri, May 5
Thu, May 4
Address inline comment
Abandoning in favor of https://reviews.llvm.org/D148808
Wed, May 3
Hey Krzysztof,
I believe this broke the openmp offload buildbot https://lab.llvm.org/buildbot/#/builders/193/builds/30576
One environment variable, defaulting to 2 seconds timeout for active waiting, rename, const
Apr 26 2023
- rebase the patch
- add documentation
- address reviewer comments
Thanks for all the comments, I think there is a bit of confusion due to my lack of documentation of the code.
Apr 20 2023
Apr 18 2023
Works for me on gfx90a
Tested on AMDGPU (gfx90a)
-- OpenMP tools dir in libomptarget: /home/janplehr/git/trunk17.0/build/llvm-project/runtimes/runtimes-bins/openmp/runtime/src -- LIBOMPTARGET: Building offloading runtime library libomptarget. -- LIBOMPTARGET: Not building aarch64 offloading plugin: machine not found in the system. -- LIBOMPTARGET: Building AMDGPU plugin linked against libhsa -- LIBOMPTARGET: Not building CUDA offloading plugin: LIBOMPTARGET_BUILD_CUDA_PLUGIN is false -- LIBOMPTARGET: Not building PPC64 offloading plugin: machine not found in the system. -- LIBOMPTARGET: Not building PPC64le offloading plugin: machine not found in the system. -- LIBOMPTARGET: Not building nec-aurora plugin: libveo or libveosinfo not found. -- LIBOMPTARGET: Building x86_64 offloading plugin. -- LIBOMPTARGET: Not building aarch64 NextGen offloading plugin: machine not found in the system. -- LIBOMPTARGET: Building AMDGPU NextGen plugin linked against libhsa -- LIBOMPTARGET: Not building CUDA NextGen offloading plugin: LIBOMPTARGET_BUILD_CUDA_PLUGIN is false -- LIBOMPTARGET: Not building PPC64 NextGen offloading plugin: machine not found in the system. -- LIBOMPTARGET: Not building PPC64le NextGen offloading plugin: machine not found in the system. -- LIBOMPTARGET: Building x86_64 NextGen offloading plugin.
Apr 17 2023
I'll get back to this soon, enjoyed vacation. ;)
Mar 31 2023
LGTM
LGTM
Mar 30 2023
It seems that the automation does not correctly enable libc or openmp as runtimes when only given as depend_on_projects.
The CMake invocation that actually happened was
cmake -G Ninja ../llvm.src/llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON '-DLLVM_LIT_ARGS=-vv --show-unsupported --show-xfail -j 32' -DCMAKE_INSTALL_PREFIX=/home/ompworker/bbot/openmp-offload-amdgpu-runtime-experimental/llvm.inst -DCMAKE_BUILD_TYPE=Release -DCLANG_DEFAULT_LINKER=lld '-DLLVM_TARGETS_TO_BUILD=X86;AMDGPU' -DLLVM_ENABLE_ASSERTIONS=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DLIBOMPTARGET_FOUND_AMDGPU_GPU=ON -DLLVM_LIBC_FULL_BUILD=ON -DLIBC_GPU_BUILD=ON -DLIBC_GPU_ARCHITECTURE=gfx906 -DLIBC_GPU_TEST_ARCHITECTURE=gfx906 '-DLLVM_ENABLE_PROJECTS=llvm;libc;clang;lld;compiler-rt;openmp'
So, it only enables those as projects. This leads to a compiler error as we actually need the Clang to build the runtimes.
Removed accidentally added code
Fix bug to corectly support the maximally supported dimensions as required by the spec.
Remvoed the enable_runtimes argument
Please let me know if this patch needs more revision after the changes I implemented, and thanks for all the help.
Mar 29 2023
Addressed feedback: removed extra CMake flags to enable runtimes and projects manually. Instead rely on enable_runtimes and depends_on_projects lists from the buildbot factory.
The builtbot before specified the CMake flag to enable the openmp runtime manually (despite listing it in enable_runtimes), so I removed that completely.
Mar 28 2023
Rebased and enabled tests for generic devices.
Resulted in one test failure
Rebase to make ready for land
I wanted to do this today, my afternoon. This should give us some time to reasonably react if things don't go the way we want.
Mar 27 2023
Mar 24 2023
Rebase and review feedback
Rebase and ready to land
Mar 23 2023
Added missed check-clang target to lit tests
Mar 22 2023
Mar 21 2023
Some initial comments
Thanks for moving this forward.
Mar 20 2023
Mar 17 2023
Mar 15 2023
I compared it to the HIP implementation linked and from that point of view it looks reasonable to me, but I don't have a good understanding of the internals yet. @JonChesterfield can you comment on the topic?
Actually followed Johannes' suggestion.
Followed Johannes suggestion and rebased
Mar 14 2023
Adds assert and assert messages.
It felt safer to assert exactly three elements to be consistent with the name of the lambda.
Updated test and removed two unused variables.
Mar 13 2023
Mar 9 2023
LGTM
Mar 8 2023
Just to reiterate what I think this does is: It adds tests which currently ensure that the call backs can not be registered (as it should).
The tests would then be updated for the other patches, when these call backs can be registered, right?
Feb 28 2023
Feb 27 2023
Addresssed final nits
Reworked implementation to always print standard info.
Introduced optional and refactored test.
Addressed nits and rebased. Please see if the changes to the test case are acceptable.
Feb 24 2023
Addressed more reviewer comments and added test
Feb 23 2023
- Removed: curlies for single statement blocks, unncessary llvm:: qualification, leftover empty if, unneccessary using ELFT statements
- Added check if kernel name has associated metadata and changed return type to Expected<T> to allow for error propagation
Am I right to assume you mainly asking about the code that obtains the metadata for the different kernels in the image?
Without executing a OpenMP target offload program on an AMDGPU, I see mostly one option: Construct a msgpack from a textual representation (e.g., YAML) and query that for the relevant information. This should be somewhat straight forward to do in Google Test. But, it would not automatically react to changes in the metadata produced in the backend. For that, we probably would need to compile and run something on an AMDGPU to test the output.
Thanks Joseph.
My impression about the llvm-readobj was that they have quite some machinery around the printing. However, I believe I understood that the actual printing is mainly a conversion of the MsgPackDocument into a YAML and then print that. So I think that there is not too much in common.
Rewrite using what is available upstream to read the ELF metdata for AMDGPU.
Removes the copied-over code from the old plugin.
Feb 21 2023
LGTM
Feb 14 2023
Rebased
Rebased