GPUArrays.jl
GPUArrays.jl copied to clipboard
Reusable array functionality for Julia's various GPU backends.
I'm testing with `JLArrays`. It looks like some linear algebra operations do not recognize JLArray. ```julia julia> @which dot(jl([1,2]),jl([3,4])) dot(x::AbstractArray, y::AbstractArray) in LinearAlgebra at C:\Users\Luffy\AppData\Local\Programs\Julia-1.7.2\share\julia\stdlib\v1.7\LinearAlgebra\src\generic.jl:907 ```
Second take of https://github.com/JuliaGPU/Adapt.jl/pull/50. This PR wants to move `backend` to `GPUArraysCore.jl`, which would help us to implement broadcast for `StructArray` on gpu. (see https://github.com/JuliaArrays/StructArrays.jl/pull/215) I hope it's also useful...
**Describe the bug** Copyto! does not work for subarray when scalar get index is disallowed. **To Reproduce** The Minimal Working Example (MWE) for this bug: ```julia using CuArrays CuArrays.allowscalar(false) N...
`A_ldiv_B!` and `\` support for GPUArrays is pretty essential and I keep assuming it already exists.
Launching the recommended amount of blocks probably makes more efficient use of the GPU's SMs.
Is the docs generation broken? https://juliagpu.github.io/GPUArrays.jl/stable/ is still stuck at v2.0.1 CC @lmh91
Closes #362 ~~Does not handle keywords, note that `dims` is an error on normal Arrays, but `init` is respected so perhaps should be here too:~~ ``` julia> sum(fill(3), init=99) 102...
```julia julia> using CUDA, GPUArrays julia> v = cu(rand(3)); julia> view(v,2) 0-dimensional CuArray{Float32, 0}: 0.8010128 julia> sum(view(v,2)) ERROR: MethodError: no method matching ndims(::Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{0}, Nothing, typeof(identity), Tuple{CuArray{Float32, 0}}}) julia> reshape(v[2:2]) 0-dimensional...
```julia julia> using CUDA, LinearAlgebra julia> CUDA.allowscalar(false) julia> U = cu(UpperTriangular( [1.0 0.0; 0.0 1.0] )) 2×2 UpperTriangular{Float32, CuArray{Float32, 2}}: 1.0 0.0 ⋅ 1.0 julia> copyto!(Σ, U') ERROR: scalar getindex...