-
Notifications
You must be signed in to change notification settings - Fork 787
[CI] Add libclc tests to pre- and post-commit validation #5062
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
sycl/test/CMakeLists.txt
Outdated
@@ -60,7 +60,7 @@ add_lit_testsuite(check-sycl-spirv "Running device-agnostic SYCL regression test | |||
) | |||
|
|||
add_custom_target(check-sycl) | |||
add_dependencies(check-sycl check-sycl-spirv) | |||
add_dependencies(check-sycl check-sycl-spirv check-libclc) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if it works. libclc
is not enabled by default (only with CUDA/HIP back-ends), so I assume there might be problems if this library is not built. Right?
I suggest adding a separate command to this GitHub Actions script: https://github.com/intel/llvm/blob/sycl/.github/workflows/sycl_linux_build_and_test.yml#L136.
@alexbatashev can help with that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right: https://github.com/jchlanda/llvm/blob/jakub/check_sycl_check_libclc/buildbot/configure.py#L62
Do you think it's worth adding it to the list of llvm_enabled_projects
by default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it's a dead code by default, but it must be enabled in pre-/post-commit CI validation.
It might be worth adding when CUDA or HIP backends included to the build, but I'd like to avoid the drawback mentioned in the description:
The only slight drawback is that if check-libclc fails it will not proceed to running check-sycl.
To avoid this, we can run check-libclc
separately from check-sycl
as we do for the compiler (i.e. check-clang
).
If we need simplify the workflow for DPC++ compiler developers we can make check-sycl-toolchain
CMake target with dependencies on check-*
testing the compiler, runtime and other DPC++ components, which can be executed concurrently and do not block each other. Python script instead of cmake target works as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jchlanda Alexey is right, you don't need to add dependencies to the check-sycl
. Please, adjust configure.py
call here and just add a new step for the build job as @bader described earlier. All the logs will be public, both pre-commit and post-commit testing will be enabled, and you'll be able to modify the run command as you see fit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've folded it into: b8f99bc
It'll build libclc
in ci_default
mode and run it through linux build and test. I've decided against adding another target.
8375d1e
to
b7d0206
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@jchlanda do these logs look right to you? UPD. I guess since no targets were requested, no tests were run ( |
|
Yeah, that's exactly it, it was enabled but, like you say, no |
@jchlanda, @alexbatashev, sorry, I forgot that this comment is not addressed yet:
So, |
yeap, but I don't know if there is a default libclc target that CI machines should be building? |
I assume you wanted to test |
Out of the box
|
Do we need ROCm device library to run libclc tests? I see that test just emit LLVM. |
I've addressed it in: #5091 |
Follow up to #5062 This PR ensures that `libclc` is built and tested against: * `amdgcn--;amdgcn--amdhsa` * `nvptx64--;nvptx64--nvidiacl`
Run
check-libclc
as part of continues integration system. Time-wise it shouldn't be noticeable, on anmi100
node it takes ~3.5sec.Also adjust
XFAIL
s.