# Analyzing GPU Performance in Virtualized Environments: A Case Study
## 7 Conclusions  
A GPU is a powerful computing unit with remarkable characteristics, including a highly parallel architecture and energy efficiency. Hence, this device has found extensive application in diverse domains, such as heterogeneous and embedded systems, where it greatly improves application performance. These applications range from autonomous driving to media transcoding and graphics-intensive applications. The interesting attributes of this accelerator have prompted the introduction of vGPU-accelerated VMs, opening up opportunities to address CPU bottlenecks in data centers and enabling end-users to harness the power of high-performance computing devices for a variety of applications.  
While our review of the existing literature shows various performance analysis tools for GPUs, support for vGPUs remains a significant gap. Unfortunately, the only tool offering vGPU support, NVIDIA Nsight Systems, is closed-source software and lacks publicly available documentation. To address this gap in research, our study introduces a novel diagnostic tool that is specifically designed to analyze vGPU performance. Utilizing GVT-g, Intel's virtualization technology for on-die GPUs, as a foundational platform, our framework provides detailed insights into GVT-g operations. It facilitates an exhaustive analysis of VMs equipped with vGPUs, thereby enhancing the understanding and optimization of their performance.  
Our approach leverages LTTng, a low-overhead tracer, to collect the low-level data required for our analyses. Through this tool, we traced the host machine kernel to gain a better understanding of vGPU resource utilization. Furthermore, we developed a suite of auto-synchronized views in Trace Compass to unveil the intricate dynamics of vGPU-accelerated VMs as they interact with the host GPU resources. Finally, our analysis reveals that the tracing overhead is minimal at approximately 1.01%. Looking ahead, future iterations of our work will expand this approach to encompass other GPU virtualization technologies,  
\begin{table}
\begin{tabular}{c c c c c c} \hline \hline \multirow{2}{*}{**Benchmark**} & **Exec Time** & **Exec Time w/** & \multirow{2}{*}{**\# Events**} & **Trace Size** & **Overhead \({}^{*}\)** \\  & **(ms)** & **Tracing (ms)** & & **(KB)** & **(\%)** \\ \hline Gaussian & 26,393 & 26,906 & 49,255 & 1228 & 1.906 \\ Hotspot & 29,455 & 30,161 & 9122 & 248 & 2.341 \\ Lud & 16,736 & 16,862 & 19,866 & 512 & 0.743 \\ Myocyte & 36,935 & 37,061 & 158,587 & 3788 & 0.341 \\ Srad & 13,206 & 13,238 & 73,973 & 1843 & 0.237 \\ Heartwall & 14,795 & 14,873 & 4110 & 148 & 0.525 \\ \hline \hline \end{tabular} \({}^{*}\)The overhead is computed as the percentage increase in execution time with tracing enabled.  
\end{table}
Table 4: Tracing overhead.  
such as MxGPU and NVIDIA Grid. These technologies have gained prominence in the data centers of major cloud providers, making our research even more pertinent and valuable in the evolving landscape of GPU virtualization.  
Conceptualization, A.B.; Methodology, A.B.; Software, A.B.; Validation, A.B.; Investigation, A.B.; Writing - original draft, A.B.; Supervision, M.D.; Funding acquisition, M.D. All authors have read and agreed to the published version of the manuscript.  
This research was financed by the Natural Sciences and Engineering Research Council of Canada (NSERC), through the NSERC Alliance project 554158-20, in partnership with Prompt, Ericsson, Ciena, AMD, and EfficiOS. The APC was funded by [PERSON].  
The source codes of the proposed framework are available on the author's GitHub: [[https://github.com/adel-belkhiri](https://github.com/adel-belkhiri)]([https://github.com/adel-belkhiri](https://github.com/adel-belkhiri)) (accessed on 20 February 2024).  
We would like to thank the Natural Sciences and Engineering Research Council of Canada (NSERC), Prompt, Ericsson, Ciena, AMD, and EfficiOS for supporting this research.  
The authors declare no conflicts of interest.