-
Notifications
You must be signed in to change notification settings - Fork 65
Open
Description
Performing a cholesky factorisation on a Hermitian matrix
using AMDGPU
using LinearAlgebra
A = ROCArray(rand(ComplexF64, 8, 6))
G = A'A + I # Positive definite matrix
cholesky(Hermitian(G))leads to
ERROR: Scalar indexing is disallowed.
and a stacktrace
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] errorscalar(op::String)
@ GPUArraysCore ~/.julia/packages/GPUArraysCore/aNaXo/src/GPUArraysCore.jl:151
[3] _assertscalar(op::String, behavior::GPUArraysCore.ScalarIndexing)
@ GPUArraysCore ~/.julia/packages/GPUArraysCore/aNaXo/src/GPUArraysCore.jl:124
[4] assertscalar(op::String)
@ GPUArraysCore ~/.julia/packages/GPUArraysCore/aNaXo/src/GPUArraysCore.jl:112
[5] getindex
@ ~/.julia/packages/GPUArrays/uiVyU/src/host/indexing.jl:50 [inlined]
[6] scalar_getindex
@ ~/.julia/packages/GPUArrays/uiVyU/src/host/indexing.jl:36 [inlined]
[7] _getindex
@ ~/.julia/packages/GPUArrays/uiVyU/src/host/indexing.jl:19 [inlined]
[8] getindex
@ ~/.julia/packages/GPUArrays/uiVyU/src/host/indexing.jl:17 [inlined]
[9] getindex
@ ~/stuffs/julia-1.11.3/share/julia/stdlib/v1.11/LinearAlgebra/src/symmetric.jl:249 [inlined]
[10] _getindex
@ ./abstractarray.jl:1358 [inlined]
[11] getindex
@ ./abstractarray.jl:1312 [inlined]
[12] iterate
@ ./abstractarray.jl:1209 [inlined]
[13] iterate
@ ./abstractarray.jl:1207 [inlined]
[14] copyto_unaliased!(deststyle::IndexLinear, dest::ROCArray{…}, srcstyle::IndexCartesian, src::Hermitian{…})
@ Base ./abstractarray.jl:1086
[15] copyto!
@ ./abstractarray.jl:1061 [inlined]
[16] copy_similar(A::Hermitian{ComplexF64, ROCArray{ComplexF64, 2, AMDGPU.Runtime.Mem.HIPBuffer}}, ::Type{ComplexF64})
@ LinearAlgebra ~/stuffs/julia-1.11.3/share/julia/stdlib/v1.11/LinearAlgebra/src/LinearAlgebra.jl:459
[17] eigencopy_oftype
@ ~/stuffs/julia-1.11.3/share/julia/stdlib/v1.11/LinearAlgebra/src/symmetriceigen.jl:4 [inlined]
[18] cholcopy
@ ~/stuffs/julia-1.11.3/share/julia/stdlib/v1.11/LinearAlgebra/src/cholesky.jl:182 [inlined]
[19] cholesky
@ ~/stuffs/julia-1.11.3/share/julia/stdlib/v1.11/LinearAlgebra/src/cholesky.jl:401 [inlined]
[20] cholesky(A::Hermitian{ComplexF64, ROCArray{ComplexF64, 2, AMDGPU.Runtime.Mem.HIPBuffer}})
I suppose this is due to a missing method for Hermitian{T, <:ROCArray}, because a cholesky on a plain ROCArray works fine.
Metadata
Metadata
Assignees
Labels
No labels