AMDGPU.jl icon indicating copy to clipboard operation
AMDGPU.jl copied to clipboard

Suport for non-bits types

Open ffrancesco94 opened this issue 7 months ago • 0 comments

Hi, Triggered from an issue coming up in ClimaOcean.jl https://github.com/CliMA/ClimaOcean.jl/issues/570, it seems that CUDA.jl has support for Union types that contain missing, but that is not working on AMDGPU.jl. Simple reproducer:

julia> using AMDGPU

julia> data = [missing, 3.0]::Array{Union{Missing, Float64}}
2-element Vector{Union{Missing, Float64}}:
  missing
 3.0

julia> a = ROCArray(data)
ERROR: AssertionError: ROCArray only supports bits types
Stacktrace:
 [1] ROCArray{Union{Missing, Float64}, 1, AMDGPU.Runtime.Mem.HIPBuffer}(::UndefInitializer, dims::Tuple{Int64})
   @ AMDGPU ~/.julia/packages/AMDGPU/a1MFN/src/array.jl:9
 [2] ROCArray{Union{Missing, Float64}, 1, AMDGPU.Runtime.Mem.HIPBuffer}(x::Vector{Union{Missing, Float64}})
   @ AMDGPU ~/.julia/packages/AMDGPU/a1MFN/src/array.jl:129
 [3] (ROCArray{Union{Missing, Float64}, 1})(x::Vector{Union{Missing, Float64}})
   @ AMDGPU ~/.julia/packages/AMDGPU/a1MFN/src/array.jl:134
 [4] ROCArray(A::Vector{Union{Missing, Float64}})
   @ AMDGPU ~/.julia/packages/AMDGPU/a1MFN/src/array.jl:137
 [5] top-level scope
   @ REPL[3]:1

I'm not sure how much plumbing this requires.

ffrancesco94 avatar Jul 04 '25 08:07 ffrancesco94