Skip to content

CUDA.jl takes much much longer to load on Julia v1.12 #2982

@oschulz

Description

@oschulz

I'm seeing much longer package load times of CUDA.jl on Julia v1.12, compared to v1.11.

I've timed this on two very different systems (using fresh Julia installations on a local NVMe temp disk, an empty Pkg depot, etc):

Server, NVIDIA Grace-Hopper GH200, Ubuntu 24.04

Julia v1.11

$ time julia-1.11.7/bin/julia -e 'using CUDA'
real    0m3.108s
user    0m5.665s
sys     0m0.721s

julia> @time @time_imports import CUDA
[... fairly quick ...]
    535.6 ms  CUDA 3.41% compilation time
      0.3 ms  Atomix → AtomixCUDAExt
[delay here]
  2.626289 seconds (3.14 M allocations: 217.201 MiB, 10.50% gc time, 18.88% compilation time: 6% of which was recompilation)

Julia v1.12

$ time julia-1.12.2/bin/julia -e 'using CUDA'
real    0m14.615s
user    0m17.187s
sys     0m0.744s

julia> @time @time_imports import CUDA
[... fairly quick ...]
   1133.9 ms  CUDA 1.36% compilation time
      0.3 ms  Atomix → AtomixCUDAExt
[long delay here]
 14.621508 seconds (12.65 M allocations: 705.328 MiB, 4.97% gc time, 80.55% compilation time: 96% of which was recompilation)

Laptop, NVIDIA RTX 2000 Ada, Ubuntu 24.04

Julia v1.11

$ time julia-1.11 -e 'using CUDA'
real	0m7.348s
user	0m8.977s
sys	0m1.891s

julia> @time @time_imports import CUDA
[... fairly quick ...]
   1208.8 ms  CUDA 37.99% compilation time
      0.7 ms  Atomix → AtomixCUDAExt
[delay here]
  7.510932 seconds (3.92 M allocations: 253.427 MiB, 2.97% gc time, 43.74% compilation time: 19% of which was recompilation)

Julia v1.12

$ time julia-1.12 -e 'using CUDA'
real	0m37.247s
user	0m32.124s
sys	0m8.350s

julia> @time @time_imports import CUDA
[... fairly quick ...]
   1851.8 ms  CUDA 11.05% compilation time
      0.4 ms  Atomix → AtomixCUDAExt
[long delay here]
 29.482076 seconds (12.97 M allocations: 716.697 MiB, 1.12% gc time, 82.29% compilation time: 96% of which was recompilation)

When timing with @time @time_imports import CUDA, there is a long delay after the output of @time_imports ends, that's where most of the time is spent.

Is this a known issue?

(Not sure this is strictly a bug, but package load times near 30 seconds (sometimes almost 40, it varies a lot) can severely affect usability, especially when giving a presentation ...)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions