Skip to content

Cannot load CUDA.jl with Julia 1.13 #3019

@eschnett

Description

@eschnett

I am using the master branch of CUDA.jl with Julia 1.13-beta1 on an H100 system. using CUDA leads to this error:

$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.13.0-beta1 (2026-01-12)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org release
|__/                   |

(@v1.13) pkg> status
Status `~/.julia/environments/v1.13/Project.toml`
  [052768ef] CUDA v5.9.6
  [295af30f] Revise v3.13.1

(@v1.13) pkg> add https://github.com/JuliaGPU/CUDA.jl#master
    Updating git-repo `https://github.com/JuliaGPU/CUDA.jl`
   Resolving package versions...
    Updating `~/.julia/environments/v1.13/Project.toml`
  [052768ef] ~ CUDA v5.9.6 ⇒ v5.9.6 `https://github.com/JuliaGPU/CUDA.jl#master`
    Updating `~/.julia/environments/v1.13/Manifest.toml`
  [052768ef] ~ CUDA v5.9.6 ⇒ v5.9.6 `https://github.com/JuliaGPU/CUDA.jl#master`
ERROR: LoadError: ArgumentError: Function definition contains invalid or missing arguments
Expr
  head: Symbol =
  args: Array{Any}((2,))
    1: Symbol #2354#val
    2: Expr
      head: Symbol =
      args: Array{Any}((2,))
        1: Expr
          head: Symbol call
          args: Array{Any}((1,))
            1: Symbol gridDim
        2: Expr
          head: Symbol block
          args: Array{Any}((3,))
            1: Expr
              head: Symbol meta
              args: Array{Any}((1,))
                1: Symbol inline
            2: LineNumberNode
              line: Int64 71
              file: Symbol /home/eschnett/.julia/packages/CUDA/jXARD/src/device/intrinsics/indexing.jl
            3: Expr
              head: Symbol tuple
              args: Array{Any}((3,))
                1: Expr
                2: Expr
                3: Expr

Stacktrace:
  [1] invalid_def
    @ ~/.julia/packages/ExprTools/MDS6z/src/function.jl:30 [inlined]
  [2] splitdef(ex::Expr; throw::Bool)
    @ ExprTools ~/.julia/packages/ExprTools/MDS6z/src/function.jl:121
  [3] splitdef(ex::Expr)
    @ ExprTools ~/.julia/packages/ExprTools/MDS6z/src/function.jl:23
  [4] var"@device_function"(__source__::LineNumberNode, __module__::Module, ex::Any)
    @ CUDA ~/.julia/packages/CUDA/jXARD/src/device/utils.jl:29
  [5] fl_lower(ex::Expr, mod::Module, filename::String, lineno::UInt64, world::UInt64, warn::Bool)
    @ Base ./flfrontend.jl:24
  [6] include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./Base.jl:310
  [7] top-level scope
    @ ~/.julia/packages/CUDA/jXARD/src/device/intrinsics.jl:8
  [8] include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./Base.jl:310
  [9] top-level scope
    @ ~/.julia/packages/CUDA/jXARD/src/CUDA.jl:78
 [10] include(mod::Module, _path::String)
    @ Base ./Base.jl:309
 [11] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
    @ Base ./loading.jl:3142
 [12] top-level scope
    @ stdin:5
 [13] eval(m::Module, e::Any)
    @ Core ./boot.jl:489
 [14] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:2988
 [15] include_string
    @ ./loading.jl:2998 [inlined]
 [16] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:342
 [17] _start()
    @ Base ./client.jl:577
in expression starting at /home/eschnett/.julia/packages/CUDA/jXARD/src/device/utils.jl:56
in expression starting at /home/eschnett/.julia/packages/CUDA/jXARD/src/device/intrinsics/indexing.jl:64
in expression starting at /home/eschnett/.julia/packages/CUDA/jXARD/src/device/intrinsics.jl:8
in expression starting at /home/eschnett/.julia/packages/CUDA/jXARD/src/CUDA.jl:1
in expression starting at stdin:5
  ✗ CUDA
  ✗ Atomix → AtomixCUDAExt
Precompiling CUDA finished.
  0 dependencies successfully precompiled in 26 seconds. 102 already precompiled.
  2 dependencies errored.
  For a report of the errors see `julia> err`. To retry use `pkg> precompile`

Things work with Julia 1.12.

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