From 92840b4a96d35b1bb1276bb2e982d233c79572ce Mon Sep 17 00:00:00 2001 From: abdelrahman912 Date: Sat, 9 May 2026 01:40:23 +0200 Subject: [PATCH] init --- src/ROCKernels.jl | 2 +- test/hip_rocsparse/conversions.jl | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ROCKernels.jl b/src/ROCKernels.jl index e987ee1b2..5da8810e1 100644 --- a/src/ROCKernels.jl +++ b/src/ROCKernels.jl @@ -23,7 +23,7 @@ function KA.device!(kab::ROCBackend, id::Int) return end -Adapt.adapt_storage(::ROCBackend, a::Array) = Adapt.adapt(AMDGPU.ROCArray, a) +Adapt.adapt_storage(::ROCBackend, a::AbstractArray) = Adapt.adapt(AMDGPU.ROCArray, a) Adapt.adapt_storage(::ROCBackend, a::Union{AMDGPU.ROCArray, GPUArrays.AbstractGPUSparseArray}) = a Adapt.adapt_storage(::KA.CPU, a::Union{AMDGPU.ROCArray, GPUArrays.AbstractGPUSparseArray}) = Adapt.adapt(Array, a) diff --git a/test/hip_rocsparse/conversions.jl b/test/hip_rocsparse/conversions.jl index 3e4f1b649..d3a4169a1 100644 --- a/test/hip_rocsparse/conversions.jl +++ b/test/hip_rocsparse/conversions.jl @@ -4,6 +4,7 @@ using AMDGPU: ROCVector, ROCMatrix, ROCArray, roc using AMDGPU.rocSPARSE using SparseArrays using LinearAlgebra +using Adapt @assert AMDGPU.functional(:rocsparse) @@ -55,6 +56,17 @@ end end end +@testset "Adapt sparse arrays to ROCBackend" begin + A = spdiagm(0 => ones(5), -1 => -ones(4), 1 => -ones(4)) + @test adapt(ROCBackend(), A) isa ROCSparseMatrixCSC + + v = sparsevec([1, 3, 5], [1.0, 2.0, 3.0], 5) + @test adapt(ROCBackend(), v) isa ROCSparseVector + + dA = adapt(ROCBackend(), A) + @test adapt(ROCBackend(), dA) === dA +end + @testset "ROCSparseMatrix(::Diagonal)" begin X = Diagonal(rand(10)) dX = roc(X)