Indexing (Cartesian or Linear) isn't defined for sparse device arrays
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 63/100
Línea de trabajo
Comienza con src/device/sparse.jl y ejecuta el reproductor de CUDA.CUSPARSE del issue. Rastrea la ruta de indexación con corchetes no compatible para los tipos de arrays dispersos del dispositivo y, a continuación, verifica que el kernel proporcionado se complete sin la excepción error_if_canonical_getindex.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Indexing a CUDA.CUSPARSE with brackets inside a CUDA.jl kernel triggers a error_if_canonical_getindex Error. The following reproduces the bug:
using CUDA, SparseArrays
src_mwe = cu(ones(Float32, 2, 5))
dst_mwe = cu([1, 2, 3, 4, 5])
function mwe_kernel!(dst, src)
index = threadIdx().x + (blockIdx().x - 1) * blockDim().x
dst[index] = src[1, index]
return nothing
end
kernel = @cuda launch=false mwe_kernel!(dst_mwe, sparse(src_mwe, fmt=:csc))
kernel(dst_mwe, sparse(src_mwe, fmt=:csc); threads=length(dst_mwe), blocks=1)
julia> ERROR: a exception was thrown during kernel execution on thread (1, 1, 1) in block (1, 1, 1).
Stacktrace:
[1] error_if_canonical_getindex at ./abstractarray.jl:1357
[2] getindex at ./abstractarray.jl:1341
[3] _getindex at ./abstractarray.jl:1383
[4] getindex at ./abstractarray.jl:1342
[5] mwe_kernel! at ./REPL[11]:3
The fix is to implement indexing functionality for the given array types in src/device/sparse.jl
- Lenguaje dominante
- Julia
- Estrellas
- 456
- Forks
- 108
- Merge medio
- 3 d 1 h
- PR fusionados (30 d)
- 27
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaGPU/GPUArrays.jl
-
arrays
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
JuliaGPU/GPUArrays.jl#697 · 1 reacción ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
JuliaGPU/GPUArrays.jl#836 ·
Los mantenedores suelen responder en 2 días
-
`reverse(::JLArray)` errors with GPUArrays 12.1.1 and JLArrays 0.4.2 (JLArrays release missing)Abiertoinstallation regression
Dificultad 2/5 1-3 horas Aptitud para principiantes 57/100
JuliaGPU/GPUArrays.jl#817 ·
Los mantenedores suelen responder en 2 días
-
installation latency regression upstream
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
JuliaGPU/GPUArrays.jl#813 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
arrays
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
JuliaGPU/GPUArrays.jl#792 ·
Los mantenedores suelen responder en 2 días
Todos los issues de JuliaGPU/GPUArrays.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Out-of-place Rosenbrock time derivative uses the autodiff of the last CompositeAlgorithm memberAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
SciML/OrdinaryDiffEq.jl#4951 ·
Los mantenedores suelen responder en 5 días
-
`vect` rrule pullbacks index a thunked cotangent once per argument (quadratic), same pattern as #860Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
JuliaDiff/ChainRules.jl#862 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
osrep/Runes2P.jl#153 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
WaterLily-jl/WaterLily-Examples#49 · 1 comentario ·