JuliaSIMD / JuliaSIMD/LoopVectorization.jl
Increased execution time bug (Ryzen CPU only?)
- Lenguaje dominante
- Julia
- Estrellas
- 789
- Forks
- 73
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Hi,
I have found a slowdown upon using the `@turbo` macro
```
using LoopVectorization,BenchmarkTools
function testSum(indices,Vectors)
A,B,C,D = Vectors
sum = 0.
for ksum in eachindex(indices)
k = indices[ksum]
sum += A[k] * B[k] +C[k] * D[k]
end
return sum
end
function testSum_avx(indices,Vectors)
A,B,C,D = Vectors
sum = 0.
@turbo for ksum in eachindex(indices)
k = indices[ksum]
sum += A[k] * B[k] +C[k] * D[k]
end
return sum
end
N = 63
Vectors = Tuple(rand(N) for _ in 1:4);
indices = rand(1:N,500);
@btime testSum($indices,$Vectors)
@btime testSum_avx($indices,$Vectors)
```
The output is:
```
510.417 ns (0 allocations: 0 bytes)
871.698 ns (0 allocations: 0 bytes)
```
I found this behaviour on two Ryzen CPU's (Ryzen 2700 and Ryzen 5 3500U).
On an intel CPU (Xeon(R) Gold 6130), the avx version does run faster.
For reference, I have posted a question on this behaviour on https://discourse.julialang.org/t/loopvectorization-almost-doubles-execution-time/64333.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza ejecutando el benchmark proporcionado testSum y testSum_avx con @btime en las CPU Ryzen e Intel indicadas. Compara el bucle base con el bucle @turbo y revisa la discusión enlazada de Discourse para obtener contexto. Se considerará terminado cuando se haya explicado la ralentización específica de Ryzen y el problema se haya corregido o documentado con sus limitaciones.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- julia
- Área
- performance
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100