JuliaSIMD / JuliaSIMD/LoopVectorization.jl

Fallback path: annotate `for` loops with `@simd`?

Abierto
#182 4 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Julia
Estrellas
789
Forks
73
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Here's the fallback path for the basic matmul kernel:
```julia
$(Expr(:inbounds, true))
local var"#1#val" = for n = 1:size(A, 1), m = 1:size(B, 2)
#= REPL[2]:2 =#
Cₙₘ = zero(eltype(C))
#= REPL[2]:3 =#
for k = 1:size(A, 2)
#= REPL[2]:4 =#
Cₙₘ = Base.FastMath.add_fast(Cₙₘ, Base.FastMath.mul_fast(A[n, k], B[k, m]))
end
#= REPL[2]:6 =#
C[n, m] = Cₙₘ
end
$(Expr(:inbounds, :pop))
var"#1#val"
```

In the fallback path, `@inbounds` and `@fastmath` have both been applied.

Would it also make sense to annotate the `for` loop in the fallback path with `@simd`?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza con la ruta de fallback para el kernel matmul básico mostrada en el issue y compara sus anotaciones @inbounds y @fastmath existentes con la anotación @simd propuesta. Determina el punto de entrada de fallback relevante y cualquier prueba asociada antes de cambiar nada; el issue no indica ningún archivo fuente ni ninguna prueba, por lo que completar el trabajo requeriría validar si la anotación del bucle es adecuada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
julia
Área
performance
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.