JuliaSmoothOptimizers / KrylovPreconditioners.jl

The ultimate collection of preconditioners
Other
7 stars 1 forks source link

Add triangular operators for AMD and NVIDIA GPUs #41

Closed amontoison closed 7 months ago

amontoison commented 7 months ago

@michel2323 Can you test this branch on AMD GPUs?

michel2323 commented 7 months ago

I get this error below only in https://github.com/JuliaSmoothOptimizers/KrylovPreconditioners.jl/blob/86c7165b3e3e2b1bd3b7a175bce6face828c6bbf/ext/AMDGPU/operators.jl#L150 . I looked at the other spsv's and I can't figure out what the problem is. The test for X and Y in line 160 works.

  ROCSPARSEError: (code 3, rocsparse_status_invalid_pointer)
  Stacktrace:
    [1] macro expansion
      @ /lustre/orion/csc359/scratch/mschanen/julia_depot/dev/AMDGPU/src/sparse/error.jl:62 [inlined]
    [2] rocsparse_spsv(handle::Ptr{AMDGPU.rocSPARSE._rocsparse_handle}, trans::Char, alpha::Base.RefValue{Float64}, mat::AMDGPU.rocSPARSE.ROCSparseMatrixDescriptor, x::AMDGPU.rocSPARSE.ROCDenseVectorDescriptor, y::AMDGPU.rocSPARSE.ROCDenseVectorDescriptor, compute_type::Type, alg::AMDGPU.rocSPARSE.rocsparse_spsv_alg_, stage::AMDGPU.rocSPARSE.rocsparse_spsv_stage_, buffer_size::Base.RefValue{UInt64}, temp_buffer::ROCArray{UInt8, 1, AMDGPU.Runtime.Mem.HIPBuffer})
      @ AMDGPU.rocSPARSE /lustre/orion/csc359/scratch/mschanen/julia_depot/dev/AMDGPU/src/sparse/librocsparse.jl:5137
    [3] ldiv!(y::ROCArray{Float64, 1, AMDGPU.Runtime.Mem.HIPBuffer}, A::KrylovPreconditionersAMDGPUExt.AMD_TriangularOperator{Float64}, x::ROCArray{Float64, 1, AMDGPU.Runtime.Mem.HIPBuffer})
      @ KrylovPreconditionersAMDGPUExt /lustre/orion/csc359/scratch/mschanen/git/KrylovPreconditioners.jl/ext/AMDGPU/operators.jl:150