JuliaGPU / JuliaGPU/oneAPI.jl

Interactive profiling

Open
#111 1 comment 0 reactions 0 assignees View on GitHub
enhancement kernels
Dominant language
Julia
Stars
215
Forks
37
Avg merge
10h 47m
Merged PRs (30d)
14

Description

VTune is great, but it can currently only profile a whole application or attach and start/stop manually. It'd be great to be able to denote profile ranges a la `CUDA.@profile`, and in addition to be able to do so with an attached program for interactive profiling.

@vchuravy pointed me to Intel's Instrumentation and Tracing Technology (ITT), https://github.com/intel/ittapi, as an equivalent for NVIDIA's NVTX, which has similar APIs:
- ranges: https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/api-support/instrumentation-and-tracing-technology-apis/instrumentation-tracing-technology-api-reference/domain-api.html
- markers: https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/api-support/instrumentation-and-tracing-technology-apis/instrumentation-tracing-technology-api-reference/event-api.html

Apparently ITT is already being built as part of LLVM for the purpose of JIT registration, so we could take it from there.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the issue's Intel ITT references, especially the domain and event API documentation, and inspect how oneAPI.jl currently exposes VTune-related functionality. Determine the entry points for denoting ranges and markers and for attaching to an already-running program. Done means Julia code can mark profile ranges and support interactive profiling of an attached program.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
devtools, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.