<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9" -->

---
title: Understanding iaprof: A Deep Dive into AI/GPU Flame...
description: Intel's iaprof is an open-source GPU profiler that generates AI Flame Graphs by combining three data streams: eBPF kernel tracing of GPU driver calls, Intel...
canonical: https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Understanding iaprof: A Deep Dive into AI/GPU Flame Graph Profiling | daily.dev
og:description: Intel's iaprof is an open-source GPU profiler that generates AI Flame Graphs by combining three data streams: eBPF kernel tracing of GPU driver calls, Intel...
og:url: https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9
og:image: https://api.daily.dev/og/posts/ZN8R8DGU9.png
og:image:alt: Understanding iaprof: A Deep Dive into AI/GPU Flame Graph Profiling
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Understanding iaprof: A Deep Dive into AI/GPU Flame Graph Profiling

**[eunomia eBPF Blog](https://daily.dev/sources/eunomia)** · 37 min read · 0 upvotes · 0 comments

## Summary

Intel's iaprof is an open-source GPU profiler that generates AI Flame Graphs by combining three data streams: eBPF kernel tracing of GPU driver calls, Intel Observability Architecture (OA) hardware sampling of Execution Unit stalls, and a GPU debug API for shader binary retrieval. The result is a unified visualization connecting Python/C++ application code through runtime libraries and kernel drivers down to specific GPU shader instructions, annotated with stall type breakdowns (memory, control flow, synchronization). The tool uses a multi-threaded architecture with a central GPU kernel store, two-level locking, deferred attribution for out-of-order samples, and outputs folded stack text compatible with Brendan Gregg's FlameGraph tooling. Overhead ranges from 5–10% on the Xe driver to 15–30% on i915. Supported hardware includes Intel Data Center GPU Max (Ponte Vecchio), Arc B-series (Battlemage), and other Xe2-based GPUs, requiring Linux 5.8+ with BTF support.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://eunomia.dev/blog/2025/10/11/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling>

## Questions this post answers

### How does Intel iaprof correlate CPU call stacks with GPU shader instructions?

iaprof uses three concurrent data streams: eBPF fexit probes on i915/Xe driver functions capture the full CPU call stack at every GPU kernel launch; Intel's Observability Architecture hardware samples EU stall states at specific GPU instruction pointers; and the GPU debug API provides shader binaries for disassembly. A central GPU kernel store merges these streams, mapping each stalled GPU instruction back through the shader to the originating CPU stack frame.

_Engineers profiling GPU-accelerated ML workloads track tools like iaprof on daily.dev._

### What is the profiling overhead of Intel iaprof on Xe vs i915 GPU drivers?

On the Xe driver, total overhead is 5–10%: BPF collection adds 3–5%, EU stall sampling 2–5%, and the debug interface 1–3%. On the older i915 driver, overhead is higher at 15–30% total, with BPF collection alone costing 10–20% due to more complex batch buffer parsing. EU stall hardware sampling contributes under 5% in both cases.

_Developers choosing between profiling strategies for Intel GPU workloads find trade-off breakdowns like this on daily.dev._

### What Linux kernel version does Intel iaprof require and why?

iaprof requires Linux 5.8 or later for eBPF CO-RE (Compile Once, Run Everywhere) support, plus BTF type information at /sys/kernel/btf/vmlinux. For Xe GPU debug support, mainline Linux 6.2+ is needed, with full support in 6.6+. i915 debug support requires an Intel backport kernel with PRELIM_DRM_I915_DEBUG patches, which is not in mainline.

_Developers upgrading kernel stacks for GPU observability keep up with Linux and driver requirements on daily.dev._

## Similar posts on daily.dev

- [Google Adds Cycle-Level Kernel Profiling to XProf](https://daily.dev/posts/google-adds-cycle-level-kernel-profiling-to-xprof-mak8uavci) · InfoQ · 0 upvotes · 0 comments
- [Unlocking TPU performance: Deep kernel profiling with XProf](https://daily.dev/posts/unlocking-tpu-performance-deep-kernel-profiling-with-xprof-lghkq2da7) · Google Open Source Blog · 0 upvotes · 0 comments
- [Ambiq Launches heliaPROFILER for Edge AI Development](https://daily.dev/posts/ambiq-launches-heliaprofiler-for-edge-ai-development-ppqax9tip) · Embedded.com · 0 upvotes · 0 comments
- [Intel Arc Pro B70 Benchmarks With LLM / AI, OpenCL, OpenGL & Vulkan Review](https://daily.dev/posts/intel-arc-pro-b70-benchmarks-with-llm-ai-opencl-opengl-vulkan-review-m9swxjwor) · Phoronix · 0 upvotes · 0 comments

---

Tags: [#linux](https://daily.dev/tags/linux)

[View this post on daily.dev](https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Understanding iaprof: A Deep Dive into AI/GPU Flame Graph Profiling","url":"https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9"},"datePublished":"2026-08-11T08:54:43.657Z","dateModified":"2026-08-11T09:15:29.917Z","description":"Intel's iaprof is an open-source GPU profiler that generates AI Flame Graphs by combining three data streams: eBPF kernel tracing of GPU driver calls, Intel...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b59e04eefe0ea85df0b7e50151b0b12e?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b59e04eefe0ea85df0b7e50151b0b12e?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"eunomia eBPF Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"eunomia eBPF Blog","logo":"https://media.daily.dev/image/upload/s--z-nTl7TK--/f_auto,q_auto/v1786438304/logos/eunomia?_a=BAMAMicg0","url":"https://daily.dev/sources/eunomia"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"linux","timeRequired":"PT37M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"eunomia eBPF Blog","item":"https://daily.dev/sources/eunomia"},{"@type":"ListItem","position":3,"name":"Understanding iaprof: A Deep Dive into AI/GPU Flame Graph Profiling"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/understanding-iaprof-a-deep-dive-into-ai-gpu-flame-graph-profiling-zn8r8dgu9#faq","mainEntity":[{"@type":"Question","name":"How does Intel iaprof correlate CPU call stacks with GPU shader instructions?","acceptedAnswer":{"@type":"Answer","text":"iaprof uses three concurrent data streams: eBPF fexit probes on i915/Xe driver functions capture the full CPU call stack at every GPU kernel launch; Intel's Observability Architecture hardware samples EU stall states at specific GPU instruction pointers; and the GPU debug API provides shader binaries for disassembly. A central GPU kernel store merges these streams, mapping each stalled GPU instruction back through the shader to the originating CPU stack frame. Engineers profiling GPU-accelerated ML workloads track tools like iaprof on daily.dev."}},{"@type":"Question","name":"What is the profiling overhead of Intel iaprof on Xe vs i915 GPU drivers?","acceptedAnswer":{"@type":"Answer","text":"On the Xe driver, total overhead is 5–10%: BPF collection adds 3–5%, EU stall sampling 2–5%, and the debug interface 1–3%. On the older i915 driver, overhead is higher at 15–30% total, with BPF collection alone costing 10–20% due to more complex batch buffer parsing. EU stall hardware sampling contributes under 5% in both cases. Developers choosing between profiling strategies for Intel GPU workloads find trade-off breakdowns like this on daily.dev."}},{"@type":"Question","name":"What Linux kernel version does Intel iaprof require and why?","acceptedAnswer":{"@type":"Answer","text":"iaprof requires Linux 5.8 or later for eBPF CO-RE (Compile Once, Run Everywhere) support, plus BTF type information at /sys/kernel/btf/vmlinux. For Xe GPU debug support, mainline Linux 6.2+ is needed, with full support in 6.6+. i915 debug support requires an Intel backport kernel with PRELIM_DRM_I915_DEBUG patches, which is not in mainline. Developers upgrading kernel stacks for GPU observability keep up with Linux and driver requirements on daily.dev."}}]}
```

