JuliaSIMD / JuliaSIMD/LoopVectorization.jl
Fallback path: annotate `for` loops with `@simd`?
- 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