AMDGPU.jl
AMDGPU.jl copied to clipboard
Suport for non-bits types
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.