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
extandtestwith 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.