You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add tests for image and null space for GPU
* Only use the scalar method for AMDGPU
* Updates for TensorKit compatibility
* Fix AMDGPU duplication
* Fix AMD polar test
* Comments
---------
Co-authored-by: Katharine Hyatt <[email protected]>
function MatrixAlgebraKit.default_qr_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
18
+
function MatrixAlgebraKit.default_qr_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
19
19
return CUSOLVER_HouseholderQR(; kwargs...)
20
20
end
21
-
function MatrixAlgebraKit.default_lq_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
21
+
function MatrixAlgebraKit.default_lq_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
22
22
qr_alg = CUSOLVER_HouseholderQR(; kwargs...)
23
23
return LQViaTransposedQR(qr_alg)
24
24
end
25
-
function MatrixAlgebraKit.default_svd_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
25
+
function MatrixAlgebraKit.default_svd_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
26
26
return CUSOLVER_QRIteration(; kwargs...)
27
27
end
28
-
function MatrixAlgebraKit.default_eig_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
28
+
function MatrixAlgebraKit.default_eig_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
29
29
return CUSOLVER_Simple(; kwargs...)
30
30
end
31
-
function MatrixAlgebraKit.default_eigh_algorithm(::Type{T}; kwargs...) where {T <:StridedCuMatrix}
31
+
function MatrixAlgebraKit.default_eigh_algorithm(::Type{T}; kwargs...) where {TT <:BlasFloat, T <:StridedCuMatrix{TT}}
32
32
return CUSOLVER_DivideAndConquer(; kwargs...)
33
33
end
34
34
35
+
# include for block sector support
36
+
function MatrixAlgebraKit.default_qr_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
37
+
return CUSOLVER_HouseholderQR(; kwargs...)
38
+
end
39
+
function MatrixAlgebraKit.default_lq_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
40
+
qr_alg = CUSOLVER_HouseholderQR(; kwargs...)
41
+
return LQViaTransposedQR(qr_alg)
42
+
end
43
+
function MatrixAlgebraKit.default_svd_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
44
+
return CUSOLVER_Jacobi(; kwargs...)
45
+
end
46
+
function MatrixAlgebraKit.default_eig_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
47
+
return CUSOLVER_Simple(; kwargs...)
48
+
end
49
+
function MatrixAlgebraKit.default_eigh_algorithm(::Type{Base.ReshapedArray{T, 2, SubArray{T, 1, A, Tuple{UnitRange{Int}}, true}, Tuple{}}}; kwargs...) where {T <:BlasFloat, A <:CuVecOrMat{T}}
0 commit comments