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?
6 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).
5 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