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
Copy file name to clipboardExpand all lines: src/host/linalg.jl
+42-42Lines changed: 42 additions & 42 deletions
Original file line number
Diff line number
Diff line change
@@ -117,7 +117,7 @@ for T in (UpperTriangular, LowerTriangular, UnitUpperTriangular, UnitLowerTriang
117
117
@eval Base.copyto!(A::$T{T, <:AbstractGPUArray{T,N}}, B::$T{T, <:AbstractGPUArray{T,N}}) where {T,N} =$T(copyto!(parent(A), parent(B)))
118
118
end
119
119
120
-
function LinearAlgebra.tril!(A::AbstractGPUMatrix{T}, d::Integer=0) where T
120
+
function LinearAlgebra.tril!(A::AnyGPUMatrix{T}, d::Integer=0) where T
121
121
gpu_call(A, d; name="tril!") do ctx, _A, _d
122
122
I =@cartesianidx _A
123
123
i, j =Tuple(I)
@@ -129,7 +129,7 @@ function LinearAlgebra.tril!(A::AbstractGPUMatrix{T}, d::Integer = 0) where T
129
129
return A
130
130
end
131
131
132
-
function LinearAlgebra.triu!(A::AbstractGPUMatrix{T}, d::Integer=0) where T
132
+
function LinearAlgebra.triu!(A::AnyGPUMatrix{T}, d::Integer=0) where T
133
133
gpu_call(A, d; name="triu!") do ctx, _A, _d
134
134
I =@cartesianidx _A
135
135
i, j =Tuple(I)
@@ -206,9 +206,9 @@ if VERSION < v"1.8-"
206
206
return B
207
207
end
208
208
else
209
-
function LinearAlgebra.mul!(B::AbstractGPUVecOrMat,
210
-
D::Diagonal{<:Any, <:AbstractGPUArray},
211
-
A::AbstractGPUVecOrMat)
209
+
function LinearAlgebra.mul!(B::AnyGPUVecOrMat,
210
+
D::Diagonal{<:Any, <:AnyGPUArray},
211
+
A::AnyGPUVecOrMat)
212
212
dd = D.diag
213
213
d =length(dd)
214
214
m, n =size(A, 1), size(A, 2)
@@ -220,9 +220,9 @@ else
220
220
B
221
221
end
222
222
223
-
function LinearAlgebra.mul!(B::AbstractGPUVecOrMat,
224
-
D::Diagonal{<:Any, <:AbstractGPUArray},
225
-
A::AbstractGPUVecOrMat,
223
+
function LinearAlgebra.mul!(B::AnyGPUVecOrMat,
224
+
D::Diagonal{<:Any, <:AnyGPUArray},
225
+
A::AnyGPUVecOrMat,
226
226
α::Number,
227
227
β::Number)
228
228
dd = D.diag
@@ -236,9 +236,9 @@ else
236
236
B
237
237
end
238
238
239
-
function LinearAlgebra.mul!(B::AbstractGPUVecOrMat,
240
-
A::AbstractGPUVecOrMat,
241
-
D::Diagonal{<:Any, <:AbstractGPUArray})
239
+
function LinearAlgebra.mul!(B::AnyGPUVecOrMat,
240
+
A::AnyGPUVecOrMat,
241
+
D::Diagonal{<:Any, <:AnyGPUArray})
242
242
dd = D.diag
243
243
d =length(dd)
244
244
m, n =size(A, 1), size(A, 2)
@@ -250,9 +250,9 @@ else
250
250
B
251
251
end
252
252
253
-
function LinearAlgebra.mul!(B::AbstractGPUVecOrMat,
254
-
A::AbstractGPUVecOrMat,
255
-
D::Diagonal{<:Any, <:AbstractGPUArray},
253
+
function LinearAlgebra.mul!(B::AnyGPUVecOrMat,
254
+
A::AnyGPUVecOrMat,
255
+
D::Diagonal{<:Any, <:AnyGPUArray},
256
256
α::Number,
257
257
β::Number)
258
258
dd = D.diag
@@ -266,9 +266,9 @@ else
266
266
B
267
267
end
268
268
269
-
function LinearAlgebra.ldiv!(B::AbstractGPUVecOrMat,
270
-
D::Diagonal{<:Any, <:AbstractGPUArray},
271
-
A::AbstractGPUVecOrMat)
269
+
function LinearAlgebra.ldiv!(B::AnyGPUVecOrMat,
270
+
D::Diagonal{<:Any, <:AnyGPUArray},
271
+
A::AnyGPUVecOrMat)
272
272
dd = D.diag
273
273
d =length(dd)
274
274
m, n =size(A, 1), size(A, 2)
@@ -289,7 +289,7 @@ end
289
289
290
290
## matrix multiplication
291
291
292
-
functiongeneric_matmatmul!(C::AbstractArray{R}, A::AbstractArray{T}, B::AbstractArray{S}, a::Number, b::Number) where {T,S,R}
292
+
functiongeneric_matmatmul!(C::AnyArray{R}, A::AnyArray{T}, B::AnyArray{S}, a::Number, b::Number) where {T,S,R}
293
293
ifsize(A,2) !=size(B,1)
294
294
throw(DimensionMismatch("matrix A has dimensions $(size(A)), matrix B has dimensions $(size(B))"))
295
295
end
@@ -319,29 +319,29 @@ function generic_matmatmul!(C::AbstractArray{R}, A::AbstractArray{T}, B::Abstrac
319
319
C
320
320
end
321
321
322
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::AbstractGPUVecOrMat, B::AbstractGPUVecOrMat, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
323
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::AbstractGPUVecOrMat, B::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
324
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::AbstractGPUVecOrMat, B::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
325
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, B::AbstractGPUVecOrMat, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
326
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, B::AbstractGPUVecOrMat, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
327
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
328
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
329
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
330
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
322
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::AnyGPUVecOrMat, B::AnyGPUVecOrMat, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
323
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::AnyGPUVecOrMat, B::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
324
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::AnyGPUVecOrMat, B::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
325
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, B::AnyGPUVecOrMat, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
326
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, B::AnyGPUVecOrMat, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
327
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
328
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
329
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
330
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, a::Number, b::Number) =generic_matmatmul!(C, A, B, a, b)
331
331
332
332
# specificity hacks
333
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::AbstractGPUVecOrMat, B::AbstractGPUVecOrMat, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
334
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::AbstractGPUVecOrMat, B::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
335
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::AbstractGPUVecOrMat, B::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
336
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, B::AbstractGPUVecOrMat, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
337
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, B::AbstractGPUVecOrMat, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
338
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
339
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
340
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AbstractGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
341
-
LinearAlgebra.mul!(C::AbstractGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AbstractGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::AnyGPUVecOrMat, B::AnyGPUVecOrMat, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
334
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::AnyGPUVecOrMat, B::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
335
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::AnyGPUVecOrMat, B::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
336
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, B::AnyGPUVecOrMat, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
337
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, B::AnyGPUVecOrMat, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
338
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
339
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
340
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Adjoint{<:Any, <:AnyGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
341
+
LinearAlgebra.mul!(C::AnyGPUVecOrMat, A::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, B::LinearAlgebra.Transpose{<:Any, <:AnyGPUVecOrMat}, a::Real, b::Real) =generic_matmatmul!(C, A, B, a, b)
342
+
343
+
344
+
functiongeneric_rmul!(X::AnyArray, s::Number)
345
345
gpu_call(X, s; name="rmul!") do ctx, X, s
346
346
i =@linearidx X
347
347
@inbounds X[i] *= s
@@ -350,9 +350,9 @@ function generic_rmul!(X::AbstractArray, s::Number)
350
350
return X
351
351
end
352
352
353
-
LinearAlgebra.rmul!(A::AbstractGPUArray, b::Number) =generic_rmul!(A, b)
353
+
LinearAlgebra.rmul!(A::AnyGPUArray, b::Number) =generic_rmul!(A, b)
0 commit comments