Using the Intel VTune Profiler with julia

Hi all,

I’m trying to profile the following piece of Julia code, taken from ProfileView.jl, using the external Intel VTune Profiler. Concretely, the code is

# vtune.jl
function profile_test(n)
    for i = 1:n
        A = randn(100,100,20)
        m = maximum(A)
        Am = mapslices(sum, A; dims=2)
        B = A[:,:,5]
        Bsort = mapslices(sort, B; dims=1)
        b = rand(100)
        C = B.*b
    end
end

profile_test(1)
profile_test(10)

As described in the relevant section of the Julia documentation, I compiled Julia (release-1.3) with USE_INTEL_JITEVENTS=1 in the Make.user file and set the environment variable ENABLE_JITPROFILING=1. Specifically, since I’m on Windows I cross compiled Julia using the recommended Cygwin-to-MinGW path.

To profile the code I fired up VTune and created a simple analysis (inspired by the Python tutorial here):

Inspecting the “Bottom-up” analysis results I see all kinds of low level jl_* stuff but cannot find anything about my vtune.jl file or the included profile_test function:

Is there something else I need to do? Is VTune expected to work with Julia? If yes, to what extend? In the python tutorial (linked above) both the script file runtime.py as well as the function black_scholes could be clearly identified as a bottleneck.

I’d appreciate any comments/hints on how to get better profiling results with VTune + Julia!

Best,
Carsten

2 Likes

Short update, I did the same experiment on a linux machine with similar outcome: no mentioning of my file or function as far as I can see.