-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Big overhaul #31
Conversation
Preview of the new simplified API Simple single-threaded example: using LIKWID
using LinearAlgebra
const N = 10_000
const a = 3.141
const x = rand(N)
const y = rand(N)
const z = zeros(N)
metrics, events = @perfmon "FLOPS_DP" begin
for i in eachindex(x, y)
z[i] = a * x[i] * y[i]
end
end
@show events["RETIRED_SSE_AVX_FLOPS_ALL"];
@show metrics["DP [MFLOP/s]"]; Output
Simple multi-threaded example: using LIKWID
using LinearAlgebra
const N = 10_000
const a = 3.141
const x = rand(N)
const y = rand(N)
const z = zeros(N)
metrics, events = @perfmon "FLOPS_DP" begin
Threads.@threads for i in eachindex(x, y)
z[i] = a * x[i] * y[i]
end
end
@show getindex.(events, "RETIRED_SSE_AVX_FLOPS_ALL"); # vector of events corresponding to Julia threads
@show getindex.(metrics, "DP [MFLOP/s]"); Output:
Note that Julia threads automatically get pinned to (the cpu threads they are currently running on) to get reliable results. The function equivalent (cc @antoine-levitt, @TomTheBear, @vchuravy) |
That's very nice, thanks for doing this, will test once merged! |
There is a driver mismatch on the one CI node:
This needs to be fixed by our admins. |
Thanks for the info. I'll also set up CI on Noctua 2 soon so that we test on two different systems, one with the daemon and one with the perf_events backend. |
…me CI tests (likwid-pin still failing)
separate gitlab ci yml files for FAU and PC2 try avoid multiple CI runs on N2 ci n2 fix typo drop N2 CI on tags n2 ci test n2 ci again n2 ci again ci ci again.. cici cicici ci (almost done) ci (almost done2)
2fb62c0
to
7be0cfa
Compare
docs preview: https://juliaperf.github.io/LIKWID.jl/previews/PR31 |
This is looking great! |
Will try to finish things next week before I record my JuliaCon talk 😊 |
Let's merge this (I'll fix CI / doc build on main because it's easier). Remaining things like |
@antoine-levitt Feel free to try out the |
Hm, I wanted to try this for a course I was giving but it's over now and I don't want to go back to it :-p but I'll definitely have a use for it at some point, it looks great! |
This is a WIP PR to improve the user-facing interface (and documetation) of, primarily,
LIKWID.PerfMon
.Code
perfmon
@perfmon
keyword args forautopin
etc.?Docs
TODO before merge
@perfmon_marker
/perfmon_marker
@nvmon
/nvmon
@nvmon_marker
/nvmon_marker