# Daisen: A Framework for Visualizing Detailed GPU Execution

**Authors:** Yifan Sun, Yixuan Zhang, Ali Mosallaei, Michael D. Shah, Cody Dunne, David Kaeli  
**arXiv:** [2104.00828](https://arxiv.org/abs/2104.00828)  
**Date:** 2021-04-02  
**Summary page:** https://www.summarizepaper.com/en/paper/2104.00828v1/

## Key points

- Daisen is a framework for visualizing GPU execution traces to improve performance analysis
- The authors conducted a survey study and interviews with GPU hardware designers to identify design requirements
- Daisen includes a data abstraction and trace format, as well as a web-based visualization tool
- GPU hardware designers gave positive feedback on Daisen's ability to identify and understand performance issues
- Participants described their typical workflow of adding print functions and exporting trace data before visualizing in Python
- Daisen's Overview Panel allows quick hotspot identification using filters and computer architecture terms
- Participants found Daisen easy to use and effective in identifying potential bottlenecks and improvement opportunities
- A case study using the PageRank benchmark demonstrated the effectiveness of Daisen in identifying underloaded or overloaded components and determining workload characteristics
- Daisen is presented as a valuable framework for improving GPU performance through visualization capabilities

## Summary

This paper presents Daisen, a framework for visualizing detailed GPU execution traces to improve GPU performance analysis. The authors conducted a survey study and interviews with GPU hardware designers to identify the design requirements for visualizing execution traces. Based on their findings, they propose Daisen, which includes a data abstraction and trace format for recording simulator-generated GPU execution traces, as well as a web-based visualization tool. During the evaluation of Daisen with GPU hardware designers, participants gave positive feedback on its ability to help them identify and understand performance issues. They appreciated the visualizations provided by Daisen and expressed excitement about using it to examine GPU performance problems. Participants also described their typical workflow of adding print functions in the GPU simulator and exporting trace data to CSV files before visualizing them separately in Python. They found that Daisen's Overview Panel allowed quick hotspot identification by using filters and commonly-used computer architecture terms. They also frequently zoomed in and out to search for hotspots that took longer in execution. Overall, participants found Daisen easy to use and effective in identifying potential performance bottlenecks and opportunities for improvement. To demonstrate the effectiveness of Daisen, the authors performed a case study using the PageRank benchmark running on an AMD R9 Nano GPU. By analyzing the generated trace with Daisen, they were able to identify underloaded or overloaded components and determine whether the workload was compute-intensive or memory-intensive. In conclusion, this paper presents Daisen as a valuable framework for visualizing detailed GPU execution traces. It provides insights into performance issues and helps GPU hardware designers improve performance through its visualization capabilities. The open-sourced implementation of Daisen is available for further exploration and use by researchers in this field.
