🚀 Inspiration
Understanding how code truly executes at the microarchitectural level has always been a challenge. Traditional profiling tools show numbers — not intuition. We wanted to see what the CPU sees: how instructions flow, stall, and retire in real time. Inspired by LLVM’s MCA and performance visualization tools like Intel VTune, we set out to merge compiler analysis and visual analytics into a single, interactive experience.
💡 What it does
AMC++ visualizes microarchitectural behavior by mapping LLVM’s Machine Code Analyzer (MCA) output into a dynamic, interactive interface. It shows:
- Real-time pipeline flow (fetch → decode → execute → retire)
- Hotspot heatmaps for bottleneck detection
- Side-by-side views of compiler workflows and microprocessor pipelines
- Live metrics such as IPC, stall reasons, and throughput efficiency
The result: a clear, explorable picture of how code interacts with hardware.
🛠️ How we built it
We built AMC++ on top of LLVM MCA for backend analysis and extended it using TypeScript, D3.js, and WebGL for rich visualization.
- Frontend: Interactive HTML/JS dashboard with animated graphs and hotspots
- Backend: Custom LLVM MCA++ engine extension generating JSON telemetry
- Visualization: Interactive CPU pipeline simulation, workflow graph overlays, and performance gauges
- Integration: Streamlit and Python bindings for rapid experimentation
⚙️ Challenges we ran into
- Mapping raw MCA data into visually meaningful pipeline stages
- Balancing realism and responsiveness in the live simulation
- Ensuring interactivity while handling dense, complex data sets
- Synchronizing compiler workflow nodes with microarchitectural timelines
🏆 Accomplishments that we're proud of
- Achieved fully interactive microarchitecture visualization — not static graphs
- Developed a unified view that connects compiler optimization passes to CPU execution behavior
- Created an enhanced LLVM MCA++ engine capable of exporting structured performance events
- Designed an aesthetic, intuitive, and educational UI that bridges software and hardware perspectives
📚 What we learned
- How LLVM’s backend models real CPU behavior
- The importance of visual context in performance engineering
- How compiler optimizations translate into microarchitectural effects
- How powerful interactive visualization can be for understanding low-level systems
🔮 What’s next for AMC++: Visualizing CPU Performance
- Expand support for heterogeneous architectures (GPUs, NPUs, and accelerators)
- Add real-time profiling integration with live workloads
- Provide a web-based LLVM playground for exploring MCA output
- Enable AI-assisted optimization suggestions directly from the visual model

Log in or sign up for Devpost to join the conversation.