Julia v1.10.7 and v1.11.1 shows circular dependency warning while adding CUDA.jl
┌ Warning: Circular dependency detected. Precompilation will be skipped for:
│ Base.PkgId(Base.UUID("85068d23-b5fb-53f1-8204-05c2aba6942f"), "SparseArraysExt")
│ Base.PkgId(Base.UUID("13011619-4c7c-5ef0-948f-5fc81565cd05"), "AtomixCUDAExt")
│ Base.PkgId(Base.UUID("66d79d19-2cc4-5b0b-ac7a-b340256d1ecd"), "LinearAlgebraExt")
│ Base.PkgId(Base.UUID("63c18a36-062a-441e-b654-da1e3ab1ce7c"), "KernelAbstractions")
│ Base.PkgId(Base.UUID("052768ef-5323-5732-b1bb-66c8b64840ba"), "CUDA")
How to know which package to blame for this and how to prevent that?
7 Likes
In principle you can use GitHub - KristofferC/EnvironmentGraph.jl for this kind of task, but I don’t know how well it works with extensions.
This issue started showing up after updating CUDA.jl
.
1 Like
pxshen
December 7, 2024, 3:50pm
4
Same here, problem is with new CUDA.jl
1 Like
Benny
December 9, 2024, 3:07am
5
I’ve been squinting at the project files of the implied packages and can’t really figure out a circular dependency. It looks like these should load in this order ( < > being used to mean start and finish): CUDA< LinearAlgebra< >, SparseArrays< >, KernelAbstractions< Atomix > >, LinearAlgebraExt, SparseArraysExt, AtomixCUDAExt. Is it possible that Pkg misidentifies one in the extensions? Some notes, might be useful:
CUDA 5.5.2
LinearAlgebra = “1”
SparseArrays = “1”
KernelAbstractions = “0.9.2”
KernelAbstractions 0.9.30
Atomix = “0.1, 1”
LinearAlgebraExt = “LinearAlgebra”
SparseArraysExt = “SparseArrays”
SparseArrays = “<0.0.1, 1.6”
Atomix 1.0.0
1 Like
simenhu
December 9, 2024, 12:36pm
6
I can reply that it has this behaviour for julia-1.10.6 atm. also
This is fixed in Julia 1.11.2 and 1.10.8 (not released yet).
6 Likes
Benny
December 9, 2024, 6:02pm
8
What was the problem, exactly? Just curious. If it’s easier to link the pull request, then that’s cool too.
1 Like
Thanks for this quick response!
May I ask what are the plans for the release of 1.10.8?
Unfortunately at the moment (due to company requirements), I’m stuck to LTS Julia, and CUDA.jl is quite critical to my applications.
Alternatively, are there any workarounds to this?
1 Like
maleadt
December 20, 2024, 12:58pm
11
You can try reverting the upgrade to Atomix.jl 1.0, e.g., by adding a compat entry to your environment for Atomix 0.1.
2 Likes
Thank you so much, that worked. For the moment that’ll do for me!