-
Notifications
You must be signed in to change notification settings - Fork 2
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
Refactored CUDA and Metal backends into extensions. #42
Conversation
…d tests into simpler files. Added oneAPI backend. Added tests for extension finding.
…be installed on the GPU backends. Added oneAPI CI runner. TODO: put version back to 1.0.0 once they run, then update rest of ecosystem compat
…added Aqua to test/runtests.jl
Okay, the extensions are found and tests pass. Still, we get the circular dependency problem on the GPU CI too - I am not sure where/why/how to fix it, waiting on your input. Afterwards, we can increment the version up to |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #42 +/- ##
===========================================
- Coverage 92.95% 60.16% -32.79%
===========================================
Files 6 9 +3
Lines 142 236 +94
===========================================
+ Hits 132 142 +10
- Misses 10 94 +84
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Can you split it into two PRs? One for the rework to extensions and one for adding oneAPI? |
Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com>
Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com>
@vchuravy I left this PR for the extensions rework only. Once it is merged, I will create a oneAPI PR based on the new ext format. |
The circular dependency is probably because the GPU backends depend on KernelAbstractions, which depends on Atomix. I don't know how to fix this with extensions that live in this repo. |
Is it a case of having to update the |
I don't believe so. I tested this by reverting the Atomix version to 0.1.0 to avoid the compat issues. |
I suspect this "cycle" issue may be fixed by JuliaLang/julia#55910 (comment). If true, that means that this should be working once 1.10.8 and 1.11.2 are released. |
Okay I compiled the backports-1.11 branch to test this out and I'm getting a different error. Error:
I'm not familiar enough with precompilation to know if that's a Julia bug or a bug in this PR. Tests still seem to pass though... |
Trying to push for atomics on all KernelAbstractions.jl backends - really appreciate your help. I simplified the code structure in
ext
andtest
with the current Julia best practices I know.The only problem with this extension-based structure is I now get:
Is this something to be fixed from this side, or from KernelAbstractions' side? The rest of the ecosystem using Atomix needs to be updated for the current
Atomix = "1"
version too, otherwise it very quickly spirals into dependency hell.