GPUArrays.jl
GPUArrays.jl copied to clipboard
Reusable array functionality for Julia's various GPU backends.
As stated in https://github.com/JuliaGPU/CUDA.jl/issues/1773, with the current [_mean ](https://github.com/JuliaGPU/GPUArrays.jl/blob/b2f396dabdab907866b885cd7abb647214cddace/src/host/statistics.jl#L29) function, for bigger arrays you get some rounding problems. ```julia julia> A = CUDA.ones((640, 640, 32, 1)) 640×640×32×1 CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}:...
``` julia> map!(sqrt, rand(1)) ERROR: ArgumentError: map! requires at least one "source" argument Stacktrace: [1] map!(::typeof(sqrt), ::Vector{Float64}) @ Base ./abstractarray.jl:3353 [2] top-level scope @ REPL[17]:1 [3] top-level scope @ ~/Julia/pkg/Metal/src/initialization.jl:51...
``` A = gpu(rand(3, 5, 2)) mean(@views A[1, :, :]; dims=2) # ERROR: Scalar indexing is disallowed. ``` However, the following all work: ``` sum(@views A[1, :, :]; dims=2) mean(A[1,...
We already do a bunch of comparisons against Array, but missed one: https://github.com/JuliaGPU/CUDA.jl/pull/1800
This fixes a reference counting issue when using `resize!` on a `JLVector`. The issue is illustrated by the following example: ```julia using JLArrays u = JLArray{Float64}(undef, 0) data_prev = u.data...
Right, tests are passing locally, but still a bunch of small things to do: * [x] Rebase / squash * [ ] Cleanup (make sure the workflows rely on the...
Hello, I am trying to convert the output packed Q output of the QR decomposition of a JLArray back into a JLArray but there is a constructor error being thrown....
Hello, I stumbled over this difference between CPU and GPU arrays: ```julia julia> using JLArrays julia> using CUDA julia> a = rand(Float32, 1); b = rand(ComplexF32, 1); julia> promote_type(typeof(a), typeof(b))...
Thus performing device-to-host copy during boundscheck. ```julia julia> x = AMDGPU.rand(Float32, 16); julia> x[[1, 2, 3, 4]]; [D to H] ROCArray{Bool, 1, AMDGPU.Runtime.Mem.HIPBuffer}: (1,) -> Vector{Bool}: (1,) julia> @inbounds x[[1,...