JuliaSIMD / JuliaSIMD/LoopVectorization.jl
Ryzen dot product performance
- Vorherrschende Sprache
- Julia
- Sterne
- 789
- Forks
- 73
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
First of all, brilliant work on this package. Extremely impressive.
Since you mention in the readme that you were curious about 1 `fma` Ryzen chips, here's data from a Ryzen 2700X running Julia 1.4.0-rc2.0 on Windows 10 x64 and the latest release (v0.6.21) of the package:
```
# make sure we get enough samples
julia> BenchmarkTools.DEFAULT_PARAMETERS.samples = 1e12
julia> a = rand(256); b = rand(256);
julia> @btime mydot($a,$b)
33.098 ns (0 allocations: 0 bytes)
55.14639163783218
julia> @btime mydotavx($a,$b)
33.802 ns (0 allocations: 0 bytes)
55.14639163783219
julia> @btime myselfdot($a)
22.066 ns (0 allocations: 0 bytes)
79.1990129346761
julia> @btime myselfdotavx($a)
22.868 ns (0 allocations: 0 bytes)
79.1990129346761
julia> a = rand(255); b = rand(255);
julia> @btime mydot($a,$b)
43.749 ns (0 allocations: 0 bytes)
65.04807877890542
julia> @btime mydotavx($a,$b)
39.274 ns (0 allocations: 0 bytes)
65.04807877890542
julia> @btime myselfdot($a)
38.608 ns (0 allocations: 0 bytes)
80.52310652021393
julia> @btime myselfdotavx($a)
32.863 ns (0 allocations: 0 bytes)
80.52310652021396
```
So, the single load versions are always significantly faster, although the total throughput is always quite low compared to the numbers in your readme, which I assume came from a quad channel Skylake-X system or a comparable Xeon.
Let me know if you'd like any further info, whether the LLVM IR / native assembly, details of the hardware involved or for me to run any further benchmarks!
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.